aboutsummaryrefslogtreecommitdiff
path: root/files/ja/archive/b2g_os
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/archive/b2g_os
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/ja/archive/b2g_os')
-rw-r--r--files/ja/archive/b2g_os/add-ons/developing_b2g_os_add-ons/index.html357
-rw-r--r--files/ja/archive/b2g_os/add-ons/index.html106
-rw-r--r--files/ja/archive/b2g_os/api/bluetoothmanager/enabled/index.html51
-rw-r--r--files/ja/archive/b2g_os/api/bluetoothmanager/getdefaultadapter/index.html48
-rw-r--r--files/ja/archive/b2g_os/api/bluetoothmanager/index.html188
-rw-r--r--files/ja/archive/b2g_os/api/bluetoothmanager/isconnected/index.html55
-rw-r--r--files/ja/archive/b2g_os/api/bluetoothmanager/onadapteradded/index.html44
-rw-r--r--files/ja/archive/b2g_os/api/bluetoothmanager/ondisabled/index.html45
-rw-r--r--files/ja/archive/b2g_os/api/bluetoothmanager/onenabled/index.html45
-rw-r--r--files/ja/archive/b2g_os/api/callevent/index.html134
-rw-r--r--files/ja/archive/b2g_os/api/domapplication/index.html103
-rw-r--r--files/ja/archive/b2g_os/api/index.html831
-rw-r--r--files/ja/archive/b2g_os/api/mozndefrecord/index.html127
-rw-r--r--files/ja/archive/b2g_os/api/moznfcpeer/index.html113
-rw-r--r--files/ja/archive/b2g_os/api/moznfctag/index.html134
-rw-r--r--files/ja/archive/b2g_os/api/navigator/index.html29
-rw-r--r--files/ja/archive/b2g_os/api/navigator/mozapps/index.html82
-rw-r--r--files/ja/archive/b2g_os/api/navigator/mozsetmessagehandler/index.html265
-rw-r--r--files/ja/archive/b2g_os/api/navigator/moztelephony/index.html120
-rw-r--r--files/ja/archive/b2g_os/api/telephonycall/index.html237
-rw-r--r--files/ja/archive/b2g_os/architecture/index.html752
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/gaia_ui_tests_run_tests/index.html356
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/index.html73
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_1_marionette_firefox_os_start/index.html191
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_2_marionette_firefox_os_interactions/index.html177
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_3_reusable_tests/index.html183
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_4_reusing_commands_firefox_os_setup/index.html160
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_5_introducing_a_test_runner/index.html243
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_6_marionette_by_class/index.html132
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_7_writing_your_own_tests/index.html122
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_8_using_a_base_class/index.html153
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_9_app_objects/index.html141
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia_performance_tests/index.html201
-rw-r--r--files/ja/archive/b2g_os/automated_testing/gaia_unit_tests/index.html119
-rw-r--r--files/ja/archive/b2g_os/automated_testing/index.html97
-rw-r--r--files/ja/archive/b2g_os/automated_testing/raptor/index.html442
-rw-r--r--files/ja/archive/b2g_os/automated_testing/setting_up_marionette/index.html48
-rw-r--r--files/ja/archive/b2g_os/automated_testing/xpcshell/index.html46
-rw-r--r--files/ja/archive/b2g_os/b2g_build_prerequisites/index.html423
-rw-r--r--files/ja/archive/b2g_os/b2g_os_architecture/index.html34
-rw-r--r--files/ja/archive/b2g_os/board_guide/chirimen/chirimen_faq/index.html8
-rw-r--r--files/ja/archive/b2g_os/board_guide/chirimen/index.html16
-rw-r--r--files/ja/archive/b2g_os/board_guide/chirimen/os_image/index.html14
-rw-r--r--files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/basic_startup/index.html5
-rw-r--r--files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/board_connectors/index.html5
-rw-r--r--files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/dev_windows/index.html5
-rw-r--r--files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/firmware_update_guide_for_windows/index.html6
-rw-r--r--files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/index.html5
-rw-r--r--files/ja/archive/b2g_os/board_guide/index.html40
-rw-r--r--files/ja/archive/b2g_os/building_and_installing_firefox_os/b2g_build_variables_reference_sheet/index.html320
-rw-r--r--files/ja/archive/b2g_os/building_and_installing_firefox_os/b2g_installer_add-on/index.html275
-rw-r--r--files/ja/archive/b2g_os/building_and_installing_firefox_os/building_firefox_os_for_flame_on_osx/index.html241
-rw-r--r--files/ja/archive/b2g_os/building_and_installing_firefox_os/compatible_devices/index.html283
-rw-r--r--files/ja/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_overview/index.html149
-rw-r--r--files/ja/archive/b2g_os/building_and_installing_firefox_os/firefox_os_update_packages/index.html523
-rw-r--r--files/ja/archive/b2g_os/building_and_installing_firefox_os/index.html64
-rw-r--r--files/ja/archive/b2g_os/building_boot_to_gecko/fota_community_builds/index.html225
-rw-r--r--files/ja/archive/b2g_os/building_boot_to_gecko/index.html553
-rw-r--r--files/ja/archive/b2g_os/choosing_how_to_run_gaia_or_b2g/index.html77
-rw-r--r--files/ja/archive/b2g_os/customization_with_the_.userconfig_file/index.html255
-rw-r--r--files/ja/archive/b2g_os/debugging/connecting_a_firefox_os_device_to_the_desktop/index.html41
-rw-r--r--files/ja/archive/b2g_os/debugging/debugging_b2g_using_valgrind/index.html132
-rw-r--r--files/ja/archive/b2g_os/debugging/debugging_ooms/index.html102
-rw-r--r--files/ja/archive/b2g_os/debugging/developer_settings/index.html388
-rw-r--r--files/ja/archive/b2g_os/debugging/firefox_os_crash_reporting/index.html119
-rw-r--r--files/ja/archive/b2g_os/debugging/index.html90
-rw-r--r--files/ja/archive/b2g_os/debugging/installing_adb/index.html105
-rw-r--r--files/ja/archive/b2g_os/debugging/intercepting_traffic_using_a_proxy/index.html185
-rw-r--r--files/ja/archive/b2g_os/debugging/on-device_console_logging/index.html66
-rw-r--r--files/ja/archive/b2g_os/debugging/setting_up/index.html57
-rw-r--r--files/ja/archive/b2g_os/debugging/taking_screenshots/index.html89
-rw-r--r--files/ja/archive/b2g_os/debugging/testing_in_a_privileged_context/index.html113
-rw-r--r--files/ja/archive/b2g_os/developer_mode/index.html139
-rw-r--r--files/ja/archive/b2g_os/developing_firefox_os/customizing_the_b2g.sh_script/index.html49
-rw-r--r--files/ja/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html199
-rw-r--r--files/ja/archive/b2g_os/developing_firefox_os/index.html48
-rw-r--r--files/ja/archive/b2g_os/developing_firefox_os/localizing_firefox_os/index.html185
-rw-r--r--files/ja/archive/b2g_os/developing_firefox_os/modifying_hosts_file/index.html46
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/customizing_build-time_apps/index.html173
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/customizing_the_keyboard/index.html234
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/different_ways_to_run_gaia/index.html159
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/gaia_tools_reference/index.html189
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/index.html129
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/make_options_reference/index.html383
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/making_gaia_code_changes/index.html137
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/market_customizations_guide/index.html1313
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/running_the_gaia_codebase/index.html131
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/submitting_a_gaia_patch/index.html119
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/testing_gaia_code_changes/index.html175
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/understanding_the_gaia_codebase/index.html210
-rw-r--r--files/ja/archive/b2g_os/developing_gaia/構造入門書/index.html249
-rw-r--r--files/ja/archive/b2g_os/firefox_os_apps/index.html85
-rw-r--r--files/ja/archive/b2g_os/firefox_os_faq/index.html23
-rw-r--r--files/ja/archive/b2g_os/firefox_os_usage_tips/index.html19
-rw-r--r--files/ja/archive/b2g_os/index.html167
-rw-r--r--files/ja/archive/b2g_os/installing_boot_to_gecko_on_a_mobile_device/index.html160
-rw-r--r--files/ja/archive/b2g_os/introduction/index.html86
-rw-r--r--files/ja/archive/b2g_os/introduction_to_gaia/index.html38
-rw-r--r--files/ja/archive/b2g_os/pandaboard/index.html40
-rw-r--r--files/ja/archive/b2g_os/performance/index.html226
-rw-r--r--files/ja/archive/b2g_os/phone_guide/best_practices_open_reference_devices/index.html58
-rw-r--r--files/ja/archive/b2g_os/phone_guide/firefox_os_device_features/index.html75
-rw-r--r--files/ja/archive/b2g_os/phone_guide/flame/index.html134
-rw-r--r--files/ja/archive/b2g_os/phone_guide/flame/initial_setup/index.html108
-rw-r--r--files/ja/archive/b2g_os/phone_guide/flame/updating_your_flame/index.html441
-rw-r--r--files/ja/archive/b2g_os/phone_guide/fx0/index.html50
-rw-r--r--files/ja/archive/b2g_os/phone_guide/geeksphone/index.html107
-rw-r--r--files/ja/archive/b2g_os/phone_guide/index.html90
-rw-r--r--files/ja/archive/b2g_os/phone_guide/nexus_4/index.html46
-rw-r--r--files/ja/archive/b2g_os/phone_guide/nexus_5/index.html46
-rw-r--r--files/ja/archive/b2g_os/phone_guide/phone_specs/index.html717
-rw-r--r--files/ja/archive/b2g_os/phone_guide/zte_open/index.html298
-rw-r--r--files/ja/archive/b2g_os/phone_guide/zte_open_c/index.html85
-rw-r--r--files/ja/archive/b2g_os/porting/index.html246
-rw-r--r--files/ja/archive/b2g_os/porting_b2g_os/index.html17
-rw-r--r--files/ja/archive/b2g_os/preparing_for_your_first_b2g_build/index.html273
-rw-r--r--files/ja/archive/b2g_os/quickstart/index.html49
-rw-r--r--files/ja/archive/b2g_os/quickstart/open_web_apps_and_web_standards/index.html89
-rw-r--r--files/ja/archive/b2g_os/quickstart/初めてのアプリ/index.html268
-rw-r--r--files/ja/archive/b2g_os/releases/1.1/index.html89
-rw-r--r--files/ja/archive/b2g_os/releases/1.2/index.html466
-rw-r--r--files/ja/archive/b2g_os/releases/1.4/index.html96
-rw-r--r--files/ja/archive/b2g_os/releases/2.0/index.html112
-rw-r--r--files/ja/archive/b2g_os/releases/2.1/index.html49
-rw-r--r--files/ja/archive/b2g_os/releases/index.html32
-rw-r--r--files/ja/archive/b2g_os/running_custom_builds_in_the_app_manager/index.html57
-rw-r--r--files/ja/archive/b2g_os/running_tests_on_firefox_os_for_developers/index.html58
-rw-r--r--files/ja/archive/b2g_os/security/application_security/index.html132
-rw-r--r--files/ja/archive/b2g_os/security/b2g_ipc_internals/index.html254
-rw-r--r--files/ja/archive/b2g_os/security/index.html68
-rw-r--r--files/ja/archive/b2g_os/security/security_model/index.html284
-rw-r--r--files/ja/archive/b2g_os/security/system_security/index.html385
-rw-r--r--files/ja/archive/b2g_os/simulator/index.html114
-rw-r--r--files/ja/archive/b2g_os/simulator/simulator_walkthrough/index.html282
-rw-r--r--files/ja/archive/b2g_os/tvs_connected_devices/hello_world_example/index.html125
-rw-r--r--files/ja/archive/b2g_os/tvs_connected_devices/how_to_connect_webide_to_tv_(viera)/index.html116
-rw-r--r--files/ja/archive/b2g_os/tvs_connected_devices/index.html82
-rw-r--r--files/ja/archive/b2g_os/tvs_connected_devices/interacting_with_tv_remote_controls/index.html73
-rw-r--r--files/ja/archive/b2g_os/tvs_connected_devices/simulating_firefox_os_for_tv/index.html126
-rw-r--r--files/ja/archive/b2g_os/tvs_connected_devices/tv_broadcast_streams_firefox_os/index.html94
-rw-r--r--files/ja/archive/b2g_os/tvs_connected_devices/tv_remote_control_button_mapping_to_keyboard/index.html148
-rw-r--r--files/ja/archive/b2g_os/tvs_connected_devices/tv_remote_control_navigation/index.html334
-rw-r--r--files/ja/archive/b2g_os/using_the_app_manager/index.html303
-rw-r--r--files/ja/archive/b2g_os/using_the_b2g_desktop_client/index.html314
-rw-r--r--files/ja/archive/b2g_os/using_the_b2g_emulators/index.html182
-rw-r--r--files/ja/archive/b2g_os/ux/style_guide/index.html209
-rw-r--r--files/ja/archive/b2g_os/web_telephony_api/index.html144
-rw-r--r--files/ja/archive/b2g_os/web_telephony_api/using_the_web_telephony_api/index.html268
-rw-r--r--files/ja/archive/b2g_os/トラブルシューティング/index.html60
149 files changed, 25127 insertions, 0 deletions
diff --git a/files/ja/archive/b2g_os/add-ons/developing_b2g_os_add-ons/index.html b/files/ja/archive/b2g_os/add-ons/developing_b2g_os_add-ons/index.html
new file mode 100644
index 0000000000..f554cd6126
--- /dev/null
+++ b/files/ja/archive/b2g_os/add-ons/developing_b2g_os_add-ons/index.html
@@ -0,0 +1,357 @@
+---
+title: B2G OS のアドオンを開発する
+slug: Archive/B2G_OS/Add-ons/Developing_B2G_OS_add-ons
+tags:
+ - Add-ons
+ - Apps
+ - CSS
+ - Extensions
+ - Firefox OS
+ - JavaScript
+ - Manifest
+ - cuztomizations
+translation_of: Archive/B2G_OS/Add-ons/Developing_B2G_OS_add-ons
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p class="summary">アドオンは Web ブラウザの世界ではよく知られたコンセプトであり、Firefox OS にもアドオンの仕組みが導入されることとなりました。アドオン 1 つでアプリ 1 つ、または複数、もしくは全アプリを拡張できます。この記事では自分で Firefox OS アドオンを作るためのガイドやヒント、Tips やその他の有益な情報を提供します。</p>
+
+<div class="note">
+<p><strong>脚注</strong>: Firefox OS アドオンは Chrome/Blink アドオンの基礎となるWebExtensionsの拡張機能モデルを利用しており、 互換性と機能の点においてアドオンの作成に多くの利点をもたらします。より詳細については鋭意執筆中の <a href="/Add-ons/WebExtensions">WebExtensions ドキュメント</a>をご確認ください。</p>
+</div>
+
+<div class="warning">
+<p><strong>重要</strong>: アドオンは Firefox OS 2.5 以降でのみ使用可能であり、また拡張機能をデバッグするための最新の WebIDE サポートを得るために新しいビルドを端末にインストールする必要があります。Firefox OS アドオンの開発を始める前に、開発用端末が最新の利用可能なビルドにアップグレードされているかご確認ください。</p>
+</div>
+
+<h2 id="アドオンの開発">アドオンの開発</h2>
+
+<p>アドオンはJavaScript, CSSやその他のファイルからなるアプリパッケージです。ただし、アドオンは独立したアプリとしては動作しません。アドオンのマニフェストはどのアプリに アドオンを適用するのかを定義するための特別な機能を含んでいます。アプリがアドオンのインストールされた Firefox OS 端末から起動されるとき、アドオンは <a href="https://developer.mozilla.org/ja/Firefox_OS/Add-ons#manifest.json">manifest.json</a> のフィールドで指定されたパターンにマッチするアプリに注入されます。</p>
+
+<p>Firefox OS アドオンは、<a class="external external-icon" href="https://wiki.mozilla.org/WebExtensions">WebExtensions API</a> を利用して開発する新しい Firefox アドオン群と同様の構文と構造になっています。WebExtension API は <a class="external external-icon" href="https://developer.chrome.com/extensions">Chrome extensions</a> のモデルをベースにしています。</p>
+
+<h3 id="簡単な例">簡単な例</h3>
+
+<p>Firefox OS アドオンの基本について説明するために、クリックすると消えるバナーをシステムアプリに追加する簡単なサンプルを紹介します。</p>
+
+<p><img alt="firefox os screenshot showing add-on banner" src="https://mdn.mozillademos.org/files/11445/add-on-screenshot.png" style="display: block; height: 445px; margin: 0px auto; width: 250px;"></p>
+
+<p>これはとても基本的でありふれた例ですが、開発を始めるには充分なものです。<a class="external external-icon" href="https://github.com/mdn/simple-addon">Github 上のサンプルコード</a>を確認のうえ、ローカル環境に clone もしくは <a class="external external-icon" href="https://github.com/mdn/simple-addon/archive/gh-pages.zip">ZIP をダウンロード</a>し、WebIDE で自分の Firefox OS 端末にアドオンをインストールしてみてください。(<a href="https://developer.mozilla.org/ja/Firefox_OS/Add-ons#Testing_your_add-on_using_WebIDE">Testing your add-on using WebIDE</a> セクションもご覧ください。) アドオンはいずれ <a class="external external-icon" href="https://marketplace.firefox.com/">Firefox Marketplace</a> で配布できるようになります。</p>
+
+<p>Firefox OS アドオンはここに列挙したこと以上にたくさんのことができることに注意してください。<a href="https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions">WebExtensions</a> のドキュメントにはこれから情報が充実していきます。</p>
+
+<h2 id="Firefox_OS_アドオンの構造">Firefox OS アドオンの構造</h2>
+
+<p>このセクションではサンプルアドオンの内容の各項目を順に説明していきます。ディレクトリ構成は以下のようになっています:</p>
+
+<ul class="directory-tree">
+ <li>simple-addon/
+ <ul>
+ <li>manifest.json</li>
+ <li>update.webapp</li>
+ <li>css/
+ <ul>
+ <li>style.css</li>
+ </ul>
+ </li>
+ <li>js/
+ <ul>
+ <li>index.js</li>
+ </ul>
+ </li>
+ <li>icons/
+ <ul>
+ <li>128.png</li>
+ </ul>
+ </li>
+ <li>extension.zip</li>
+ </ul>
+ </li>
+</ul>
+
+<h3 id="manifest.json">manifest.json</h3>
+
+<p>サンプルアドオンのディレクトリには、2 つのマニフェストファイルが含まれていることにお気付きでしょう。最初のものは <code>manifest.json</code> で、Chrome スタイルのマニフェスト構成をもち、CSS や JavaScript、アイコンファイルなどとともに <a href="https://developer.mozilla.org/ja/Firefox_OS/Add-ons#extensions.zip">extensions.zip</a> パッケージのなかに配置されるものです。様々な指示を含めることができます (<a class="external external-icon" href="https://developer.chrome.com/extensions/manifest">Chrome Manifest File Format</a> をご覧ください) 。ただし、この例ではシンプルなものを利用することにしましょう:</p>
+
+<pre class="brush: json">{
+ "manifest_version": 1,
+ "name": "Add-on banner",
+ "description": "Firefox OS add-on example",
+ "version": "1.0",
+ "author": "Chris Mills",
+ "content_scripts": [{
+ "matches": ["app://system.gaiamobile.org/index.html"],
+ "css": ["css/style.css"],
+ "js": ["js/index.js"]
+ }],
+ "icons": {
+ "128": "/icons/128.png"
+ }
+}</pre>
+
+<p>多くのフィールドは説明するまでもありませんが、最後のいくつかを紹介します。</p>
+
+<p>まずはじめに、<code>content_scripts</code> フィールドはアドオンが適用されるアプリに注入されるコードを参照します。CSS と JavaScript のファイルはそれぞれ <code>css</code> と <code>js</code> フィールドでバスを指定します。<code>matches</code> フィールドはどのアプリにコードが注入されるのかを指定するパターンを含むものです。このパターンは多様な形式で書けます (<a class="external external-icon" href="https://developer.chrome.com/extensions/match_patterns">Chrome Match Patterns</a> をご覧ください)。いまはシンプルに <code>app://system.gaiamobile.org/index.html</code> と指定されており、システムアプリのみに限定されています。すべてのアプリに適用したい時には <code>app://*/* </code> を利用します。</p>
+
+<div class="note">
+<p><strong>脚注</strong>: 配列に複数の要素を含めることで、容易に複数のスクリプトやスタイルシートを参照することができます。例えば <code>"css": ["css/style.css", "css/more.css"]</code> のような形になります。</p>
+</div>
+
+<div class="note">
+<p><strong>脚注</strong>: Firefox OS では、現在のところ Chrome の &lt;all_urls&gt; キーワードはサポートしていません。</p>
+</div>
+
+<p>マニフェストの最後の部分で、<code>icons</code> フィールドをインクルードしていますが、これについての詳細は次のセクションをご覧ください。</p>
+
+<h3 id="update.webapp">update.webapp</h3>
+
+<div class="note">
+<p><strong>Note</strong>: You don't need the <code>.webapp</code> manifest if you are <a href="/en-US/docs/Mozilla/Marketplace/Add-on_submission">submitting add-ons to the Firefox Marketplace</a> — you just need the <code>.zip</code> file.</p>
+</div>
+
+<p><code>update.webapp</code> マニフェストは <a href="https://developer.mozilla.org/Apps/Build/Manifest">Firefox OS スタイルのマニフェスト</a>であり、基本的にはパッケージアプリと同様の簡易マニフェストです。 (<a href="https://developer.mozilla.org/Marketplace/Options/Self_publishing#Self-publishing_packaged_apps">Self-publishing packaged apps</a> をご覧ください)</p>
+
+<p><code>update.webapp</code> ファイルは以下のようなものです:</p>
+
+<pre class="brush: json">{
+ "name" : "Add-on banner",
+ "description": "Firefox OS add-on example",
+ "developer": { "name": "Chris Mills" },
+ "package_path": "extension.zip",
+ "icons": {
+ "128": "/icons/128.png"
+ }
+}</pre>
+
+<p>やはり、これらのほとんどは説明するまでもありません。</p>
+
+<p>おそらく、ここでいちばん重要なフィールドは <code>package_path</code> でしょう。これはエクステンションを含むパッケージのパスを指すものです。</p>
+
+<p>ここで、<a href="https://developer.mozilla.org/ja/Firefox_OS/Add-ons#manifest.json">manifest.json</a> のときと同様に <code>icons</code> フィールドが含まれていることにお気付きでしょう。<code>update.webapp</code> は現時点でアイコンに関する情報をもつ<em>必要がある</em>唯一の場所ですが、仕様が変更になる可能性もあるため、いまのところ両方にフィールドを含めることを推奨しています。<code>icons</code> フィールドで指定されたアドオンのアイコンは Gaia Settings アプリ内で利用され、また、アドオンのホストが開始されれば Firefox Marketplace でも利用されます。</p>
+
+<h3 id="アイコンのインクルード">アイコンのインクルード</h3>
+
+<p>アイコンは少なくとも1つ含まれなければならず、マニフェストから参照しなければ、そのマニフェストは有効なものとはなりません。詳細については <a href="https://developer.mozilla.org/Apps/Build/Manifest#icons">Manifest リファレンスのアイコンセクション</a> をご覧ください。</p>
+
+<h3 id="CSS">CSS</h3>
+
+<div class="warning">
+<p><strong>重要</strong>: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1179536">bug 1179536</a> によると、システムアプリ以外にスタイルシートを注入するのは動作しません。このアドオンはシステムアプリにのみ影響するため、チュートリアルは動作しますが、その他のアプリやwebページにスタイルを追加するには、JavaScriptを使ってスタイル変更する必要があります。</p>
+</div>
+
+<p>CSSについて、例ではなにも特殊なことはしていませんが、覚えておくべきことは、アドオンのクラス名やセレクタ名はそのアドオンを適用するアプリの CSS とコンフリクトさせるべきではないということです。</p>
+
+<p>例えば、バナーのサンプルでは、バナーを <code>fxos-banner</code> というクラス名の <a href="https://developer.mozilla.org/ja/docs/Web/HTML/Element/div" title="HTML の &lt;div> 要素 (HTML Document Division Element) は、何か特定のセマンティクスを表すものではない、フローコンテンツの為の汎用コンテナです。CSS によるスタイリングの用途等で、要素のグループ化が必要な場合に用います。多くの場合、 class 属性か id 属性、lang 属性等と共に使われます。セマンティクス上で(&lt;article> 、&lt;nav>) など他に適切な要素がある場合はそちらを使用して下さい。"><code>&lt;div&gt;</code></a> で囲いました。しかし本来はクラス名について、より一意性のあるコードとなるように考えるのが良いでしょう。</p>
+
+<h3 id="JavaScript">JavaScript</h3>
+
+<p>JavaScript についても、なにも特殊な機能は持たせていません (<a class="external external-icon" href="https://github.com/mdn/simple-addon/blob/gh-pages/js/index.js">Github 上の JavaScript ソース</a>をご覧ください)。JavaScript ソースは、<a href="https://developer.mozilla.org/ja/Firefox_OS/Add-ons#manifest.json">manifest.json</a> ファイルで指定された CSS に続いてアプリに注入されます。</p>
+
+<div class="note">
+<p><strong>脚注</strong>: アドオンのコードはアプリが起動し、マニフェストの指定とマッチする度に注入されます。また、アドオンが有効化される度に注入されます。アプリの起動時に アドオンが注入される場合、アプリの DOM を含めたすべてのものが初期化される前にアドオンの各ファイルが注入されます。アプリの初期化を待たずに即時注入するか、アプリの起動を待ってから注入す るか、起動処理タイミングの選択はアドオンの開発者に任されています。以下でより詳細について説明します。</p>
+</div>
+
+<p>その他の主な事柄は以下に記載されています。</p>
+
+<h4 id="window_オブジェクト">window オブジェクト</h4>
+
+<p>アドオンはプロキシされた <code>window</code> オブジェクトを共有します。結果として、アドオンから <a href="https://developer.mozilla.org/docs/Web/API/Window">window</a> オブジェクトに書き込まれたものはアプリ側のコードでは利用できません。しかし、アプリ側で <code>window</code> オブジェクトにセットされたものはアドオンで利用できます。同様に、DOM も普段通りにアクセス可能です。</p>
+
+<h4 id="DOM_へのコード注入">DOM へのコード注入</h4>
+
+<p>アプリの DOM を操作するのに JavaScript API を利用できます。</p>
+
+<h4 id="正しいタイミングでコードを注入する">正しいタイミングでコードを注入する</h4>
+
+<p>アプリがロードされた後にアドオンが注入される場合に正しく処理されるように気をつけねばなりません。そのようなシナリオは、アプリがすでに起動している状態でアドオンが有効化されたときに起こります。その場合、<a href="https://developer.mozilla.org/docs/Web/Events/DOMContentLoaded">DOMContentLoaded</a> イベントがすでに発生してしまっているため、<a href="https://developer.mozilla.org/docs/Web/API/GlobalEventHandlers/onload">window.onload</a> ハンドラは動作しません。</p>
+
+<p>現在、この問題に対するうまい解決策はありません。一時的な対処として、<code>DOMContentLoaded</code> コールバックをセットする前に DOM がロードされているかどうかを確認することをおすすめします。このパターンはサンプルコードでも利用されています:</p>
+
+<pre class="brush: js">// If injecting into an app that was already running at the time
+// the app was enabled, simply initialize it.
+if (document.documentElement) {
+ initialize();
+}
+
+// Otherwise, we need to wait for the DOM to be ready before
+// starting initialization since add-ons are usually (always?)
+// injected *before* `document.documentElement` is defined.
+else {
+ window.addEventListener('DOMContentLoaded', initialize);
+}
+
+function initialize() {
+ // ...
+}
+</pre>
+
+<h4 id="複数の注入の防止">複数の注入の防止</h4>
+
+<p>最後に、一つのアプリインスタンスに対して、何度もアドオンが注入されてしまうことを防ぐために、アドオンの初期化処理が既に終わっているか確認すると良いでしょう。以下に例を示します:</p>
+
+<pre class="brush: js">function initialize() {
+ if (document.querySelector('.fxos-banner')) {
+ // Already injected, abort.
+ return;
+ } else {
+ var body = document.querySelector('body');
+ var fxosBanner = document.createElement('div');
+ fxosBanner.classList.add('fxos-banner');
+ var bannerText = document.createElement('p');
+ var closeBtn = document.createElement('button');
+
+ fxosBanner.appendChild(bannerText);
+ fxosBanner.appendChild(closeBtn);
+ body.appendChild(fxosBanner);
+
+ closeBtn.textContent = 'X';
+ bannerText.textContent = 'Wow, you have an extension installed!';
+
+ closeBtn.onclick = function() {
+ fxosBanner.parentNode.removeChild(fxosBanner);
+ }
+ }
+}
+</pre>
+
+<p>ここでは、バナーがすでに存在するかを確認するために <code>if (document.querySelector('.fxos-banner'))</code> を利用しています。もしそうであれば、関数から抜け出します。そうでなければ、<code>querySelector()</code> メソッドは <code>null</code> を返し、バナーを作成するコードブロックが実行されます。</p>
+
+<h4 id="アドオンのアプリマネジメント関数">アドオンのアプリマネジメント関数</h4>
+
+<p>すべての <code><a href="/docs/Web/API/DOMApplicationsRegistry">Apps</a></code> と <code><a href="/docs/Web/API/DOMApplicationsRegistry/mgmt">Mgmt</a></code> の関数はアプリで動作するのと同じようにアドオン上でも動作します。後者については <code>webapps-manager</code> パーミッションがマニフェストで指定されている特権アプリに注入されたアドオンでのみ利用可能であることに注意してください。</p>
+
+<p>これらの関数に加えて、アドオンが有効化、無効化される際のコールバックとして <code><a href="http://mxr.mozilla.org/mozilla-central/source/dom/webidl/Apps.webidl#141">onenabledstatechange</a></code> が用意されています。このイベントはすべてのアドオンに対して発火するため、初期化やクリーンアップの処理の前にどのアドオンが有効化・無効化されたのかを確認する必要があるでしょう</p>
+
+<pre class="brush: js"><span>navigator.mozApps.mgmt</span>.<span>addEventListener('enabledstatechange</span>', <span>function</span>(<span>event</span>) {
+ var app = event.application;
+ if (app.manifestURL === 'https://origin.of.manifest/manifest.webapp') {
+ var wasEnabled = app.enabled;
+ // do something with this information
+ }
+});
+</pre>
+
+<div class="warning">
+<p><strong>重要</strong>:  <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1214155">bug 1214155</a> にあるように、<code>navigator.mozApps.mgmt.</code><span id="summary_alias_container"><span id="short_desc_nonedit_display"><code>onenabledstatechange = function() {...}</code> を通じて有効なステートリスナーを追加できません。つまり上で述べている <code>addEventListener</code> を使わないといけません、</span></span></p>
+</div>
+
+<h3 id="extension.zip">extension.zip</h3>
+
+<div class="note">
+<p><strong>脚注</strong>: <code>extension.zip</code> ファイルは、どのようにシステムが動作するのかといった説明のためにデモ用のリポジトリの中に配置されています。実際には、 Zip ファイルをディレクトリの中に含める必要はなく、WebIDE がアドオンをインストールする際に自動生成します。Firefox Marketplace がアドオンの掲載を始める際にも、同様にする予定となっています。</p>
+</div>
+
+<p><code>extension.zip</code> アーカイブはエクステンションのためのコードを含み、それらは <a href="https://developer.mozilla.org/ja/Firefox_OS/Add-ons#update.webapp">update.webapp</a> の <code>package_path</code> フィールドで指定されています。このため、Gecko がインストールするべきコードを見つけることができるのです。アーカイブのなかは以下のようになっています:</p>
+
+<ul class="directory-tree">
+ <li>css/
+ <ul>
+ <li>style.css</li>
+ </ul>
+ </li>
+ <li>js/
+ <ul>
+ <li>index.js</li>
+ </ul>
+ </li>
+ <li>icons/
+ <ul>
+ <li>128.png</li>
+ </ul>
+ </li>
+ <li>manifest.json</li>
+</ul>
+
+<p>このように <code>manifest.json</code> ファイルはアーカイブのなかに配置され、どのファイルをどのアプリに注入するのかを参照するために提供されます。</p>
+
+<h3 id="WebIDE_を利用したアドオンのテスト">WebIDE を利用したアドオンのテスト</h3>
+
+<p>Mozilla の WebIDE ツールはデスクトップ版の Firefox ではじめから利用可能です。これを利用してアドオンを端末にインストールするには、以下のステップに従います:</p>
+
+<ol>
+ <li>Firefox 43 かそれ以降のバージョンの Firefox がインストールされているか確認してください (執筆時点では <a class="external external-icon" href="https://nightly.mozilla.org/">Nightly</a> バージョンが必要でした)。WebIDE でのアドオン開発はこのバージョン以降でのみサポートされています。</li>
+ <li>ブラウザを開き、WebIDE ボタンを押下する、もしくはメニューから <em>Tools &gt; Web Developer &gt; WebIDE</em> を選択して WebIDE ツールを開きます。</li>
+ <li>端末のリモートデバッグが有効になっているかを確認します。(<em>Settings アプリ &gt; Developer &gt; "Debugging via USB" の項目で "ADB and DevTools" を選択します。</em>)</li>
+ <li>USB ケーブルを利用し端末を PC に接続します。同時に2台以上の端末が接続されていないようにしてください。</li>
+ <li>WebIDE の UI 上で、<em>Select Runtime</em> オプションを押下し、<em>USB Devices</em> に列挙されている端末のなかから接続された端末を選択します。</li>
+ <li>現時点では、<em>Allow USB debugging connection?</em> というプロンプトが端末上に表示されます。<em>Allow</em> を選択してください。(訳注: 開発者向けビルドの場合プロンプト無しでインストール可能になっている場合もあります)</li>
+ <li><em>Open App</em> オプションから <em>Open Packaged App...</em> を選択します。</li>
+ <li>ファイルの選択画面で <code>update.webapp</code> マニフェストファイルを含むディレクトリまで遷移し、<em>Open</em> を押下します。</li>
+ <li>警告もエラーも報告されなければ、"Play" ボタンを押下してアドオンを端末にインストールすることができます。(<em>Install and Run</em>)</li>
+ <li>動作しているアドオンを確認するには、<em>Settings アプリ &gt; Add-ons &gt; Add-on example &gt; 上部のチェックボックスにチェック</em>してアドオンを有効化します。</li>
+</ol>
+
+<h2 id="アドオンをデバッグする">アドオンをデバッグする</h2>
+
+<p>Please note due to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1185464" title="The new extension API should come with debuggability">バグ 1185464</a> にある通り、現在 WebIDE を使ってデバッグすることはできないことに気をつけてください。</p>
+
+<h2 id="アドオンの設定">アドオンの設定</h2>
+
+<p><em>Settings アプリ &gt; Add-ons</em> から端末上のアドオンを管理することができます。この項目ではインストールされたアドオンが列挙され、それぞれをタップしてそれぞれの詳細について確認することができます。</p>
+
+<p style="width: 520px; margin: 0 auto;"><img alt="firefox os screenshot showing a list of installed add-ons in the settings app" src="https://mdn.mozillademos.org/files/11447/add-on-settings-screen.png" style="height: 445px; margin-right: 20px; width: 250px;"><img alt="information screen for an individual addon, with a list of apps this add-on affects, and controls to disable and delete the add-on" src="https://mdn.mozillademos.org/files/11449/individual-add-on-settings-page.png" style="height: 445px; width: 250px;"></p>
+
+<h3 id="アドオンの有効化・無効化、そして削除">アドオンの有効化・無効化、そして削除</h3>
+
+<p>標準では、アドオンは Firefox Marketplace からインストールされると有効になります。WebIDE からインストールされた場合は、最初は無効化された状態になります。</p>
+
+<p>各アドオンのページ (<em>Settings app &gt; Add-ons</em> 以下にあります) の上部のチェックボックスから、手動でアドオンを有効化、無効化することができます。また、これを自動化したい場合は <a href="https://developer.mozilla.org/docs/Web/API/DOMApplicationsManager/setEnabled">navigator.mozApps.mgmt.setEnabled()</a> 関数を利用することが可能です (この Github 上の <a class="external external-icon" href="https://github.com/fxos/directory/blob/master/app/js/controller/list_controller.js#L220-L223">setEnabled() 利用例</a> をご覧ください)。</p>
+
+<p>各アドオンのページにある <em>Delete</em> ボタンをタップすることでアドオンを削除することができます。</p>
+
+<h2 id="パーミッション">パーミッション</h2>
+
+<p>アドオンはホストアプリからすべてのパーミッションを継承します。アドオンのマニフェスト (<a href="https://developer.mozilla.org/ja/Firefox_OS/Add-ons#update.webapp">update.webapp</a>) でパーミッションを要求しても効果はなく、ホストアプリで利用できない API はアドオンにも提供されません。</p>
diff --git a/files/ja/archive/b2g_os/add-ons/index.html b/files/ja/archive/b2g_os/add-ons/index.html
new file mode 100644
index 0000000000..6f689e46ef
--- /dev/null
+++ b/files/ja/archive/b2g_os/add-ons/index.html
@@ -0,0 +1,106 @@
+---
+title: B2G OS アドオン
+slug: Archive/B2G_OS/Add-ons
+tags:
+ - Add-ons
+ - Apps
+ - Extensions
+ - Firefox OS
+ - customizations
+translation_of: Archive/B2G_OS/Add-ons
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="note">
+<p dir="ltr"><strong>注記</strong>: B2G OS アドオンは、<a href="https://developer.mozilla.org/docs/Mozilla/Add-ons/WebExtensions">WebExtensions API</a> を基礎としていて、これはデスクトップ版Firefox の42以降からサポートされており、Chrome と Operaで使われているエクステンション(拡張機能)を基礎としています。</p>
+</div>
+
+<h2 id="前提条件">前提条件</h2>
+
+<p>エクステンションの開発を始めるためのセットアップを行うには、下記のステップに従う必要があります。</p>
+
+<h3 id="1._USB_デバッグの有効化">1. USB デバッグの有効化</h3>
+
+<p>端末の <em>Settings</em> アプリで、<em>Developer &gt; De bugging via USB &gt; ADB and Devtools</em>.を選びます。ここで WebIDE を用いてインストール型のアプリを USB ケーブル <a href="https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_OS_over_Wifi">と</a><a href="https://developer.mozilla.org/docs/Tools/Remote_Debugging/Debugging_Firefox_OS_over_Wifi">Wifi 上</a> (USB ケーブル不要) の両方からデバッグできるはずです。</p>
+
+<h3 id="2._WebIDE_のセットアップ">2. WebIDE のセットアップ</h3>
+
+<p><a href="https://developer.mozilla.org/ja/docs/Tools/WebIDE">WebIDE</a> ツールは Firefox の一部分であり、開発期間に電話機へアドオンをインストールするのに使われます — 詳しくは <a href="https://developer.mozilla.org/ja/Firefox_OS/Add-ons/Developing_B2G_OS_add-ons#WebIDE_%E3%82%92%E5%88%A9%E7%94%A8%E3%81%97%E3%81%9F%E3%82%A2%E3%83%89%E3%82%AA%E3%83%B3%E3%81%AE%E3%83%86%E3%82%B9%E3%83%88">WebIDE を利用したアドオンのテスト</a>をご覧ください。</p>
+
+<h2 id="その他の情報">その他の情報</h2>
+
+<h3 id="開発する">開発する</h3>
+
+<ul>
+ <li dir="ltr"><strong>チュートリアル</strong>: <a href="https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/Add-ons/Developing_Firefox_OS_add-ons">https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/Add-ons/Developing_Firefox_OS_add-ons</a></li>
+ <li dir="ltr"><strong>詳しい例</strong>: <a href="https://hacks.mozilla.org/2015/11/building-an-ios-style-unread-notifications-add-on-for-firefox-os/">https://hacks.mozilla.org/2015/11/building-an-ios-style-unread-notifications-add-on-for-firefox-os/</a></li>
+ <li dir="ltr"><strong>API リファレンス</strong>: <a href="https://developer.mozilla.org/ja/Add-ons/WebExtensions">https://developer.mozilla.org/ja/Add-ons/WebExtensions</a></li>
+</ul>
+
+<h3 dir="ltr" id="参加する">参加する</h3>
+
+<ul>
+ <li dir="ltr"><strong>メーリングリスト(日本語)</strong>:<a href="https://groups.google.com/forum/#!forum/mozilla-translations-ja">https://groups.google.com/forum/#!forum/mozilla-translations-ja</a></li>
+ <li dir="ltr"><strong>メーリングリスト(英語)</strong>:<a href="https://mail.mozilla.org/listinfo/dev-addons">https://mail.mozilla.org/listinfo/dev-fxos</a></li>
+ <li dir="ltr"><strong>講演フォーラム</strong>: <a href="https://discourse.mozilla-community.org/c/add-ons/development">https://discourse.mozilla-community.org/c/add-ons/development</a></li>
+ <li dir="ltr"><strong>IRC</strong>:  irc.mozilla.org, #webextensions and #fxos</li>
+ <li dir="ltr"><strong>どの新規</strong><strong> API を優先付けるべきかは、こちらで教えてください</strong>: <a href="https://webextensions.uservoice.com/forums/315663-webextension-api-ideas">https://webextensions.uservoice.com/forums/315663-webextension-api-ideas</a></li>
+ <li dir="ltr"><strong>Twitter でフォローしてください</strong>: <a href="https://twitter.com/MozWebExt">@MozWebExt</a></li>
+</ul>
+
+<div id="divDic" style="opacity: 0.9; font-size: small; background-color: #EDF4FC; color: Gray; position: absolute; top: 774px; left: 229px; min-height: 50px; max-width: 50%; padding: 5px; text-align: left; border-radius: 4px; box-shadow: -2px 0px 9px 5px #898D91;">
+<div id="divResult" style="overflow: auto; padding: 3px;"><a href="https://groups.google.com/forum/#!forum/mozilla-translations-ja">https://groups.google.com/forum/#!forum/mozilla-translations-ja</a></div>
+<a id="optionsLink" style="opacity: 0.2; position: absolute; right: 13px; font-size: 18px; text-decoration: none!important; background: #528DDF; padding: 1px; color: #fff; border-radius: 6px 6px 6px 6px; border: 2px solid #EEEEEE; font-weight: bold; width: 20px; text-align: center; display: block;">+</a></div>
diff --git a/files/ja/archive/b2g_os/api/bluetoothmanager/enabled/index.html b/files/ja/archive/b2g_os/api/bluetoothmanager/enabled/index.html
new file mode 100644
index 0000000000..f33ecec381
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/bluetoothmanager/enabled/index.html
@@ -0,0 +1,51 @@
+---
+title: BluetoothManager.enabled
+slug: Archive/B2G_OS/API/BluetoothManager/enabled
+tags:
+ - API
+ - Firefox OS
+ - Non Standard
+ - Property
+ - Reference
+ - Web Bluetooth
+ - WebAPI
+translation_of: Archive/B2G_OS/API/BluetoothManager/enabled
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Web/API/Web_Bluetooth_API">Web Bluetooth API</a></strong></li><li><strong><a href="/ja/docs/Web/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>Bluetooth API に関連するページ</summary><ol><li><a href="/ja/docs/Web/API/BluetoothAdvertisingData"><code>BluetoothAdvertisingData</code></a></li><li><a href="/ja/docs/Web/API/BluetoothDevice"><code>BluetoothDevice</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTCharacteristic"><code>BluetoothGATTCharacteristic</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTDescriptor"><code>BluetoothGATTDescriptor</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTRemoteServer"><code>BluetoothGATTRemoteServer</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は現在 W3C の標準化のプロセスに乗っていませんが、Firefox OS プラットフォームではサポートされています。将来は動作が変わるかもしれませんし、他のブラウザーで広くサポートされているわけでもありませんが、Firefox OS アプリ専用のコードで使うには適しています。</p>
+ </div><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<h2 id="概要">概要</h2>
+
+<p><code>enabled</code> プロパティはBluetoothがオン(<code>true</code>) またはオフ (<code>false</code>)であることを示します</p>
+
+<div class="note">
+<p><strong>注:</strong> Bluetoothの有効化/無効化は <a href="/docs/Web/API/Settings_API" title="/en-US/docs/WebAPI/Settings">Settings API</a> の<code> bluetooth.enabled の設定を変更する事</code>によってのみ実行されます。この設定を変更する度に <a href="/ja/docs/Web/API/BluetoothManager" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager</code></a> オブジェクトは <code><a href="/ja/docs/Web/Reference/Events/enabled" title="/ja/docs/Web/Reference/Events/enabled">enabled</a></code> または <code><a href="/ja/docs/Web/Reference/Events/disabled" title="/ja/docs/Web/Reference/Events/disabled">disabled</a></code> イベントを発行します。これらイベントは <a href="/ja/docs/Web/API/BluetoothManager/onenabled" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.onenabled</code></a> および <a href="/ja/docs/Web/API/BluetoothManager/ondisabled" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.ondisabled</code></a> イベントハンドラを利用して取得することができます。</p>
+</div>
+
+<h2 id="構文">構文</h2>
+
+<pre class="syntaxbox">var enabled = navigator.mozBluetooth.enabled</pre>
+
+<h2 id="値">値</h2>
+
+<p>bool値を返します。</p>
+
+<h2 id="Specification" name="Specification">仕様</h2>
+
+<p>正式な仕様の一部ではありません。 <a href="http://www.w3.org/2012/sysapps/">W3C's System Applications Working Group</a> で協議される必要があります。</p>
+
+<h2 id="参考">参考</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/BluetoothManager_(Firefox_OS)" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager_(Firefox_OS)</code></a></li>
+ <li><a href="/docs/WebAPI/WebBluetooth">Web Bluetooth</a></li>
+ <li>The <a href="/docs/Web/API/Settings_API" title="/en-US/docs/WebAPI/Settings">Settings API</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/bluetoothmanager/getdefaultadapter/index.html b/files/ja/archive/b2g_os/api/bluetoothmanager/getdefaultadapter/index.html
new file mode 100644
index 0000000000..5a504886f8
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/bluetoothmanager/getdefaultadapter/index.html
@@ -0,0 +1,48 @@
+---
+title: BluetoothManager.getDefaultAdapter()
+slug: Archive/B2G_OS/API/BluetoothManager/getDefaultAdapter
+tags:
+ - API
+ - Method
+ - Non Standard
+ - Reference
+ - Web Bluetooth
+ - WebAPI
+translation_of: Archive/B2G_OS/API/BluetoothManager/getDefaultAdapter
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Web/API/Web_Bluetooth_API">Web Bluetooth API</a></strong></li><li><strong><a href="/ja/docs/Web/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>Bluetooth API に関連するページ</summary><ol><li><a href="/ja/docs/Web/API/BluetoothAdvertisingData"><code>BluetoothAdvertisingData</code></a></li><li><a href="/ja/docs/Web/API/BluetoothDevice"><code>BluetoothDevice</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTCharacteristic"><code>BluetoothGATTCharacteristic</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTDescriptor"><code>BluetoothGATTDescriptor</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTRemoteServer"><code>BluetoothGATTRemoteServer</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。</p>
+ </div><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<h2 id="概要">概要</h2>
+
+<p><code>getDefaultAdapter</code> メソッドは、デバイスをサードパーティー製のBluetooth デバイスと接続するためのデフォルトアダプタを取得するのに使われます。</p>
+
+<p>新しいアダプタがデバイスに接続される毎に、そのデバイスがデフォルトのアダプタになります。通常Firefox OSはアダプタを一つだけ有します。.</p>
+
+<h2 id="構文">構文</h2>
+
+<pre>var request = navigator.mozBluetooth.getDefaultAdapter();</pre>
+
+<h3 id="返値">返値</h3>
+
+<p>オペレーションの成功または失敗を取得するための <a href="/ja/docs/Web/API/DOMRequest" title="DOMRequest オブジェクトは、進行中の操作を表します。操作の完了時に呼び出されるコールバックと、操作結果への参照を提供します。 進行中の操作を開始する DOM メソッドは、その操作の進行状況の監視に使用できる DOMRequest オブジェクトを返すことがあります。"><code>DOMRequest</code></a> オブジェクトを返します。成功した場合、リクエストの結果は <a href="/ja/docs/Web/API/BluetoothAdapter" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter</code></a> オブジェクトです。</p>
+
+<h2 id="Specification" name="Specification">仕様</h2>
+
+<p>正式な仕様の一部ではありません。<a href="http://www.w3.org/2012/sysapps/">W3C's System Applications Working Group</a> で協議される必要があります。</p>
+
+<h2 id="参考">参考</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/BluetoothManager_(Firefox_OS)" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager_(Firefox_OS)</code></a></li>
+ <li><a href="/ja/docs/Web/API/BluetoothAdapter" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter</code></a></li>
+ <li><a href="/docs/WebAPI/WebBluetooth">Web Bluetooth</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/bluetoothmanager/index.html b/files/ja/archive/b2g_os/api/bluetoothmanager/index.html
new file mode 100644
index 0000000000..b508d9317b
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/bluetoothmanager/index.html
@@ -0,0 +1,188 @@
+---
+title: BluetoothManager (Firefox OS)
+slug: Archive/B2G_OS/API/BluetoothManager
+tags:
+ - API
+ - BluetoothManager
+ - Certified
+ - DOM
+ - Firefox OS
+ - Interface
+ - Reference
+ - Web Bluetooth
+ - WebAPI
+translation_of: Archive/B2G_OS/API/BluetoothManager
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Web/API/Web_Bluetooth_API">Web Bluetooth API</a></strong></li><li><strong><a href="/ja/docs/Web/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>Bluetooth API に関連するページ</summary><ol><li><a href="/ja/docs/Web/API/BluetoothAdvertisingData"><code>BluetoothAdvertisingData</code></a></li><li><a href="/ja/docs/Web/API/BluetoothDevice"><code>BluetoothDevice</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTCharacteristic"><code>BluetoothGATTCharacteristic</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTDescriptor"><code>BluetoothGATTDescriptor</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTRemoteServer"><code>BluetoothGATTRemoteServer</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は現在 W3C の標準化のプロセスに乗っていませんが、Firefox OS プラットフォームではサポートされています。将来は動作が変わるかもしれませんし、他のブラウザーで広くサポートされているわけでもありませんが、Firefox OS アプリ専用のコードで使うには適しています。</p>
+ </div><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<p><a href="/docs/Web/API/Web_Bluetooth_API">Web Bluetooth API</a> のインターフェースである <code>BluetoothManager</code> は、デバイス上の全てのBluetoothアダプタへのアクセスを許可します。このアダプタはデバイスと他のBluetoothデバイスを接続するためのインターフェースです。</p>
+
+<h2 id="インターフェース概要">インターフェース概要</h2>
+
+<pre>[CheckPermissions="bluetooth"]
+interface BluetoothManager: EventTarget
+{
+ readonly attribute <a href="https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2/BluetoothAdapter#BluetoothAdapter" title="B2G/Bluetooth/WebBluetooth-v2/BluetoothAdapter">BluetoothAdapter</a>? <a href="https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2/BluetoothManager#defaultAdapter" title="B2G/Bluetooth/WebBluetooth-v2/BluetoothManager">defaultAdapter</a>;
+
+ attribute EventHandler <a href="https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2/BluetoothManager#onattributechanged" title="B2G/Bluetooth/WebBluetooth-v2/BluetoothManager">onattributechanged</a>;
+ attribute EventHandler <a href="https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2/BluetoothManager#onadapteradded" title="B2G/Bluetooth/WebBluetooth-v2/BluetoothManager">onadapteradded</a>;
+ attribute EventHandler <a href="https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2/BluetoothManager#onadapterremoved" title="B2G/Bluetooth/WebBluetooth-v2/BluetoothManager">onadapterremoved</a>;
+
+ sequence&lt;BluetoothAdapter&gt; <a href="https://wiki.mozilla.org/B2G/Bluetooth/WebBluetooth-v2/BluetoothManager#getAdapters.28.29" title="B2G/Bluetooth/WebBluetooth-v2/BluetoothManager">getAdapters()</a>;
+};</pre>
+
+<h2 id="プロパティ">プロパティ</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/BluetoothManager_%28Firefox_OS%29/enabled" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.enabled</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>Bluetoohがオン(true) またはオフ(false)を示すbool値。</dd>
+</dl>
+
+<h3 id="イベントハンドラ">イベントハンドラ</h3>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/BluetoothManager_%28Firefox_OS%29/onadapteradded" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.onadapteradded</code></a></dt>
+ <dd><code><a href="/ja/docs/Web/Reference/Events/adapteradded" title="/ja/docs/Web/Reference/Events/adapteradded">adapteradded</a></code> イベントが発火した際に実行されるハンドラ。これはデバイス上でBluetoothアダプタが有効になったとき発生します。</dd>
+ <dt><a href="/ja/docs/Web/API/BluetoothManager_%28Firefox_OS%29/onadapterremoved" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.onadapterremoved</code></a></dt>
+ <dd><code><a href="/ja/docs/Web/Reference/Events/adapterremoved" title="/ja/docs/Web/Reference/Events/adapterremoved">adapterremoved</a></code> イベントが発火した際に実行されるハンドラ。これはデバイス上でBluetoothアダプタが無効にされたか取り外された場合に発生します。</dd>
+ <dt><a href="/ja/docs/Web/API/BluetoothManager_%28Firefox_OS%29/onattributechanged" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.onattributechanged</code></a></dt>
+ <dd><code><a href="/ja/docs/Web/Reference/Events/attributechanged" title="/ja/docs/Web/Reference/Events/attributechanged">attributechanged</a></code> イベントが発火した際に実行されるハンドラ。これは <a href="/ja/docs/Web/API/BluetoothManager_%28Firefox_OS%29/defaultAdapter_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.defaultAdapter</code></a> プロパティが変化した際に発生します。</dd>
+</dl>
+
+<div class="note">
+<p><strong>注:</strong> <a href="/ja/docs/Web/API/BluetoothManager_%28Firefox_OS%29_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager</code></a> インターフェースは <a href="/ja/docs/Web/API/EventTarget" title="EventTarget は、イベントを受け取り、そのためのリスナーを持つ可能性があるオブジェクトにより実装されたインターフェースです。"><code>EventTarget</code></a> インターフェースを継承しているため、全てのイベントは <a href="/ja/docs/Web/API/EventTarget/addEventListener" title="EventTarget の addEventListener() メソッドは、特定のイベントが対象に配信されるたびに呼び出される関数を設定します。"><code>addEventListener</code></a> メソッドを使用して監視することが可能です。</p>
+</div>
+
+<h3 id="廃止イベントハンドラ">廃止イベントハンドラ</h3>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/BluetoothManager_%28Firefox_OS%29/onenabled_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.onenabled</code></a></dt>
+ <dd><code><a href="/ja/docs/Web/Reference/Events/enabled" title="/ja/docs/Web/Reference/Events/enabled">enabled</a></code> イベントが発火した際に実行されるハンドラ。 これはBluetoothが有効になった際に発生します。</dd>
+ <dt><a href="/ja/docs/Web/API/BluetoothManager_%28Firefox_OS%29/ondisabled_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.ondisabled</code></a></dt>
+ <dd><code><a href="/ja/docs/Web/Reference/Events/disabled" title="/ja/docs/Web/Reference/Events/disabled">disabled</a></code> イベントが発火した際に実行されるハンドラ。 これはBluetoothが無効になった際に発生します。</dd>
+</dl>
+
+<h2 id="メソッド">メソッド</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/BluetoothManager/getAdapters_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.getAdapters()</code></a></dt>
+ <dd>現在デバイスで使用されている <a href="/ja/docs/Web/API/BluetoothAdapter_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter</code></a> のリストを返します。</dd>
+</dl>
+
+<h3 id="廃止メソッド">廃止メソッド</h3>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/BluetoothManager/getDefaultAdapter_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.getDefaultAdapter()</code></a></dt>
+ <dd>デバイスで使用されているデフォルトアダプタを取得します。これはオペレーションの成功または失敗を取得するための <a href="/ja/docs/Web/API/DOMRequest" title="DOMRequest オブジェクトは、進行中の操作を表します。操作の完了時に呼び出されるコールバックと、操作結果への参照を提供します。 進行中の操作を開始する DOM メソッドは、その操作の進行状況の監視に使用できる DOMRequest オブジェクトを返すことがあります。"><code>DOMRequest</code></a> を返します。成功した場合、リクエストの結果は <a href="/ja/docs/Web/API/BluetoothAdapter_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter</code></a> オブジェクトです。このメソッドは <a href="/ja/docs/Web/API/BluetoothManager/getAdapters_%28Firefox_OS%29" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.getAdapters()</code></a> に置き換えられました。</dd>
+</dl>
+
+<h2 id="仕様">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ <tr>
+ <td><a class="external" href="https://webbluetoothcg.github.io/web-bluetooth//BluetoothManager" hreflang="en" lang="en">Web Bluetooth<br><small lang="ja">BluetoothManager の定義</small></a></td>
+ <td><span class="spec-Draft">ドラフト</span></td>
+ <td>草案。これは正式な仕様ではありません。<a href="http://www.w3.org/2012/sysapps/">W3C's System Applications Working Group</a> で協議が必要です</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザの互換性">ブラウザの互換性</h2>
+
+<div><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div></div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th style="line-height: 16px;">Feature</th>
+ <th style="line-height: 16px;">Chrome</th>
+ <th style="line-height: 16px;">Firefox (Gecko)</th>
+ <th style="line-height: 16px;">Internet Explorer</th>
+ <th style="line-height: 16px;">Opera</th>
+ <th style="line-height: 16px;">Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th style="line-height: 16px;">Feature</th>
+ <th style="line-height: 16px;">Android</th>
+ <th style="line-height: 16px;">Android Webview</th>
+ <th style="line-height: 16px;">Firefox Mobile (Gecko)</th>
+ <th style="line-height: 16px;">Firefox OS</th>
+ <th style="line-height: 16px;">IE Mobile</th>
+ <th style="line-height: 16px;">Opera Mobile</th>
+ <th style="line-height: 16px;">Safari Mobile</th>
+ <th style="line-height: 16px;">Chrome for Android</th>
+ </tr>
+ <tr>
+ <td>Bluetooth 'v2' support: <code>getAdapters()</code>, <code>onattributechange</code>, <code>onadapterremoved</code></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>2.1</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ <tr>
+ <td>Bluetooth initial support: <code>getDefaultAdapter(), onenabled</code>, <code>ondisabled</code>, <code>onadapteradded</code></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>1.0.1</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p> </p>
+
+<h2 id="参考">参考</h2>
+
+<p> </p>
+
+<p><a href="/docs/Web/API/Web_Bluetooth_API/Using_the_Web_Bluetooth_API">Using the Web Bluetooth API</a></p>
diff --git a/files/ja/archive/b2g_os/api/bluetoothmanager/isconnected/index.html b/files/ja/archive/b2g_os/api/bluetoothmanager/isconnected/index.html
new file mode 100644
index 0000000000..1773376bb1
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/bluetoothmanager/isconnected/index.html
@@ -0,0 +1,55 @@
+---
+title: BluetoothManager.isConnected()
+slug: Archive/B2G_OS/API/BluetoothManager/isConnected
+tags:
+ - API
+ - Firefox OS
+ - Method
+ - Non Standard
+ - Reference
+ - Web Bluetooth
+ - WebAPI
+translation_of: Archive/B2G_OS/API/BluetoothManager/isConnected
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Web/API/Web_Bluetooth_API">Web Bluetooth API</a></strong></li><li><strong><a href="/ja/docs/Web/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>Bluetooth API に関連するページ</summary><ol><li><a href="/ja/docs/Web/API/BluetoothAdvertisingData"><code>BluetoothAdvertisingData</code></a></li><li><a href="/ja/docs/Web/API/BluetoothDevice"><code>BluetoothDevice</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTCharacteristic"><code>BluetoothGATTCharacteristic</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTDescriptor"><code>BluetoothGATTDescriptor</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTRemoteServer"><code>BluetoothGATTRemoteServer</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は現在 W3C の標準化のプロセスに乗っていませんが、Firefox OS プラットフォームではサポートされています。将来は動作が変わるかもしれませんし、他のブラウザーで広くサポートされているわけでもありませんが、Firefox OS アプリ専用のコードで使うには適しています。</p>
+ </div><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<h2 id="概要">概要</h2>
+
+<p><code>isConnected</code> メソッドは <a href="https://www.bluetooth.com/specifications/assigned-numbers/service-discovery">Bluetooth profile</a> を持つデバイスが接続されているかをチェックするのに使用されます。</p>
+
+<p>このメソッドは デバイスが <a href="/ja/docs/Web/API/BluetoothAdapter/connect" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter.connect()</code></a> メソッドに第2引数を指定せずに接続された場合に役に立ちます。なぜなら Bluetooth プロファイルはプラットフォームに依存するため、時としてBluetooth プロファイルが利用可能かどうかをチェックする必要があるためです。</p>
+
+<h2 id="構文">構文</h2>
+
+<pre>var isConnected = navigator.mozBluetooth.isConnected(profile);</pre>
+
+<h3 id="引数">引数</h3>
+
+<dl>
+ <dt><code>profile</code></dt>
+ <dd><a href="https://www.bluetooth.com/specifications/assigned-numbers/service-discovery">Bluetooth profile</a> に記載された数値</dd>
+</dl>
+
+<h3 id="返値">返値</h3>
+
+<p>bool値</p>
+
+<h2 id="Specification" name="Specification">仕様</h2>
+
+<p>正式な仕様の一部ではありません。<a href="http://www.w3.org/2012/sysapps/">W3C's System Applications Working Group</a> で協議される必要があります。</p>
+
+<h2 id="参考">参考</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/BluetoothManager_(Firefox_OS)" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager_(Firefox_OS)</code></a></li>
+ <li><a href="/docs/WebAPI/WebBluetooth">Web Bluetooth</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/bluetoothmanager/onadapteradded/index.html b/files/ja/archive/b2g_os/api/bluetoothmanager/onadapteradded/index.html
new file mode 100644
index 0000000000..6459c14b55
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/bluetoothmanager/onadapteradded/index.html
@@ -0,0 +1,44 @@
+---
+title: BluetoothManager.onadapteradded
+slug: Archive/B2G_OS/API/BluetoothManager/onadapteradded
+tags:
+ - API
+ - Firefox OS
+ - Non Standard
+ - Property
+ - Reference
+ - Web Bluetooth
+ - WebAPI
+translation_of: Archive/B2G_OS/API/BluetoothManager/onadapteradded
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Web/API/Web_Bluetooth_API">Web Bluetooth API</a></strong></li><li><strong><a href="/ja/docs/Web/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>Bluetooth API に関連するページ</summary><ol><li><a href="/ja/docs/Web/API/BluetoothAdvertisingData"><code>BluetoothAdvertisingData</code></a></li><li><a href="/ja/docs/Web/API/BluetoothDevice"><code>BluetoothDevice</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTCharacteristic"><code>BluetoothGATTCharacteristic</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTDescriptor"><code>BluetoothGATTDescriptor</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTRemoteServer"><code>BluetoothGATTRemoteServer</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は現在 W3C の標準化のプロセスに乗っていませんが、Firefox OS プラットフォームではサポートされています。将来は動作が変わるかもしれませんし、他のブラウザーで広くサポートされているわけでもありませんが、Firefox OS アプリ専用のコードで使うには適しています。</p>
+ </div><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<h2 id="Summary" name="Summary">概要</h2>
+
+<p><code><a href="/ja/docs/Web/Reference/Events/adapteradded" title="/ja/docs/Web/Reference/Events/adapteradded">adapteradded</a></code> イベントを受け取るためのイベントリスナを指定します。このイベントは Bluetooth アダプタがデバイス上で有効になった際に発生します。このイベントが発生すると <a href="/ja/docs/Web/API/BluetoothManager/getDefaultAdapter" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager.getDefaultAdapter()</code></a> メソッドは直近で有効になったアダプタにアクセスすることが可能になります。</p>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox">navigator.mozBluetooth.onadapteradded = funcRef</pre>
+
+<p><code><em>funcRef</em></code> は <code><a href="/ja/docs/Web/Reference/Events/adapteradded" title="/ja/docs/Web/Reference/Events/adapteradded">adapteradded</a></code> イベントが発生した際に呼び出される関数です。</p>
+
+<h2 id="Specification" name="Specification">仕様</h2>
+
+<p>正式な仕様の一部ではありません。<a href="http://www.w3.org/2012/sysapps/">W3C's System Applications Working Group</a> で協議される必要があります。</p>
+
+<h2 id="参考">参考</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/BluetoothManager_(Firefox_OS)" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager_(Firefox_OS)</code></a></li>
+ <li><a href="/docs/WebAPI/WebBluetooth">Web Bluetooth</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/bluetoothmanager/ondisabled/index.html b/files/ja/archive/b2g_os/api/bluetoothmanager/ondisabled/index.html
new file mode 100644
index 0000000000..e7e7306738
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/bluetoothmanager/ondisabled/index.html
@@ -0,0 +1,45 @@
+---
+title: BluetoothManager.ondisabled
+slug: Archive/B2G_OS/API/BluetoothManager/ondisabled
+tags:
+ - API
+ - Firefox OS
+ - Non Standard
+ - Property
+ - Reference
+ - Web Bluetooth
+ - WebAPI
+translation_of: Archive/B2G_OS/API/BluetoothManager/ondisabled
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Web/API/Web_Bluetooth_API">Web Bluetooth API</a></strong></li><li><strong><a href="/ja/docs/Web/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>Bluetooth API に関連するページ</summary><ol><li><a href="/ja/docs/Web/API/BluetoothAdvertisingData"><code>BluetoothAdvertisingData</code></a></li><li><a href="/ja/docs/Web/API/BluetoothDevice"><code>BluetoothDevice</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTCharacteristic"><code>BluetoothGATTCharacteristic</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTDescriptor"><code>BluetoothGATTDescriptor</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTRemoteServer"><code>BluetoothGATTRemoteServer</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は現在 W3C の標準化のプロセスに乗っていませんが、Firefox OS プラットフォームではサポートされています。将来は動作が変わるかもしれませんし、他のブラウザーで広くサポートされているわけでもありませんが、Firefox OS アプリ専用のコードで使うには適しています。</p>
+ </div><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<h2 id="Summary" name="Summary">概要</h2>
+
+<p><code><a href="/ja/docs/Web/Reference/Events/disabled" title="/ja/docs/Web/Reference/Events/disabled">disabled</a></code> イベントを受け取るためのイベントリスナを指定します。このイベントはデバイス上でBluetoothが無効化された際に発生します。</p>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox">navigator.mozBluetooth.ondisabled = funcRef</pre>
+
+<p><code><em>funcRef</em></code> は <code><a href="/ja/docs/Web/Reference/Events/disabled" title="/ja/docs/Web/Reference/Events/disabled">disabled</a></code> イベントが発生した際に呼び出される関数です。</p>
+
+<h2 id="Specification" name="Specification">仕様</h2>
+
+<p>正式な仕様の一部ではありません。<a href="http://www.w3.org/2012/sysapps/">W3C's System Applications Working Group</a> で協議される必要があります。</p>
+
+<h2 id="参考">参考</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/BluetoothManager_(Firefox_OS)" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager_(Firefox_OS)</code></a></li>
+ <li><a href="/docs/WebAPI/WebBluetooth">Web Bluetooth</a></li>
+ <li>The <a href="/docs/WebAPI/Settings" title="/en-US/docs/WebAPI/Settings">Settings API</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/bluetoothmanager/onenabled/index.html b/files/ja/archive/b2g_os/api/bluetoothmanager/onenabled/index.html
new file mode 100644
index 0000000000..ce4bc4e086
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/bluetoothmanager/onenabled/index.html
@@ -0,0 +1,45 @@
+---
+title: BluetoothManager.onenabled
+slug: Archive/B2G_OS/API/BluetoothManager/onenabled
+tags:
+ - API
+ - Firefox OS
+ - Non Standard
+ - Property
+ - Reference
+ - Web Bluetooth
+ - WebAPI
+translation_of: Archive/B2G_OS/API/BluetoothManager/onenabled
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Web/API/Web_Bluetooth_API">Web Bluetooth API</a></strong></li><li><strong><a href="/ja/docs/Web/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>Bluetooth API に関連するページ</summary><ol><li><a href="/ja/docs/Web/API/BluetoothAdvertisingData"><code>BluetoothAdvertisingData</code></a></li><li><a href="/ja/docs/Web/API/BluetoothDevice"><code>BluetoothDevice</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTCharacteristic"><code>BluetoothGATTCharacteristic</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTDescriptor"><code>BluetoothGATTDescriptor</code></a></li><li><a href="/ja/docs/Web/API/BluetoothGATTRemoteServer"><code>BluetoothGATTRemoteServer</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は現在 W3C の標準化のプロセスに乗っていませんが、Firefox OS プラットフォームではサポートされています。将来は動作が変わるかもしれませんし、他のブラウザーで広くサポートされているわけでもありませんが、Firefox OS アプリ専用のコードで使うには適しています。</p>
+ </div><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<h2 id="Summary" name="Summary">概要</h2>
+
+<p><code><a href="/ja/docs/Web/Reference/Events/enabled" title="/ja/docs/Web/Reference/Events/enabled">enabled</a></code> イベントを受け取るためのイベントリスナを指定します。このイベントはデバイス上でBluetoothが有効になった際に発生します。</p>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="syntaxbox">navigator.mozBluetooth.onenabled = funcRef</pre>
+
+<p><code><em>funcRef</em></code> は <code><a href="/ja/docs/Web/Reference/Events/enabled" title="/ja/docs/Web/Reference/Events/enabled">enabled</a></code> イベントが発生した際に呼び出される関数です。</p>
+
+<h2 id="Specification" name="Specification">仕様</h2>
+
+<p>正式な仕様の一部ではありません。<a href="http://www.w3.org/2012/sysapps/">W3C's System Applications Working Group</a> で協議される必要があります。</p>
+
+<h2 id="参考">参考</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/BluetoothManager_(Firefox_OS)" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothManager_(Firefox_OS)</code></a></li>
+ <li><a href="/docs/WebAPI/WebBluetooth">Web Bluetooth</a></li>
+ <li>The <a href="/docs/WebAPI/Settings" title="/en-US/docs/WebAPI/Settings">Settings API</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/callevent/index.html b/files/ja/archive/b2g_os/api/callevent/index.html
new file mode 100644
index 0000000000..45aec0f7bc
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/callevent/index.html
@@ -0,0 +1,134 @@
+---
+title: CallEvent
+slug: Archive/B2G_OS/API/CallEvent
+tags:
+ - API
+ - B2G
+ - CallEvent
+ - Event
+ - Firefox OS
+ - Interface
+ - Mobile
+ - Non-standard
+ - Reference
+ - Telephony
+ - events
+translation_of: Archive/B2G_OS/API/CallEvent
+---
+<div><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Web_Telephony_API">Web Telephony API</a></strong></li><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>イベント</summary><ol><li><a href="/ja/docs/Web/Events/incoming"><code>incoming</code></a></li></ol></details></li><li class="toggle"><details open><summary>Web Telephony API に関連するページ</summary><ol><li><a href="/ja/docs/Mozilla/Firefox_OS/API/CallEvent"><code>CallEvent</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/CallGroup"><code>CallGroup</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MMICall"><code>MMICall</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/Telephony"><code>Telephony</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/TelephonyCall"><code>TelephonyCall</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/TelephonyCallGroup"><code>TelephonyCallGroup</code></a></li></ol></details></li></ol></section></div>
+
+<div><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div></div>
+
+<p><a href="/docs/Web/API/Web_Telephony_API">Web Telephony API</a> の <code>CallEvent</code> インターフェイスは、電話の通話に関連するイベントを表します。</p>
+
+<h2 id="Properties" name="Properties">プロパティ</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/CallEvent/call" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CallEvent.call</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>イベント発生元からの通話を表す <a href="/ja/docs/Web/API/TelephonyCall" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall</code></a> オブジェクト。</dd>
+</dl>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<pre class="brush: js">// Telephony object
+var tel = navigator.mozTelephony;
+
+// Receive a call
+tel.onincoming = function(e) {
+ var incomingCall = e.call;
+
+ // Answer the call
+ incomingCall.answer();
+};</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a class="external" href="https://wiki.mozilla.org/WebAPI/WebTelephony" hreflang="en" lang="en" title="Web Telephonyの仕様書">Web Telephony</a></td>
+ <td><span class="spec-Draft">ドラフト</span></td>
+ <td>Draft</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>
+
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>12.0 (12.0)</td>
+ <td>1.0.1</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/docs/Web/Guide/API/Telephony/Using_the_Web_Telephony_API">Web Telephony API の使用</a></li>
+ <li><a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a></li>
+ <li><a href="/ja/docs/Web/API/CallEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CallEvent</code></a></li>
+ <li><a href="/ja/docs/Web/API/Navigator/mozTelephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Navigator.mozTelephony</code></a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/domapplication/index.html b/files/ja/archive/b2g_os/api/domapplication/index.html
new file mode 100644
index 0000000000..c14b8d8804
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/domapplication/index.html
@@ -0,0 +1,103 @@
+---
+title: App
+slug: Archive/B2G_OS/API/DOMApplication
+tags:
+ - Apps
+ - Apps API
+ - Manifest
+ - Methods
+ - Non-standard
+translation_of: Archive/B2G_OS/API/DOMApplication
+---
+<div>
+ <div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。</p>
+ </div></div>
+<p>Open Web Apps の JavaScript API において、<code>App</code> オブジェクトは、ユーザのアプリディレクトリにインストールされている、あるいはインストールできるアプリを表す JavaScript オブジェクトです。</p>
+<h2 id="Properties" name="Properties">プロパティ</h2>
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">名前</th>
+ <th scope="col">意味</th>
+ <th scope="col">型</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>manifest</code></td>
+ <td>アプリの <a href="/ja/docs/Web/Apps/Manifest">マニフェスト</a> の現在保存されているインスタンス。</td>
+ <td><code>object</code></td>
+ </tr>
+ <tr>
+ <td><code>manifestURL</code></td>
+ <td>マニフェストが見つかった場所。</td>
+ <td><code>string</code></td>
+ </tr>
+ <tr>
+ <td><code>origin</code></td>
+ <td>アプリの生成元 (プロトコル、ホスト、オプションでポート番号)。例えば http://example.com</td>
+ <td><code>string</code></td>
+ </tr>
+ <tr>
+ <td><code>installOrigin</code></td>
+ <td>アプリのインストールを実行したサイトの生成元。</td>
+ <td><code>string</code></td>
+ </tr>
+ <tr>
+ <td><code>installTime</code></td>
+ <td>アプリがインストールされた時刻。これは <code>Date().getTime()</code> を使って生成され、1970 年 1 月 1 日午前 0 時からのミリ秒数で表されます。</td>
+ <td><code>integer</code></td>
+ </tr>
+ <tr>
+ <td><code>receipts</code></td>
+ <td>1 つあるいは複数のレシートの配列を含んだオブジェクト。各レシートは文字列です。レシートがない場合、これは <code>null</code> となります。</td>
+ <td><code>object</code> または <code>null</code></td>
+ </tr>
+ </tbody>
+</table>
+<h2 id="Methods" name="Methods">メソッド</h2>
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">メソッド</th>
+ <th scope="col">意味</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>launch()</code></td>
+ <td>アプリを起動します。値を返しません。</td>
+ </tr>
+ <tr>
+ <td><code>checkForUpdate()</code></td>
+ <td>
+ <p>アプリが更新されたかどうかを確認します。<a href="/ja/docs/Web/API/DOMRequest"><code>DOMRequest</code></a> オブジェクトを返します。</p>
+ <p><a href="/ja/docs/Web/Apps/Packaged_apps">パッケージ型アプリ</a> については、更新を確認し、必要なら <code>downloadavailable</code> フラグを立てます。</p>
+ <p>ホスト型アプリについては、アプリマニフェストとアプリケーションキャッシュ上で更新を確認し、必要なら更新を行います。</p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<h2 id="Example_App_object" name="Example_App_object">App オブジェクトの例</h2>
+<pre class="brush:js">{
+ manifest: {
+ name: "Add-on Builder",
+ default_locale: "en",
+ installs_allowed_from: [
+ "https://apps-preview-dev.example.com/",
+ "https://apps-preview.example.com/"
+ ],
+ description: "Add-on Builder makes it easy to write, build and test Firefox extensions using common web technologies.",
+ version: "0.9.16.1",
+ developer: {
+ url: "https://builder.addons.mozilla.org/",
+ name: "Mozilla Flightdeck Team"
+ }
+ },
+ origin: "https://builder-addons-dev.example.com",
+ installTime: 1321986882773,
+ installOrigin: "https://apps-preview-dev.example.com",
+ receipts: ["h0dHBzOi8v <em>(most of receipt removed here)</em> Tg2ODtkUp"]
+}</pre>
diff --git a/files/ja/archive/b2g_os/api/index.html b/files/ja/archive/b2g_os/api/index.html
new file mode 100644
index 0000000000..472f075af6
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/index.html
@@ -0,0 +1,831 @@
+---
+title: B2G OS APIs
+slug: Archive/B2G_OS/API
+tags:
+ - API
+ - B2G API
+ - b2g os api's
+translation_of: Archive/B2G_OS/API
+---
+<p id="B2G_OS_が利用する標準_Web_API">B2G OS API一覧
+
+</p><p></p><div class="index">
+<span>A</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ANGLE_instanced_arrays" title="The ANGLE_instanced_arrays extension is part of the WebGL API and allows to draw the same object, or groups of similar objects multiple times, if they share the same vertex data, primitive count and type."><code>ANGLE_instanced_arrays</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AbortController" title="The AbortController interface represents a controller object that allows you to abort one or more DOM requests as and when desired."><code>AbortController</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AbortSignal" title="The AbortSignal interface represents a signal object that allows you to communicate with a DOM request (such as a Fetch) and abort it if required via an AbortController object."><code>AbortSignal</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AbstractWorker" title="The AbstractWorker interface of the Web Workers API abstracts properties and methods common to all kind of workers, being Worker or SharedWorker."><code>AbstractWorker</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AmbientLightSensor" title="The AmbientLightSensor interface of the the Ambient Light Sensor API returns an interface for accessing AmbientLightSensorReading."><code>AmbientLightSensor</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AmbientLightSensorReading" title="The AmbientLightSensorReading interface of the the Ambient Light Sensor API returns an interface for reading the current light level."><code>AmbientLightSensorReading</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AnalyserNode" title="The AnalyserNode interface represents a node able to provide real-time frequency and time-domain analysis information. It is an AudioNode that passes the audio stream unchanged from the input to the output, but allows you to take the generated data, process it, and create audio visualizations."><code>AnalyserNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Animation" title="The Animation interface of the Web Animations API represents a single animation player and provides playback controls and a timeline for an animation node or source."><code>Animation</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AnimationEffectReadOnly" title="The AnimationEffectReadOnly interface of the Web Animations API defines current and future animation effects like KeyframeEffect, which can be passed to Animation objects for playing, and KeyframeEffectReadOnly (which is used by CSS Animations and Transitions)."><code>AnimationEffectReadOnly</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AnimationEffectTiming" title="The AnimationEffectTiming interface of the Web Animations API is comprised of timing properties. It is returned by the timing attribute of a KeyframeEffect."><code>AnimationEffectTiming</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AnimationEffectTimingProperties" title="The AnimationEffectTimingProperties dictionary, part of the Web Animations API, is used by Element.animate(), KeyframeEffectReadOnly(), and KeyframeEffect() to describe timing properties for animation effects. These properties are all optional, although without setting a duration the animation will not play."><code>AnimationEffectTimingProperties</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AnimationEffectTimingReadOnly" title="The AnimationEffectTimingReadOnly interface of the Web Animations API is comprised of timing properties."><code>AnimationEffectTimingReadOnly</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AnimationEvent" title="The AnimationEvent interface represents events providing information related to animations."><code>AnimationEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AnimationPlaybackEvent" title="The AnimationPlaybackEvent interface of the Web Animations API represents animation events."><code>AnimationPlaybackEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AnimationTimeline" title="The AnimationTimeline interface of the Web Animations API represents the timeline of an animation. This interface exists to define timeline features (inherited by DocumentTimeline and future timeline types) and is not itself directly used by developers. Anywhere you see AnimationTimeline, you should use DocumentTimeline or any other timeline type instead."><code>AnimationTimeline</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ArrayBufferView" title="ArrayBufferView is a helper type representing any of the following JavaScript TypedArray types:"><code>ArrayBufferView</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Attr" title="This type represents a DOM element's attribute as an object. In most DOM methods, you will probably directly retrieve the attribute as a string (e.g., Element.getAttribute(), but certain functions (e.g., Element.getAttributeNode()) or means of iterating give Attr types."><code>Attr</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioBuffer" title="Objects of these types are designed to hold small audio snippets, typically less than 45 s. For longer sounds, objects implementing the MediaElementAudioSourceNode are more suitable. The buffer contains data in the following format:  non-interleaved IEEE754 32-bit linear PCM with a nominal range between -1 and +1, that is, 32bits floating point buffer, with each samples between -1.0 and 1.0. If the AudioBuffer has multiple channels, they are stored in separate buffer."><code>AudioBuffer</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioBufferSourceNode" title="The AudioBufferSourceNode interface is an AudioScheduledSourceNode which represents an audio source consisting of in-memory audio data, stored in an AudioBuffer. It's especially useful for playing back audio which has particularly stringent timing accuracy requirements, such as for sounds that must match a specific rhythm and can be kept in memory rather than being played from disk or the network."><code>AudioBufferSourceNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioContext" title="Also inherits properties from its parent interface, BaseAudioContext."><code>AudioContext</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioDestinationNode" title="AudioDestinationNode has no output (as it is the output, no more AudioNode can be linked after it in the audio graph) and one input. The number of channels in the input must be between 0 and the maxChannelCount value or an exception is raised."><code>AudioDestinationNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioListener" title="It is important to note that there is only one listener per context and that it isn't an AudioNode."><code>AudioListener</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioNode" title="The AudioNode interface is a generic interface for representing an audio processing module like an audio source (e.g. an HTML &lt;audio> or &lt;video> element, an OscillatorNode, etc.), the audio destination, intermediate processing module (e.g. a filter like BiquadFilterNode or ConvolverNode), or volume control (like GainNode)."><code>AudioNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioNodeOptions" title="The AudioNodeOptions dictionary of the Web Audio API specifies options that can be used when creating new AudioNode objects."><code>AudioNodeOptions</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioParam" title="There are two kinds of AudioParam, a-rate and k-rate parameters:"><code>AudioParam</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioProcessingEvent" title="The Web Audio API AudioProcessingEvent represents events that occur when a ScriptProcessorNode input buffer is ready to be processed."><code>AudioProcessingEvent</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/AudioScheduledSourceNode" title="The AudioScheduledSourceNode interface—part of the Web Audio API—is a parent interface for several types of audio source node interfaces which share the ability to be started and stopped, optionally at specified times. Specifically, this interface defines the start() and stop() methods, as well as the onended event handler."><code>AudioScheduledSourceNode</code></a></span></span></li>
+</ul>
+<span>B</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BaseAudioContext" title="A BaseAudioContext can be a target of events, therefore it implements the EventTarget interface."><code>BaseAudioContext</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BasicCardRequest" title="The BasicCardRequest dictionary is a JavaScript object-structure that can be used in the Payment Request API. The properties of BasicCardRequest are defined in the Basic Card Payment spec)."><code>BasicCardRequest</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BasicCardResponse" title="The BasicCardResponse dictionary (related to the Payment Request API, although defined in the Basic Card Payment spec) defines an object structure for payment response details such as the number/expiry date of the card used to make the payment, and the billing address."><code>BasicCardResponse</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BatteryManager" title="The BatteryManager interface provides ways to get information about the system's battery charge level."><code>BatteryManager</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BeforeInstallPromptEvent" title='The BeforeInstallPromptEvent is fired at the Window.onbeforeinstallprompt handler before a user is prompted to "install" a web site to a home screen on mobile.'><code>BeforeInstallPromptEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BeforeUnloadEvent" title="The beforeunload event is fired when the window, the document and its resources are about to be unloaded."><code>BeforeUnloadEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BiquadFilterNode" title="The BiquadFilterNode interface represents a simple low-order filter, and is created using the AudioContext.createBiquadFilter() method. It is an AudioNode that can represent different kinds of filters, tone control devices, and graphic equalizers."><code>BiquadFilterNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Blob" title="A Blob object represents a file-like object of immutable, raw data. Blobs represent data that isn't necessarily in a JavaScript-native format. The File interface is based on Blob, inheriting blob functionality and expanding it to support files on the user's system."><code>Blob</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BlobBuilder" title="The BlobBuilder interface provides an easy way to construct Blob objects. Just create a BlobBuilder and append chunks of data to it by calling the append() method. When you're done building your blob, call getBlob() to retrieve a Blob containing the data you sent into the blob builder."><code>BlobBuilder</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BlobEvent" title="The BlobEvent interface represents events associated with a Blob. These blobs are typically, but not necessarily,  associated with media content."><code>BlobEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Bluetooth" title="The Bluetooth interface of the Web Bluetooth API returns a Promise to a BluetoothDevice object with the specified options."><code>Bluetooth</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BluetoothAdvertisingData" title="The BluetoothDevice interface of the Web Bluetooth API provides advertising data about a particular Bluetooth device."><code>BluetoothAdvertisingData</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BluetoothCharacteristicProperties" title="The BluetoothCharacteristicProperties interface of the the Web Bluetooth API provides an object provides propertieds of a particular BluetoothRemoteGATTCharacteristic."><code>BluetoothCharacteristicProperties</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BluetoothRemoteGATTCharacteristic" title="The BluetoothRemoteGattCharacteristic interface of the Web Bluetooth API represents a GATT Characteristic, which is a basic data element that provides further information about a peripheral’s service."><code>BluetoothRemoteGATTCharacteristic</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BluetoothRemoteGATTDescriptor" title="The BluetoothRemoteGATTDescriptor  interface of the Web Bluetooth API provides a GATT Descriptor, which provides further information about a characteristic’s value."><code>BluetoothRemoteGATTDescriptor</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BluetoothRemoteGATTServer" title="The BluetoothRemoteGATTServer interface of the Web Bluetooth API represents a GATT Server on a remote device."><code>BluetoothRemoteGATTServer</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BluetoothStatusChangedEvent" title="The BluetoothStatusChangedEvent API provides access to information regarding any change to the status of a Bluetooth device."><code>BluetoothStatusChangedEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Body" title="The Body mixin of the Fetch API represents the body of the response/request, allowing you to declare what its content type is and how it should be handled."><code>Body</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BroadcastChannel" title="The BroadcastChannel interface represents a named channel that any browsing context of a given origin can subscribe to. It allows communication between different documents (in different windows, tabs, frames or iframes) of the same origin. Messages are broadcasted via a message event fired at all BroadcastChannel objects listening to the channel."><code>BroadcastChannel</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BudgetService" title="The BudgetService interface of the Web Budget API provides a programmatic interface to the user agent’s budget service. It is available in both document and worker environments."><code>BudgetService</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BudgetState" title="The BudgetState interface of the the Web Budget API provides the amount of the user agent's processing budget at a specific point in time."><code>BudgetState</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/BufferSource" title="BufferSource is a typedef used to represent objects that are either themselves an ArrayBuffer, or which are a TypedArray providing an ArrayBufferView."><code>BufferSource</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ByteLengthQueuingStrategy" title="The ByteLengthQueuingStrategy interface of the the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams."><code>ByteLengthQueuingStrategy</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ByteString" title="ByteString is a UTF-8 String that corresponds to the set of all possible sequences of bytes. ByteString maps to a String when returned in JavaScript; generally, it's only used when interfacing with protocols that use bytes and strings interchangably, such as HTTP."><code>ByteString</code></a></span></span></li>
+</ul>
+<span>C</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CDATASection" title="The CDATASection interface represents a CDATA section that can be used within XML to include extended portions of unescaped text, such that the symbols &lt; and &amp; do not need escaping as they normally do within XML when used as text."><code>CDATASection</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSS" title="The CSS interface holds useful CSS-related methods. No object with this interface are implemented: it contains only static methods and therefore is a utilitarian interface."><code>CSS</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSConditionRule" title="An object implementing the CSSConditionRule interface represents a single condition CSS at-rule, which consists of a condition and a statement block. It is a child of CSSGroupingRule."><code>CSSConditionRule</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSCounterStyleRule" title="The CSSCounterStyleRule interface represents an @counter-style at-rule."><code>CSSCounterStyleRule</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSGroupingRule" title="An object implementing the CSSGroupingRule interface represents any CSS at-rule that contains other rules nested within it."><code>CSSGroupingRule</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSKeyframeRule" title="The CSSKeyframeRule interface describes an object representing a set of style for a given keyframe. It corresponds to the contains of a single keyframe of a @keyframes at-rule. It implements the CSSRule interface with a type value of 8 (CSSRule.KEYFRAME_RULE)."><code>CSSKeyframeRule</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSKeyframesRule" title="The CSSKeyframesRule interface describes an object representing a complete set of keyframes for a CSS animation. It corresponds to the contains of a whole @keyframes at-rule. It implements the CSSRule interface with a type value of 7 (CSSRule.KEYFRAMES_RULE)."><code>CSSKeyframesRule</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSMatrix" title="A CSSMatrix represents a homogeneous 4x4 matrix to which 2D or 3D transforms can be applied. This class was allegedly part of CSS Transitions Module Level 3 at some point, but is not present in the current Working Draft. Use DOMMatrix instead."><code>CSSMatrix</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSMediaRule" title="The CSSMediaRule is an interface representing a single CSS @media rule. It implements the CSSConditionRule interface, and therefore the CSSGroupingRule and the CSSRule interface with a type value of 4 (CSSRule.MEDIA_RULE)."><code>CSSMediaRule</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSNamespaceRule" title="The CSSNamespaceRule interface describes an object representing a single CSS @namespace at-rule. It implements the CSSRule interface, with a type value of 10 (CSSRule.NAMESPACE_RULE)."><code>CSSNamespaceRule</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSOMString" title="CSSOMString is used to denote string data in CSSOM specifications and can refer to either DOMString or USVString. When a specification says CSSOMString, it is left for the browser vendors to choose whether to use DOMString or USVString. While browser implementations that use UTF-8 internally to represent strings in memory can use USVString when the specification says CSSOMString, implementations that already represent strings as 16-bit sequences might choose to use DOMString instead."><code>CSSOMString</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSPageRule" title="CSSPageRule is an interface representing a single CSS @page rule. It implements the CSSRule interface with a type value of 6 (CSSRule.PAGE_RULE)."><code>CSSPageRule</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSPrimitiveValue" title="The CSSPrimitiveValue interface derives from the CSSValue interface and represents the current computed value of a CSS property."><code>CSSPrimitiveValue</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSRule" title="The CSSRule interface represents a single CSS rule. There are several types of rules, listed in the Type constants section below."><code>CSSRule</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSRuleList" title="A CSSRuleList is an (indirect-modify only) array-like object containing an ordered collection of CSSRule objects."><code>CSSRuleList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSStyleDeclaration" title="CSSStyleDeclaration represents a collection of CSS property-value pairs. It is used in a few APIs:"><code>CSSStyleDeclaration</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSStyleRule" title="CSSStyleRule represents a single CSS style rule. It implements the CSSRule interface with a type value of 1 (CSSRule.STYLE_RULE)."><code>CSSStyleRule</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSStyleSheet" title="The CSSStyleSheet interface represents a single CSS style sheet. It inherits properties and methods from its parent, StyleSheet."><code>CSSStyleSheet</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSSupportsRule" title="The CSSSupportsRule interface describes an object representing a single CSS @supports at-rule. It implements the CSSConditionRule interface, and therefore the CSSRule and CSSGroupingRule interfaces with a type value of 12 (CSSRule.SUPPORTS_RULE)."><code>CSSSupportsRule</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSValue" title="The CSSValue interface represents the current computed value of a CSS property."><code>CSSValue</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CSSValueList" title="The CSSValueList interface derives from the CSSValue interface and provides the abstraction of an ordered collection of CSS values."><code>CSSValueList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Cache" title="The Cache interface provides a storage mechanism for Request / Response object pairs that are cached, for example as part of the ServiceWorker life cycle. Note that the Cache interface is exposed to windowed scopes as well as workers. You don't have to use it in conjunction with service workers, even though it is defined in the service worker spec."><code>Cache</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CacheStorage" title="The CacheStorage interface represents the storage for Cache objects. It provides a master directory of all the named caches that a ServiceWorker, other type of worker or window scope can access (you don't have to use it with service workers, even though that is the spec that defines it) and maintains a mapping of string names to corresponding Cache objects."><code>CacheStorage</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CanvasCaptureMediaStream" title="The CanvasCaptureMediaStream interface represents a MediaStream capturing in real-time the surface of an HTMLCanvasElement."><code>CanvasCaptureMediaStream</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CanvasGradient" title="The CanvasGradient interface represents an opaque object describing a gradient. It is returned by the methods CanvasRenderingContext2D.createLinearGradient() or CanvasRenderingContext2D.createRadialGradient()."><code>CanvasGradient</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CanvasImageSource" title="CanvasImageSource is a helper type representing any objects of one of the following types:"><code>CanvasImageSource</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CanvasPattern" title="The CanvasPattern interface represents an opaque object describing a pattern, based on an image, a canvas or a video, created by the CanvasRenderingContext2D.createPattern() method."><code>CanvasPattern</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CanvasRenderingContext2D" title='To get an object of this interface, call getContext() on a &amp;amp;lt;canvas> element, supplying "2d" as the argument:'><code>CanvasRenderingContext2D</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CaretPosition" title="The CaretPosition interface represents the caret postion, an indicator for the text insertion point. You can get a CaretPosition using the document.caretPositionFromPoint method."><code>CaretPosition</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ChannelMergerNode" title=""><code>ChannelMergerNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ChannelSplitterNode" title=""><code>ChannelSplitterNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CharacterData" title="The CharacterData abstract interface represents a Node object that contains characters. This is an abstract interface, meaning there aren't any object of type CharacterData: it is implemented by other interfaces, like Text, Comment, or ProcessingInstruction which aren't abstract."><code>CharacterData</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ChildNode" title="The ChildNode interface contains methods that are particular to Node objects that can have a parent."><code>ChildNode</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ChromeWorker" title="If you're developing privileged code, and would like to create a worker that can use js-ctypes to perform calls to native code, you can do so by using ChromeWorker instead of the standard Worker object. It works exactly like a standard Worker, except that it has access to js-ctypes via a global ctypes object available in the global scope of the worker. Examples of ChromeWorker's using js-ctypes are availabe on Github and are linked to from the See Also section below. To use a postMessage with callback version of ChromeWorker that features promises, see PromiseWorker."><code>ChromeWorker</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Client" title="The Client interface represents an executable context such as a Worker, or a SharedWorker. Window clients are represented by the more-specific WindowClient. You can get Client/WindowClient objects from methods such as Clients.matchAll() and Clients.get()."><code>Client</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Clients" title="The Clients interface provides access to Client objects. Access it via self.clients within a service worker."><code>Clients</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ClipboardEvent" title="The ClipboardEvent interface represents events providing information related to modification of the clipboard, that is cut, copy, and paste events."><code>ClipboardEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CloseEvent" title="A CloseEvent is sent to clients using WebSockets when the connection is closed. This is delivered to the listener indicated by the WebSocket object's onclose attribute."><code>CloseEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Comment" title="The Comment interface represents textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view. Comments are represented in HTML and XML as content between '&lt;!--' and '-->'. In XML, the character sequence '--' cannot be used within a comment."><code>Comment</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CompositionEvent" title="The DOM CompositionEvent represents events that occur due to the user indirectly entering text."><code>CompositionEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Console" title="The Console object provides access to the browser's debugging console (e.g., the Web Console in Firefox). The specifics of how it works vary from browser to browser, but there is a de facto set of features that are typically provided."><code>Console</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ConstantSourceNode" title="The ConstantSourceNode interface—part of the Web Audio API—represents an audio source (based upon AudioScheduledSourceNode) whose output is single unchanging value. This makes it useful for cases in which you need a constant value coming in from an audio source. in addition, it can be used like a constructible AudioParam by automating the value of its offset or by connecting another node to it; see Controlling multiple parameters with ConstantSourceNode."><code>ConstantSourceNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ConstrainBoolean" title="The ConstrainBoolean dictionary is used to specify a constraint for a property whose value is a Boolean value. You can specify an exact value which must be matched, an ideal value that should be matched if at all possible, and a fallback value to attempt to match once all more specific constraints have been applied."><code>ConstrainBoolean</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ConstrainDOMString" title="The ConstrainDOMString dictionary is used to specify a constraint for a property whose value is a string. It allows you to specify one or more exact string values from which one must be the parameter's value, or a set of ideal values which should be used if possible. You can also specify a single string (or an array of strings) which the user agent will do its best to match once all more stringent constraints have been applied."><code>ConstrainDOMString</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ConstrainDouble" title="The ConstrainDouble type is used to specify a constraint for a property whose value is a double-precision floating-point number. It extends the DoubleRange dictionary (which provides the ability to specify a permitted range of property values) to also support an exact value and/or an ideal value the property should take on. Additionally, you can specify the property's value as a simple floating-point value, in which case the user agent does its best to match the value once all other more stringent constraints are met."><code>ConstrainDouble</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ConstrainLong" title="The ConstrainLong type is used to specify a constraint for a property whose value is an integral number. It extends the LongRange dictionary (which provides the ability to specify a permitted range of property values) to also support an exact value and/or an ideal value the property should take on. In addition, you can specify the value as a simple long integer value, in which case the user agent does its best to match the value once all other more stringent constraints are met."><code>ConstrainLong</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ConvolverNode" title="The ConvolverNode interface is an AudioNode that performs a Linear Convolution on a given AudioBuffer, often used to achieve a reverb effect. A ConvolverNode always has exactly one input and one output."><code>ConvolverNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Coordinates" title="The Coordinates interface represents the position and altitude of the device on Earth, as well as the accuracy with which these properties are calculated."><code>Coordinates</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CountQueuingStrategy" title="The CountQueuingStrategy interface of the the Streams API provides a built-in byte length queuing strategy that can be used when constructing streams."><code>CountQueuingStrategy</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Credential" title="The Credential interface of the the Credential Management API provides information about an entity as a prerequisite to a trust decision."><code>Credential</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CredentialsContainer" title="The CredentialsContainer interface of the the Credential Management API exposes methods to request credentials and notify the user agent when events such as successful sign in or sign out happen. This interface is accessible from Navigator.credentials."><code>CredentialsContainer</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Crypto" title="The Crypto interface represents basic cryptography features available in the current context. It allows access to a cryptographically strong random number generator and to cryptographic primitives."><code>Crypto</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CryptoKey" title="The CryptoKey interface represents a cryptographic key derived from a specific key algorithm."><code>CryptoKey</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CustomElementRegistry" title="The CustomElementRegistry interface provides methods for registering custom elements and querying registered elements. It can be accessed with window.customElements."><code>CustomElementRegistry</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/CustomEvent" title="This interface inherits properties from its parent, Event:"><code>CustomEvent</code></a></span></span></li>
+</ul>
+<span>D</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMConfiguration" title='Pre-defined parameters: "canonical-form", "cdata-sections", "check-character-normalization", "comments", "datatype-normalization", "element-content-whitespace", "entities", "error-handler", "infoset", "namespaces", "namespace-declarations", "normalize-characters","schema-location", "schema-type", "split-cdata-sections", "validate", "validate-if-schema", "well-formed"'><code>DOMConfiguration</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMError" title="The DOMError interface describes an error object that contains an error name."><code>DOMError</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMErrorHandler" title='Set as "error-handler" parameter in DOMConfiguration.setParameter . Implementation may provide a default handler. DOMError.relatedData will contain closest node to where error occurred or contain the Document node if it is unable to be determined. Document mutations from within the error handler result in implementation-dependent behavior. If there are to be multiple errors, the sequence and numbers of the errors passed to the error handler are also implementation dependent. The application using the DOM implementation implements this interface:'><code>DOMErrorHandler</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMException" title="The DOMException interface represents an abnormal event (called an exception) which occurs as a result of calling a method or accessing a property of a web API."><code>DOMException</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMHighResTimeStamp" title="The DOMHighResTimeStamp type is a double and is used to store a time value. The value could be a discrete point in time or the difference in time between two discrete points in time. The unit is milliseconds and should be accurate to 5 µs (microseconds). However, if the browser is unable to provide a time value accurate to 5 microseconds (due, for example, to hardware or software constraints), the browser can represent the value as a time in milliseconds accurate to a millisecond."><code>DOMHighResTimeStamp</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMImplementation" title="The DOMImplementation interface represent an object providing methods which are not dependent on any particular document. Such an object is returned by the Document.implementation property."><code>DOMImplementation</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMImplementationList" title="Returned by DOMImplementationSource.getDOMImplementationList() and DOMImplementationRegistry.getDOMImplementationList() . Can be iterated with 0-based index."><code>DOMImplementationList</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMImplementationRegistry" title="This is a global variable used to get a single DOMImplementation or DOMImplementationList depending on the registered objects with the specified features."><code>DOMImplementationRegistry</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMImplementationSource" title="Can request a particular implementation based on needed features and versions (which can then be used to create a document, etc.). Called during DOMImplementationRegistry.getDOMImplementation() and DOMImplementationRegistry.getDOMImplementationList()."><code>DOMImplementationSource</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMLocator" title="Indicates a location such as where an error occurred. Returned by DOMError.location."><code>DOMLocator</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMMatrix" title="The DOMMatrix interface represents 4x4 matrices, suitable for 2D and 3D operations."><code>DOMMatrix</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMMatrixReadOnly" title="The DOMMatrixReadOnly interface represents 4x4 matrices, suitable for 2D and 3D operations. If this interface defines only read-only matrices, the DOMMatrix interface which inherits from it, add all the properties and the methods to allow to have modifiable matrices."><code>DOMMatrixReadOnly</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMObject" title=""><code>DOMObject</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMParser" title="DOMParser can parse XML or HTML source stored in a string into a DOM Document. DOMParser is specified in DOM Parsing and Serialization."><code>DOMParser</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMPoint" title="A DOMPoint represents a 2D or 3D point in a coordinate system."><code>DOMPoint</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMPointReadOnly" title="Editorial review completed."><code>DOMPointReadOnly</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMRect" title="A DOMRect represents a rectangle."><code>DOMRect</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMRectReadOnly" title="The DOMRectReadOnly interface specifies the standard properties used by DOMRect to define a rectangle."><code>DOMRectReadOnly</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMString" title="DOMString is a UTF-16 String. As JavaScript already uses such strings, DOMString is mapped directly to a String."><code>DOMString</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMStringList" title="A type returned by some APIs which contains a list of DOMString (strings)."><code>DOMStringList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMStringMap" title="Editorial review completed."><code>DOMStringMap</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMTimeStamp" title="The DOMTimeStamp type represents an absolute or relative number of milliseconds, depending on the specification in which it appears."><code>DOMTimeStamp</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMTokenList" title="The DOMTokenList interface represents a set of space-separated tokens. Such a set is returned by Element.classList, HTMLLinkElement.relList, HTMLAnchorElement.relList or HTMLAreaElement.relList. It is indexed beginning with 0 as with JavaScript Array objects. DOMTokenList is always case-sensitive."><code>DOMTokenList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DOMUserData" title="DOMUserData refers to application data. In JavaScript, it maps directly to Object. It is returned or used as an argument by Node.setUserData(), Node.getUserData(), used as the third argument to handle() on UserDataHandler, and is used or returned by various DOMConfiguration methods."><code>DOMUserData</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DataTransfer" title="The DataTransfer object is used to hold the data that is being dragged during a drag and drop operation. It may hold one or more data items, each of one or more data types. For more information about drag and drop, see HTML Drag and Drop API."><code>DataTransfer</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DataTransferItem" title="The DataTransferItem object represents one drag data item. During a drag operation, each drag event has a dataTransfer property which contains a list of drag data items. Each item in the list is a DataTransferItem object."><code>DataTransferItem</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DataTransferItemList" title="The DataTransferItemList object is a list of DataTransferItem objects representing items being dragged. During a drag operation, each DragEvent has a dataTransfer property and that property is a DataTransferItemList."><code>DataTransferItemList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DedicatedWorkerGlobalScope" title="The DedicatedWorkerGlobalScope object (the Worker global scope) is accessible through the self keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the JavaScript Reference. See also: Functions available to workers."><code>DedicatedWorkerGlobalScope</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DelayNode" title=""><code>DelayNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DeviceAcceleration" title="A DeviceAcceleration object provides information about the amount of acceleration the device is experiencing along all three axes."><code>DeviceAcceleration</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DeviceLightEvent" title="The DeviceLightEvent provides web developers with information from photo sensors or similiar detectors about ambient light levels near the device. For example this may be useful to adjust the screen's brightness based on the current ambient light level in order to save energy or provide better readability."><code>DeviceLightEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DeviceMotionEvent" title="The DeviceMotionEvent provides web developers with information about the speed of changes for the device's position and orientation."><code>DeviceMotionEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DeviceOrientationEvent" title="The DeviceOrientationEvent provides web developers with information from the physical orientation of the device running the web page."><code>DeviceOrientationEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DeviceProximityEvent" title="The DeviceProximityEvent interface provides information about the distance of a nearby physical object using the proximity sensor of a device."><code>DeviceProximityEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DeviceRotationRate" title="A DeviceRotationRate object provides information about the rate at which the device is rotating around all three axes."><code>DeviceRotationRate</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DirectoryEntrySync" title="The DirectoryEntrySync interface of the File System API represents a directory in a file system. It includes methods for creating, reading, looking up, and recursively removing files in a directory."><code>DirectoryEntrySync</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DirectoryReaderSync" title="The DirectoryReaderSync interface of the File System API lets you read the entries in a directory."><code>DirectoryReaderSync</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Document" title="The Document interface represents any web page loaded in the browser and serves as an entry point into the web page's content, which is the DOM tree."><code>Document</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DocumentFragment" title="The DocumentFragment interface represents a minimal document object that has no parent. It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document. The key difference is that because the document fragment isn't part of the active document tree structure, changes made to the fragment don't affect the document, cause reflow, or incur any performance impact that can occur when changes are made."><code>DocumentFragment</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DocumentOrShadowRoot" title="The DocumentOrShadowRoot interface of the Shadow DOM API provides APIs that are shared between documents and shadow roots."><code>DocumentOrShadowRoot</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DocumentTimeline" title="The DocumentTimeline interface of the the Web Animations API represents animation timelines, including the default document timeline (accessed via Document.timeline)."><code>DocumentTimeline</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DocumentTouch" title="The DocumentTouch interface used to provide convenience methods for creating Touch and TouchList objects, but DocumentTouch been removed from the standards. These two methods now live on the Document interface now."><code>DocumentTouch</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DocumentType" title="The DocumentType interface represents a Node containing a doctype."><code>DocumentType</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DoubleRange" title="The DoubleRange dictionary is used to define a range of permitted double-precision floating-point values for a property, with either or both a maximum and minimum value specified. The ConstrainDouble dictionary is based on this, augmenting it to support exact and ideal values as well."><code>DoubleRange</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DragEvent" title="The DragEvent interface is a DOM event that represents a drag and drop interaction. The user initiates a drag by placing a pointer device (such as a mouse) on the touch surface and then dragging the pointer to a new location (such as another DOM element). Applications are free to interpret a drag and drop interaction in an application-specific way."><code>DragEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/DynamicsCompressorNode" title="Inherits properties from its parent, AudioNode."><code>DynamicsCompressorNode</code></a></span></span></li>
+</ul>
+<span>E</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EXT_blend_minmax" title="The EXT_blend_minmax extension is part of the WebGL API and extends blending capabilities by adding two new blend equations: the minimum or maximum color components of the source and destination colors."><code>EXT_blend_minmax</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EXT_color_buffer_float" title="The EXT_color_buffer_float extension is part of WebGL and adds the ability to render a variety of floating point formats."><code>EXT_color_buffer_float</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EXT_color_buffer_half_float" title="The EXT_color_buffer_half_float extension is part of the WebGL API and adds the ability to render to 16-bit floating-point color buffers."><code>EXT_color_buffer_half_float</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EXT_disjoint_timer_query" title="The EXT_disjoint_timer_query extension is part of the WebGL API and provides a way to measure the duration of a set of GL commands, without stalling the rendering pipeline."><code>EXT_disjoint_timer_query</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EXT_frag_depth" title="The EXT_frag_depth extension is part of the WebGL API and enables to set a depth value of a fragment from within the fragment shader."><code>EXT_frag_depth</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EXT_sRGB" title="The EXT_sRGB extension is part of the WebGL API and adds sRGB support to textures and framebuffer objects."><code>EXT_sRGB</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EXT_shader_texture_lod" title="The EXT_shader_texture_lod extension is part of the WebGL API and adds additional texture functions to the OpenGL ES Shading Language which provide the shader writer with explicit control of LOD (Level of detail)."><code>EXT_shader_texture_lod</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EXT_texture_filter_anisotropic" title="The EXT_texture_filter_anisotropic extension is part of the WebGL API and exposes two constants for anisotropic filtering (AF)."><code>EXT_texture_filter_anisotropic</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Element" title="Element is the most general base class from which all objects in a Document inherit. It only has methods and properties common to all kinds of element. More specific classes inherit from Element."><code>Element</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ElementTraversal" title="The ElementTraversal interface was defining methods allowing to access from one Node to another one in the document tree."><code>ElementTraversal</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Entity" title="Read-only reference to a DTD entity. Also inherits the methods and properties of Node."><code>Entity</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EntityReference" title="Read-only reference to an entity reference in the DOM tree. Has no properties or methods of its own but inherits from Node."><code>EntityReference</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EntrySync" title="The EntrySync interface of the FileSystem API represents an entry in a file system. The entry can be a FileEntrySync or a DirectoryEntry. It includes methods for working with files—including copying, moving, removing, and reading files—as well as information about the file it points to—including the file name and its path from the root to the entry."><code>EntrySync</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ErrorEvent" title="The ErrorEvent interface represents events providing information related to errors in scripts or in files."><code>ErrorEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Event" title="The Event interface represents any event which takes place in the DOM; some are user-generated (such as mouse or keyboard events), while others are generated by APIs (such as events that indicate an animation has finished running, a video has been paused, and so forth). There are many types of events, some of which use other interfaces based on the main Event interface. Event itself contains the properties and methods which are common to all events."><code>Event</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EventListener" title="This method is called whenever an event occurs of the type for which the EventListener interface was registered."><code>EventListener</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EventSource" title="The EventSource interface is used to receive server-sent events. It connects to a server over HTTP and receives events in text/event-stream format without closing the connection."><code>EventSource</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/EventTarget" title="EventTarget is an interface implemented by objects that can receive events and may have listeners for them."><code>EventTarget</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ExtendableEvent" title="The ExtendableEvent interface extends the lifetime of the install and activate events dispatched on the global scope as part of the service worker lifecycle. This ensures that any functional events (like FetchEvent) are not dispatched until it upgrades database schemas and deletes the outdated cache entries."><code>ExtendableEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ExtendableMessageEvent" title="The ExtendableMessageEvent interface of the ServiceWorker API represents the event object of a message event fired on a service worker (when a channel message is received on the ServiceWorkerGlobalScope from another context) — extends the lifetime of such events."><code>ExtendableMessageEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+<span>F</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FederatedCredential" title="The FederatedCredential interface of the the Credential Management API provides information about credentials from a federated identity provider. A federated identity provider is an entity that a website trusts to correctly authenticate a user, and that provides an API for that purpose. OpenID Connect is an example of a federated identity provider framework."><code>FederatedCredential</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FetchEvent" title="This is the event type for fetch events despatched on the service worker global scope. It contains information about the fetch, including the request and how the receiver will treat the response. It provides the event.respondWith() method, which allows us to provide a response to this fetch."><code>FetchEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/File" title="The File interface provides information about files and allows JavaScript in a web page to access their content."><code>File</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileEntrySync" title="The FileEntrySync interface of the File System API represents a file in a file system. It lets you write content to a file."><code>FileEntrySync</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileError" title="Represents an error that occurs while using the FileReader interface."><code>FileError</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileException" title="In the File System API, a FileException object represents error conditions that you might encounter while accessing the file system using the synchronous API. It extends the FileException interface described in File Writer and adds several new error codes."><code>FileException</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileList" title="An object of this type is returned by the files property of the HTML &lt;input> element; this lets you access the list of files selected with the &lt;input type=&quot;file&quot;> element. It's also used for a list of files dropped into web content when using the drag and drop API; see the DataTransfer object for details on this usage."><code>FileList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileReader" title="The FileReader object lets web applications asynchronously read the contents of files (or raw data buffers) stored on the user's computer, using File or Blob objects to specify the file or data to read."><code>FileReader</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileReaderSync" title="The FileReaderSync interface allows to read File or Blob objects in a synchronous way."><code>FileReaderSync</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileRequest" title="The FileRequest interface extends the DOMRequest interface to provide some extra properties necessary for the LockedFile objects."><code>FileRequest</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileSystem" title="The File and Directory Entries API interface FileSystem is used to represent a file system. These objects can be obtained from the filesystem property on any file system entry. Some browsers offer additional APIs to create and manage file systems, such as Chrome's requestFileSystem() method."><code>FileSystem</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileSystemDirectoryEntry" title="The FileSystemDirectoryEntry interface of the File and Directory Entries API represents a directory in a file system. It provides methods which make it possible to access and manipulate the files in a directory, as well as to access the entries within the directory."><code>FileSystemDirectoryEntry</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileSystemDirectoryReader" title="The FileSystemDirectoryReader interface of the File and Directory Entries API lets you access the FileEntry-based objects (generally FileSystemFileEntry or FileSystemDirectoryEntry) representing each entry in a directory."><code>FileSystemDirectoryReader</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileSystemEntry" title="The FileSystemEntry interface of the File and Directory Entries API represents a single in a file system. The entry can be a file or a directory (directories are represented by the DirectoryEntry interface). It includes methods for working with files—including copying, moving, removing, and reading files—as well as information about a file it points to—including the file name and its path from the root to the entry."><code>FileSystemEntry</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileSystemFileEntry" title="The FileSystemFileEntry interface of the File System API represents a file in a file system. It offers properties describing the file's attributes, as well as the file() method, which creates a File object that can be used to read the file."><code>FileSystemFileEntry</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileSystemFlags" title="The FileSystemFlags dictionary defines a set of values which are used when specifying option flags when calling certain methods in the File and Directory Entries API. Methods which accept an options parameter of this type may specify zero or more of these flags as fields in an object, like this:"><code>FileSystemFlags</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FileSystemSync" title="In the File System API, a FileSystemSync object represents a file system. It has two properties."><code>FileSystemSync</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FocusEvent" title="The FocusEvent interface represents focus-related events like focus, blur, focusin, or focusout."><code>FocusEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FontFace" title="The FontFace interface represents a single usable font face. It allows control of the source of the font face, being a URL to an external resource, or a buffer; it also allows control of when the font face is loaded and its current status."><code>FontFace</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FontFaceSet" title="The FontFaceSet interface of the CSS Font Loading API manages the loading of font-faces and querying of their download status."><code>FontFaceSet</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FontFaceSetLoadEvent" title="The FontFaceSetLoadEvent interface of the the Css Font Loading API is fired whenever a FontFaceSet loads."><code>FontFaceSetLoadEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FormData" title='The FormData interface provides a way to easily construct a set of key/value pairs representing form fields and their values, which can then be easily sent using the XMLHttpRequest.send() method. It uses the same format a form would use if the encoding type were set to "multipart/form-data".'><code>FormData</code></a></span></span></li>
+</ul>
+<span>G</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/GainNode" title="The gain is a unitless value, changing with time, that is multiplied to each corresponding sample of all input channels. If modified, the new gain is applied using a de-zippering algorithm in order to prevent unaesthetic 'clicks' from appearing in the resulting audio."><code>GainNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Gamepad" title="The Gamepad interface of the Gamepad API defines an individual gamepad or other controller, allowing access to information such as button presses, axis positions, and id."><code>Gamepad</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/GamepadButton" title="The GamepadButton interface defines an individual button of a gamepad or other controller, allowing access to the current state of different types of buttons available on the control device."><code>GamepadButton</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/GamepadEvent" title=""><code>GamepadEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/GamepadHapticActuator" title="The GamepadHapticActuator interface of the Gamepad API represents hardware in the controller designed to provide haptic feedback to the user (if available), most commonly vibration hardware."><code>GamepadHapticActuator</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/GamepadPose" title="The GamepadPose interface of the Gamepad API represents the pose of a WebVR controller at a given timestamp (which includes orientation, position, velocity, and acceleration information.)"><code>GamepadPose</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Geolocation" title="The Geolocation interface represents an object able to programmatically obtain the position of the device. It gives Web content access to the location of the device. This allows a Web site or app to offer customized results based on the user's location."><code>Geolocation</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/GestureEvent" title="The GestureEvent is a proprietary interface specific to WebKit which gives information regarding multi-touch gestures. Events using this interface include gesturestart, gesturechange, and gestureend."><code>GestureEvent</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/GlobalEventHandlers" title="The GlobalEventHandlers mixin describes the event handlers common to several interfaces like HTMLElement, Document, or Window. Each of these interfaces can, of course, add more event handlers in addition to the ones listed below."><code>GlobalEventHandlers</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/GlobalFetch" title="The GlobalFetch mixin of the Fetch API contains the GlobalFetch.fetch() method used to start the process of fetching a resource."><code>GlobalFetch</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+<span>H</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HMDVRDevice" title="The HMDVRDevice interface of the WebVR API represents a head mounted display, providing access to information about each eye, and allowing us to modify the current field of view."><code>HMDVRDevice</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLAnchorElement" title="The HTMLAnchorElement interface represents hyperlink elements and provides special properties and methods (beyond those of the regular HTMLElement object interface that they inherit from) for manipulating the layout and presentation of such elements."><code>HTMLAnchorElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLAreaElement" title="The HTMLAreaElement interface provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of area elements."><code>HTMLAreaElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLAudioElement" title="The HTMLAudioElement interface provides access to the properties of &lt;audio> elements, as well as methods to manipulate them. It derives from the HTMLMediaElement interface."><code>HTMLAudioElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLBRElement" title="The HTMLBRElement interface represents a HTML line break element (&lt;br>). It inherits from HTMLElement."><code>HTMLBRElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLBaseElement" title="The HTMLBaseElement interface contains the base URI for a document. This object inherits all of the properties and methods as described in the HTMLElement interface."><code>HTMLBaseElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLBaseFontElement" title="The HTMLBaseFontElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating &lt;basefont> elements."><code>HTMLBaseFontElement</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLBodyElement" title="The HTMLBodyElement interface provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating body elements."><code>HTMLBodyElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLButtonElement" title="The HTMLButtonElement interface provides properties and methods (beyond the &lt;button> object interface it also has available to them by inheritance) for manipulating the layout and presentation of button elements."><code>HTMLButtonElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLCanvasElement" title="The HTMLCanvasElement interface provides properties and methods for manipulating the layout and presentation of canvas elements. The HTMLCanvasElement interface also inherits the properties and methods of the HTMLElement interface."><code>HTMLCanvasElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLCollection" title="The HTMLCollection interface represents a generic collection (array-like object similar to arguments) of elements (in document order) and offers methods and properties for selecting from the list."><code>HTMLCollection</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLContentElement" title="The HTMLContentElement interface represents a &lt;content> HTML Element, which is used in Shadow DOM."><code>HTMLContentElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLDListElement" title="The HTMLDListElement interface provides special properties (beyond those of the regular HTMLElement interface it also has available to it by inheritance) for manipulating definition list elements."><code>HTMLDListElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLDataElement" title="The HTMLDataElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating &lt;data> elements."><code>HTMLDataElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLDataListElement" title="The HTMLDataListElement interface provides special properties (beyond the HTMLElement object interface it also has available to it by inheritance) to manipulate &lt;datalist> elements and their content."><code>HTMLDataListElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLDialogElement" title="The HTMLDialogElement interface provides methods to manipulate &lt;dialog> elements. It inherits properties and methods from the HTMLElement interface."><code>HTMLDialogElement</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLDivElement" title="The HTMLDivElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating div elements."><code>HTMLDivElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLDocument" title="HTMLDocument is an abstract interface of the DOM which provides access to special properties and methods not present by default on a regular (XML) document."><code>HTMLDocument</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLElement" title="The HTMLElement interface represents any HTML element. Some elements directly implement this interface, others implement it via an interface that inherits it."><code>HTMLElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLEmbedElement" title="The HTMLEmbedElement interface, which provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating &lt;embed> elements."><code>HTMLEmbedElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLFieldSetElement" title="The HTMLFieldSetElement interface has special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of field-set elements."><code>HTMLFieldSetElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLFontElement" title="Implements the document object model (DOM) representation of the font element. The HTML Font Element &lt;font> defines the font size, font face and color of text."><code>HTMLFontElement</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLFormControlsCollection" title="The HTMLFormControlsCollection interface represents a collection of HTML form control elements. It replaces one method of HTMLCollection."><code>HTMLFormControlsCollection</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLFormElement" title="The HTMLFormElement interface provides methods to create and modify &lt;form> elements."><code>HTMLFormElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLFrameSetElement" title="The HTMLFrameSetElement interface provides special properties (beyond those of the regular HTMLElement interface they also inherit) for manipulating &lt;frameset> elements."><code>HTMLFrameSetElement</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLHRElement" title="The HTMLHRElement interface provides special properties (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating &lt;hr> elements."><code>HTMLHRElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLHeadElement" title="The HTMLHeadElement interface contains the descriptive information, or metadata, for a document. This object inherits all of the properties and methods described in the HTMLElement interface."><code>HTMLHeadElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLHeadingElement" title="The HTMLHeadingElement interface represents the different heading elements. It inherits methods and properties from the HTMLElement interface."><code>HTMLHeadingElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLHtmlElement" title="The HTMLHtmlElement interface serves as the root node for a given HTML document.  This object inherits the properties and methods described in the HTMLElement interface."><code>HTMLHtmlElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLHyperlinkElementUtils" title="The HTMLHyperlinkElementUtils mixin defines utility methods and properties to work with HTMLAnchorElement and HTMLAreaElement. These utilities allow to deal with common features like URLs."><code>HTMLHyperlinkElementUtils</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLIFrameElement" title="The HTMLIFrameElement interface provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements."><code>HTMLIFrameElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLImageElement" title="The HTMLImageElement interface provides special properties and methods  for manipulating the layout and presentation of &lt;img> elements."><code>HTMLImageElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLInputElement" title="The HTMLInputElement interface provides special properties and methods for manipulating the layout and presentation of input elements."><code>HTMLInputElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLIsIndexElement" title="The HTMLIsIndexElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating &lt;isindex> elements."><code>HTMLIsIndexElement</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLKeygenElement" title="Technical review completed."><code>HTMLKeygenElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLLIElement" title="The HTMLLIElement interface exposes specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating list elements."><code>HTMLLIElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLLabelElement" title="The HTMLLabelElement interface gives access to properties specific to &lt;label> elements. It inherits methods and properties from the base HTMLElement interface."><code>HTMLLabelElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLLegendElement" title="The HTMLLegendElement is an interface allowing to access properties of the &lt;legend> elements. It inherits properties and methods from the HTMLElement interface."><code>HTMLLegendElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLLinkElement" title="The HTMLLinkElement interface represents reference information for external resources and the relationship of those resources to a document and vice-versa. This object inherits all of the properties and methods of the HTMLElement interface."><code>HTMLLinkElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLMapElement" title="The HTMLMapElement interface provides special properties and methods (beyond those of the regular object HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of map elements."><code>HTMLMapElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLMediaElement" title="The HTMLMediaElement interface adds to HTMLElement the properties and methods needed to support basic media-related capabilities that are common to audio and video."><code>HTMLMediaElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLMetaElement" title="The HTMLMetaElement interface contains descriptive metadata about a document. It inherits all of the properties and methods described in the HTMLElement interface."><code>HTMLMetaElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLMeterElement" title="The HTML &lt;meter> elements expose the HTMLMeterElement interface, which provides special properties and methods (beyond the HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of &lt;meter> elements."><code>HTMLMeterElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLModElement" title="The HTMLModElement interface provides special properties (beyond the regular methods and properties available through the HTMLElement interface they also have available to them by inheritance) for manipulating modification elements, that is &lt;del> and &lt;ins>."><code>HTMLModElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLOListElement" title="The HTMLOListElement interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating ordered list elements."><code>HTMLOListElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLObjectElement" title="The HTMLObjectElement interface provides special properties and methods (beyond those on the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of &lt;object> element, representing external resources."><code>HTMLObjectElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLOptGroupElement" title="The HTMLOptGroupElement interface provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of &lt;optgroup> elements."><code>HTMLOptGroupElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLOptionElement" title="The HTMLOptionElement interface represents &lt;option> elements and inherits all classes and methods of the HTMLElement interface."><code>HTMLOptionElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLOptionsCollection" title='HTMLOptionsCollection is an interface representing a collection of HTML option elements (in document order) and offers methods and properties for traversing the list as well as optionally altering its items. This type is returned solely by the "options" property of select.'><code>HTMLOptionsCollection</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLOutputElement" title="The HTMLOutputElement interface provides properties and methods (beyond those inherited from HTMLElement) for manipulating the layout and presentation of &lt;output> elements."><code>HTMLOutputElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLParagraphElement" title="The HTMLParagraphElement interface provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating &lt;p> elements."><code>HTMLParagraphElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLParamElement" title="The HTMLParamElement interface provides special properties (beyond those of the regular HTMLElement object interface it inherits) for manipulating &lt;param> elements, representing a pair of a key and a value that acts as a parameter for an &lt;object> element."><code>HTMLParamElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLPictureElement" title="The HTMLPictureElement interface represents a &lt;picture> HTML element. It doesn't implement specific properties or methods."><code>HTMLPictureElement</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLPreElement" title="The HTMLPreElement interface expose specific properties and methods (beyond those defined by regular HTMLElement interface it also has available to it by inheritance) for manipulating block of preformatted text."><code>HTMLPreElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLProgressElement" title="The HTMLProgressElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of &lt;progress> elements."><code>HTMLProgressElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLQuoteElement" title="The HTMLQuoteElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating quoting elements, like &lt;blockquote> and &lt;q>, but not the &lt;cite> element."><code>HTMLQuoteElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLScriptElement" title="HTML script elements expose the HTMLScriptElement interface, which provides special properties and methods (beyond the regular HTMLElement object interface they also have available to them by inheritance) for manipulating the layout and presentation of &lt;script> elements."><code>HTMLScriptElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLSelectElement" title="The HTMLSelectElement interface represents a &lt;select> HTML Element. These elements also share all of the properties and methods of other HTML elements via the HTMLElement interface."><code>HTMLSelectElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLShadowElement" title="The HTMLShadowElement interface represents a &lt;shadow> HTML Element, which is used in Shadow DOM."><code>HTMLShadowElement</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLSlotElement" title="The HTMLSlotElement interface of the Shadow DOM API enables access to the name and assigned nodes of an HTML &lt;slot> element."><code>HTMLSlotElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLSourceElement" title="The HTMLSourceElement interface provides special properties (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating &lt;source> elements."><code>HTMLSourceElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLSpanElement" title="The HTMLSpanElement interface represents a &lt;span> element and derives from the HTMLElement interface, but without implementing any additional properties or methods."><code>HTMLSpanElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLStyleElement" title="The HTMLStyleElement interface represents a &lt;style> element. It inherits properties and methods from its parent, HTMLElement, and from LinkStyle."><code>HTMLStyleElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTableCaptionElement" title="The HTMLTableCaptionElement interface special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating table caption elements."><code>HTMLTableCaptionElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTableCellElement" title="The HTMLTableCellElement interface provides special properties and methods (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of table cells, either header or data cells, in an HTML document."><code>HTMLTableCellElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTableColElement" title="The HTMLTableColElement interface provides special properties (beyond the HTMLElement interface it also has available to it inheritance) for manipulating single or grouped table column elements."><code>HTMLTableColElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTableDataCellElement" title="The HTMLTableDataCellElement interface provides special properties and methods (beyond the regular HTMLTableCellElement and HTMLElement interfaces it also has available to it by inheritance) for manipulating the layout and presentation of table data cells in an HTML document."><code>HTMLTableDataCellElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTableElement" title="The HTMLTableElement interface provides special properties and methods (beyond the regular HTMLElement object interface it also has available to it by inheritance) for manipulating the layout and presentation of tables in an HTML document."><code>HTMLTableElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTableHeaderCellElement" title="The HTMLTableHeaderCellElement interface provides special properties and methods (beyond the regular HTMLTableCellElement and HTMLElement interfaces it also has available to it by inheritance) for manipulating the layout and presentation of table header cells in an HTML document."><code>HTMLTableHeaderCellElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTableRowElement" title="The HTMLTableRowElement interface provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of rows in an HTML table."><code>HTMLTableRowElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTableSectionElement" title="The HTMLTableSectionElement interface provides special properties and methods (beyond the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of sections, that is headers, footers and bodies, in an HTML table."><code>HTMLTableSectionElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTemplateElement" title="The HTMLTemplateElement interface enables access to the contents of an HTML &lt;template> element."><code>HTMLTemplateElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTextAreaElement" title="The HTMLTextAreaElement interface provides special properties and methods for manipulating the layout and presentation of &lt;textarea> elements."><code>HTMLTextAreaElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTimeElement" title="The HTMLTimeElement interface provides special properties (beyond the regular HTMLElement interface it also has available to it by inheritance) for manipulating &lt;time> elements."><code>HTMLTimeElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTitleElement" title="The HTMLTitleElement interface contains the title for a document. This element inherits all of the properties and methods of the HTMLElement interface."><code>HTMLTitleElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLTrackElement" title="The HTMLTrackElement"><code>HTMLTrackElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLUListElement" title="The HTMLUListElement interface provides special properties (beyond those defined on the regular HTMLElement interface it also has available to it by inheritance) for manipulating unordered list elements."><code>HTMLUListElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLUnknownElement" title="The HTMLUnknownElement interface represents an invalid HTML element and derives from the HTMLElement interface, but without implementing any additional properties or methods."><code>HTMLUnknownElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HTMLVideoElement" title="The HTMLVideoElement interface provides special properties and methods for manipulating video objects. It also inherits properties and methods of HTMLMediaElement and HTMLElement."><code>HTMLVideoElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/HashChangeEvent" title="The hashchange event is fired when the fragment identifier of the URL has changed (the part of the URL that follows the # symbol, including the # symbol)."><code>HashChangeEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Headers" title="The Headers interface of the Fetch API allows you to perform various actions on HTTP request and response headers. These actions include retrieving, setting, adding to, and removing. A Headers object has an associated header list, which is initially empty and consists of zero or more name and value pairs.  You can add to this using methods like append() (see Examples.) In all methods of this interface, header names are matched by case-insensitive byte sequence."><code>Headers</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/History" title="Editorial review completed."><code>History</code></a></span></span></li>
+</ul>
+<span>I</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBCursor" title="The IDBCursor interface of the IndexedDB API represents a cursor for traversing or iterating over multiple records in a database."><code>IDBCursor</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBCursorSync" title="The IDBCursorSync interface of the IndexedDB API represents a cursor for iterating over multiple records in a database. You can have only one instance of IDBCursorSync representing a cursor, but you can have an unlimited number of cursors at the same time. Operations are performed on the underlying index or object store. It enables an application to synchronously process all the records in the cursor's range."><code>IDBCursorSync</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBCursorWithValue" title=""><code>IDBCursorWithValue</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBDatabase" title="The IDBDatabase interface of the IndexedDB API provides a connection to a database; you can use an IDBDatabase object to open a transaction on your database then create, manipulate, and delete objects (data) in that database. The interface provides the only way to get and manage versions of the database."><code>IDBDatabase</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBDatabaseException" title="In the IndexedDB API, an IDBDatabaseException object represents exception conditions that can be encountered while performing database operations."><code>IDBDatabaseException</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBDatabaseSync" title="The DatabaseSync interface in the IndexedDB API represents a synchronous connection to a database."><code>IDBDatabaseSync</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBEnvironment" title="The IDBEnvironment helper of the IndexedDB API contains the indexedDB property, which provides access to IndexedDB functionality. It is the top level IndexedDB interface implemented by the window and Worker objects."><code>IDBEnvironment</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBEnvironmentSync" title="The Unimplemented IDBEnvironmentSync interface of the IndexedDB API will be implemented by worker objects."><code>IDBEnvironmentSync</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBFactory" title="In the following code snippet, we make a request to open a database, and include handlers for the success and error cases. For a full working example, see our To-do Notifications app (view example live.)"><code>IDBFactory</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBFactorySync" title="The IDBFactorySync interface of the IndexedDB API provide a synchronous means of accessing the capabilities of indexed databases."><code>IDBFactorySync</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBIndex" title="IDBIndex interface of the IndexedDB API provides asynchronous access to an index in a database. An index is a kind of object store for looking up records in another object store, called the referenced object store. You use this interface to retrieve data."><code>IDBIndex</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBIndexSync" title="The IDBIndexSync interface of the IndexedDB API provides synchronous access to an index in a database."><code>IDBIndexSync</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBKeyRange" title="A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs:"><code>IDBKeyRange</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBLocaleAwareKeyRange" title="The IDBLocaleAwareKeyRange interface of the IndexedDB API is a Firefox-specific version of IDBKeyRange — it functions in exactly the same fashion, and has the same properties and methods, but it is intended for use with IDBIndex objects when the original index had a locale value specified upon its creation (see createIndex()'s optionalParameters) — that is, it has locale aware sorting enabled."><code>IDBLocaleAwareKeyRange</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBMutableFile" title="The IDBMutableFile interface provides access in read or write mode to a file, dealing with all the necessary locks."><code>IDBMutableFile</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBObjectStore" title="This example shows a variety of different uses of object stores, from updating the data structure with IDBObjectStore.createIndex inside an onupgradeneeded function, to adding a new item to our object store with IDBObjectStore.add. For a full working example, see our To-do Notifications app (view example live.)"><code>IDBObjectStore</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBObjectStoreSync" title="The IDBObjectStoreSync interface of the IndexedDB API provides synchronous access to an object store of a database."><code>IDBObjectStoreSync</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBOpenDBRequest" title="Also inherits methods from its parents IDBRequest and EventTarget."><code>IDBOpenDBRequest</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBRequest" title="The request object does not initially contain any information about the result of the operation, but once information becomes available, an event is fired on the request, and the information becomes available through the properties of the IDBRequest instance."><code>IDBRequest</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBTransaction" title="Note that as of Firefox 40, IndexedDB transactions have relaxed durability guarantees to increase performance (see bug 1112702.) Previously in a readwrite transaction IDBTransaction.oncomplete was fired only when all data was guaranteed to have been flushed to disk. In Firefox 40+ the complete event is fired after the OS has been told to write the data but potentially before that data has actually been flushed to disk. The complete event may thus be delivered quicker than before, however, there exists a small chance that the entire transaction will be lost if the OS crashes or there is a loss of system power before the data is flushed to disk. Since such catastrophic events are rare most consumers should not need to concern themselves further."><code>IDBTransaction</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBTransactionSync" title="The IDBTransactionSync interface of the IndexedDB API provides a synchronous transaction on a database. When an application creates an IDBTransactionSync object, it blocks until the browser is able to reserve the require database objects."><code>IDBTransactionSync</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBVersionChangeEvent" title="The IDBVersionChangeEvent interface of the IndexedDB API indicates that the version of the database has changed, as the result of an IDBOpenDBRequest.onupgradeneeded event handler function."><code>IDBVersionChangeEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IDBVersionChangeRequest" title="The IDBVersionChangeRequest interface the IndexedDB API represents a request to change the version of a database. It is used only by the setVersion() method of IDBDatabase."><code>IDBVersionChangeRequest</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IIRFilterNode" title="The IIRFilterNode interface of the Web Audio API is a AudioNode processor which implements a general infinite impulse response (IIR)  filter; this type of filter can be used to implement tone control devices and graphic equalizers as well. It lets the parameters of the filter response be specified, so that it can be tuned as needed."><code>IIRFilterNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IdentityManager" title="The IdentityManager of the  BrowserID protocol exposes the BrowserID API, via navigator.id. This API has gone through several significant revisions. Each generation is listed separately below."><code>IdentityManager</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IdleDeadline" title="See our complete example in the article Cooperative Scheduling of Background Tasks API."><code>IdleDeadline</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ImageBitmap" title="The ImageBitmap interface represents a bitmap image which can be drawn to a &lt;canvas> without undue latency. It can be created from a variety of source objects using the createImageBitmap() factory method. ImageBitmap provides an asynchronous and resource efficient pathway to prepare textures for rendering in WebGL."><code>ImageBitmap</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ImageBitmapFactories" title="The ImageBitmapFactories mixin interface contains utility methods to create an ImageBitmap. There is no object of this type, but the two interfaces Window, available within the regular browsing scope, and the WorkerGlobalScope interface for workers, implement this interface."><code>ImageBitmapFactories</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ImageBitmapRenderingContext" title="The ImageBitmapRenderingContext interface is a canvas rendering context which only provides the functionality to replace the canvas's contents with the given ImageBitmap. Its context id (the first argument to HTMLCanvasElement.getContext() or OffscreenCanvas.getContext()  is &quot;bitmaprenderer&quot;."><code>ImageBitmapRenderingContext</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ImageCapture" title="The ImageCapture interface of the the MediaStream Image Capture API provides is an interface for capturing images from a photographic device referenced through a valid MediaStreamTrack."><code>ImageCapture</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ImageData" title="The ImageData interface represents the underlying pixel data of an area of a &lt;canvas> element. It is created using the ImageData() constructor or creator methods on the CanvasRenderingContext2D object associated with a canvas: createImageData() and getImageData(). It can also be used to set a part of the canvas by using putImageData()."><code>ImageData</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Index" title="Found 4066 pages:"><code>Index</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/InputDeviceCapabilities" title="The InputDeviceCapabilities interface of the Input Device Capabilities API provides information about the physical device or a group of related devices responsible for generating input events. Events caused by the same physical input device get the same instance of this object, but the converse isn't true. For example, two mice with the same capabilities in a system may appear as a single InputDeviceCapabilities instance."><code>InputDeviceCapabilities</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/InputEvent" title="The InputEvent interface represents an event notifying of editable content change."><code>InputEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/FetchEvent_clone" title="The InstallEvent interface represents an install action that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker. As a child of ExtendableEvent it ensures that functional events (like FetchEvent) are not dispatched during installation."><code>InstallEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/InstallEvent" title="The parameter passed into the oninstall handler, the InstallEvent interface represents an install action that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker. As a child of ExtendableEvent, it ensures that functional events such as FetchEvent are not dispatched during installation. "><code>InstallEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/InstallTrigger" title="The InstallTrigger interface is an interesting outlier in the Apps API; it's included in this API but are inherited from the old Mozilla XPInstall technology for installing add-ons. It is used for triggering the download and installation of an add-on (or anything packaged in an .xpi file) from a Web page, using JavaScript code to kick off the install process."><code>InstallTrigger</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IntersectionObserver" title="The IntersectionObserver interface of the Intersection Observer API provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport."><code>IntersectionObserver</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/IntersectionObserverEntry" title="The IntersectionObserverEntry interface of the Intersection Observer API describes the intersection between the target element and its root container at a specific moment of transition."><code>IntersectionObserverEntry</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+
+
+<span>K</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/KeyboardEvent" title="KeyboardEvent objects describe a user interaction with the keyboard. Each event describes a key; the event type (keydown, keypress, or keyup) identifies what kind of activity was performed."><code>KeyboardEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/KeyframeEffect" title="The KeyframeEffect interface of the Web Animations API lets us create sets of animatable properties and values, called keyframes. These can then be played using the Animation() constructor."><code>KeyframeEffect</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/KeyframeEffectReadOnly" title="The KeyframeEffectReadOnly interface of the Web Animations API describes sets of animatable properties and values that can be played using the Animation.Animation() constructor, and which are inherited by KeyframeEffect."><code>KeyframeEffectReadOnly</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+<span>L</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/L10n.formatValue" title="formatValue is used to retrieve translations from the localization resources, optionally interpolating them with additional variable data. If the translation is not found in the first supported locale, the L10n context will try the next locale in the fallback chain (asynchronously) until it finds an available translation. "><code>L10n.formatValue</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/L10n.get" title="The get method is used to retrieve translations from the localization resources, optionally interpolating them with additional variable data. If the translation is not found in the first supported locale, the L10n context will try the next locale in the fallback chain (synchronously!) until it finds an available translation."><code>L10n.get</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/L10n.language.code" title="The language.code property returns the code of the currently active language and allows to change the language by setting the value to a new code."><code>L10n.language.code</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/L10n.language.direction" title="The language.direction property returns the direction (ltr or rtl) of the currently active language."><code>L10n.language.direction</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/L10n.once" title="The once method is used to register a callback that will execute exactly once.  If the L10n context is ready when L10n.once() is called, the callback will be invoked immediately on the next tick of the event loop. If the L10n context is not ready when L10n.once() is called (because the localization resources are still downloading), the callback will be invoked when the ready event of the L10n context fires."><code>L10n.once</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/L10n.ready" title="The ready method is used to register a callback that will execute at least once.  The callback is registered as a listener to the ready event of the L10n context.  Additionally, if the L10n context is ready when L10n.ready() is called, the callback will be invoked immediately on the next tick of the event loop."><code>L10n.ready</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/L10n.readyState" title="The readyState property returns either loading or complete — depending on the current state of the L10n context."><code>L10n.readyState</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/L10n.setAttributes" title="The setAttributes method may be used to set the data-l10n-id and data-l10n-args attributes on DOM elements."><code>L10n.setAttributes</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/LinkStyle" title="The LinkStyle interface allows to access the associated CSS style sheet of a node."><code>LinkStyle</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/LocalFileSystem" title="The LocalFileSystem interface of the File System API gives you access to a sandboxed file system.  The methods are implemented by window and worker objects."><code>LocalFileSystem</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/LocalFileSystemSync" title="The LocalFileSystemSync interface of the File System API gives you access to a sandboxed file system. It is intended to be used with WebWorkers. The methods are implemented by worker objects."><code>LocalFileSystemSync</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/LocalMediaStream" title="The LocalMediaStream interface was part of the Media Capture and Streams API, representing a stream of data being generated locally (such as by getUserMedia(). However, getUserMedia() now returns a MediaStream instead, and this interface has been removed from the specification."><code>LocalMediaStream</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Location" title="The Location interface represents the location (URL) of the object it is linked to. Changes done on it are reflected on the object it relates to. Both the Document and Window interface have such a linked Location, accessible via Document.location and Window.location respectively."><code>Location</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/LockedFile" title="The LockedFile interface provides tools to deal with a given file with all the necessary locks."><code>LockedFile</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/LongRange" title="The LongRange dictionary is used to define a range of permitted integer values for a property, with either or both a maximum and minimum value specified. The ConstrainLongRange dictionary is based on this, augmenting it to support exact and ideal values as well."><code>LongRange</code></a></span></span></li>
+</ul>
+<span>M</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MIDIAccess" title="The MIDIAccess interface of the Web MIDI API provides methods for listing MIDI input and output devices, and obtaining access to those devices."><code>MIDIAccess</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MIDIConnectionEvent" title="The MIDIConnectionEvent interface of the Web MIDI API is the event passed to the onstatechange event of the MIDIAccess interface and the onstatechange event of the MIDIPorts interface. This occurs any time a new port becomes available, or when a previously available port becomes unavailable. For example, this event is fired whenever a MIDI device is either plugged in to or unplugged from a computer."><code>MIDIConnectionEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MIDIInput" title="Use the MIDIInput interface of the Web MIDI API to access and pass messages to a MIDI input port."><code>MIDIInput</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MIDIInputMap" title="The MIDIInputMap read-only interface of the Web MIDI API provides a Map-like interface to the currently available MIDI input ports. Though it works generally like a map, because it is read-only it does not contain clear(), delete(), or set() functions."><code>MIDIInputMap</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MIDIOutputMap" title="The MIDIOutputMap read-only interface of the Web MIDI API provides a Map-like interface to the currently available MIDI output ports. Although it works like a map, because it is read-only, it does not contain clear(), delete(), or set() functions."><code>MIDIOutputMap</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MSGestureEvent" title="The MSGestureEvent is a proprietary interface specific to Internet Explorer and Microsoft Edge which represents events that occur due to touch gestures. Events using this interface include MSGestureStart, MSGestureEnd, MSGestureTap, MSGestureHold, MSGestureChange, and MSInertiaStart."><code>MSGestureEvent</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaDeviceInfo" title="The MediaDevicesInfo interface contains information on the available media input and output devices."><code>MediaDeviceInfo</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaDevices" title="The MediaDevices interface provides access to connected media input devices like cameras and microphones, as well as screen sharing. In essence, it lets you obtain access to any hardware source of media data."><code>MediaDevices</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaElementAudioSourceNode" title="A MediaElementSourceNode has no inputs and exactly one output, and is created using the AudioContext.createMediaElementSource method. The amount of channels in the output equals the number of channels of the audio referenced by the HTMLMediaElement used in the creation of the node, or is 1 if the HTMLMediaElement has no audio."><code>MediaElementAudioSourceNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaError" title="The MediaError interface represents an error which occurred while handling media in an HTML media element based on HTMLMediaElement, such as &lt;audio> or &lt;video>."><code>MediaError</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaKeyMessageEvent" title="The MediaKeyMessageEvent interface of the EncryptedMediaExtensions API contains the content and related data when the content decryption module generates a message for the session."><code>MediaKeyMessageEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaKeySession" title="The MediaKeySession interface of the EncryptedMediaExtensions API represents a context for message exchange with a content decryption module (CDM)."><code>MediaKeySession</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaKeyStatusMap" title="The MediaKeyStatusMap interface of the EncryptedMediaExtensions API is a read-only map of media key statuses by key IDs."><code>MediaKeyStatusMap</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaKeySystemAccess" title="The MediaKeySystemAccess interface of the EncryptedMediaExtensions API provides access to a Key System for decryption and/or a content protection provider. You can request an instance of this object using the Navigator.requestMediaKeySystemAccess method."><code>MediaKeySystemAccess</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaKeySystemConfiguration" title="The MediaKeySystemConfiguration interface Encrypted Media Extensions API provides configuration information about the media key system."><code>MediaKeySystemConfiguration</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaKeys" title="The MediaKeys interface of EncryptedMediaExtensions API the represents a set of keys that an associated HTMLMediaElement can use for decryption of media data during playback."><code>MediaKeys</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaMetadata" title="The MediaMetadata interface of the the Media Session API provides allows a web page to provide rich media metadata for display in a platform UI."><code>MediaMetadata</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaQueryList" title="A MediaQueryList object stores information on a media query applied to a document, and handles sending notifications to listeners when the media query state change (i.e. when the media query test starts or stops evaluating to true)."><code>MediaQueryList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaQueryListEvent" title="The MediaQueryListEvent object stores information on the changes that have happened to a MediaQueryList object — instances are available as the event object on a function referenced by a MediaQueryList.onchange property or MediaQueryList.addEvent() call."><code>MediaQueryListEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaQueryListListener" title="A MediaQueryList object maintains a list of media queries on a document, and handles sending notifications to listeners when the media queries on the document change."><code>MediaQueryListListener</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaRecorder" title="The MediaRecorder interface of the MediaStream Recording API provides functionality to easily record media. It is created by the invocation of the MediaRecorder() constructor."><code>MediaRecorder</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaRecorderErrorEvent" title="The MediaRecorderErrorEvent interface represents errors returned by the MediaStream Recording API. It is an Event object that encapsulates a reference to a DOMException describing the error that occurred."><code>MediaRecorderErrorEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaSession" title="The MediaSession interface of the the Media Session API allows a web page to provide custom behaviors for standard media playback interactions."><code>MediaSession</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaSettingsRange" title="The MediaSettingsRange interface of the the MediaStream Image Capture API provides the possible range and value size of PhotoCapabilities.imageHeight and PhotoCapabilities.imageWidth. A PhotoCapabilities object can be retrieved by calling ImageCapture.PhotoCapabilities()."><code>MediaSettingsRange</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaSource" title="The MediaSource interface of the Media Source Extensions API represents a source of media data for an HTMLMediaElement object. A MediaSource object can be attached to a HTMLMediaElement to be played in the user agent."><code>MediaSource</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaStream" title="The MediaStream interface represents a stream of media content. A stream consists of several tracks such as video or audio tracks. Each track is specified as an instance of MediaStreamTrack."><code>MediaStream</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaStreamAudioDestinationNode" title="Inherits properties from its parent, AudioNode."><code>MediaStreamAudioDestinationNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaStreamAudioSourceNode" title="A MediaElementSourceNode has no inputs and exactly one output, and is created using the AudioContext.createMediaStreamSource method. The number of channels in the output equals the number of channels in AudioMediaStreamTrack. If there is no valid media stream, then the number of output channels will be one silent channel."><code>MediaStreamAudioSourceNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaStreamConstraints" title="The MediaStreamConstraints dictionary is used when calling getUserMedia() to specify what kinds of tracks should be included in the returned MediaStream, and, optionally, to establish constraints for those tracks' settings."><code>MediaStreamConstraints</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaStreamEvent" title="The MediaStreamEvent interface represents events that occurs in relation to a MediaStream. Two events of this type can be thrown: addstream and removestream."><code>MediaStreamEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaStreamTrack" title="The MediaStreamTrack interface represents a single media track within a stream; typically, these are audio or video tracks, but other track types may exist as well."><code>MediaStreamTrack</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaStreamTrackEvent" title="The MediaStreamTrackEvent interface represents events which indicate that a MediaStream has had tracks added to or removed from the stream through calls to Media Stream API methods. These events are sent to the stream when these changes occur."><code>MediaStreamTrackEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaTrackConstraints" title="The MediaTrackConstraints dictionary is used to describe a set of capabilities and the value or values each can take on. A constraints dictionary is passed into applyConstraints() to allow a script to establish a set of exact (required) values or ranges and/or preferred values or ranges of values for the track, and the most recently-requested set of custom constraints can be retrieved by calling getConstraints()."><code>MediaTrackConstraints</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaTrackSettings" title="The MediaTrackSettings dictionary is used to return the current values configured for each of a MediaStreamTrack's settings. These values will adhere as closely as possible to any constraints previously described using a MediaTrackConstraints object and set using applyConstraints(), and will adhere to the default constraints for any properties whose constraints haven't been changed, or whose customized constraints couldn't be matched."><code>MediaTrackSettings</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MediaTrackSupportedConstraints" title="The MediaTrackSupportedConstraints dictionary establishes the list of constrainable properties recognized by the user agent or browser in its implementation of the MediaStreamTrack object. An object conforming to MediaTrackSupportedConstraints is returned by MediaDevices.getSupportedConstraints()."><code>MediaTrackSupportedConstraints</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MessageChannel" title="The MessageChannel interface of the Channel Messaging API allows us to create a new message channel and send data through it via its two MessagePort properties."><code>MessageChannel</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MessageEvent" title="The MessageEvent interface represents a message received by a target object."><code>MessageEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MessagePort" title="The MessagePort interface of the Channel Messaging API represents one of the two ports of a MessageChannel, allowing sending of messages from one port and listening out for them arriving at the other."><code>MessagePort</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Metadata" title="The Metadata interface is used by the File and Directory Entries API to contain information about a file system entry. This metadata includes the file's size and modification date and time."><code>Metadata</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MimeType" title="The MimeType interface provides contains information about a MIME type associated with a particular plugin. NavigatorPlugins.mimeTypes returns an array of this object."><code>MimeType</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MimeTypeArray" title="The MimeTypeArray interface returns an array of MimeType instances, each of which contains information about a supported browser plugins. This object is returned by NavigatorPlugins.mimeTypes."><code>MimeTypeArray</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MouseEvent" title="The MouseEvent interface represents events that occur due to the user interacting with a pointing device (such as a mouse). Common events using this interface include click, dblclick, mouseup, mousedown."><code>MouseEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MouseScrollEvent" title="The MouseScrollEvent interface represents events that occur due to the user moving a mouse wheel or similar input device."><code>MouseScrollEvent</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MouseWheelEvent" title="The MouseWheelEvent interface represents events that occur due to the user turning a mouse wheel."><code>MouseWheelEvent</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MutationEvent" title="Provides event properties that are specific to modifications to the Document Object Model (DOM) hierarchy and nodes."><code>MutationEvent</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MutationObserver" title="MutationObserver provides developers with a way to react to changes in a DOM. It is designed as a replacement for Mutation Events defined in the DOM3 Events specification."><code>MutationObserver</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/MutationRecord" title="A MutationRecord represents an individual DOM mutation. It is the object that is passed to MutationObserver's callback."><code>MutationRecord</code></a></span></span></li>
+</ul>
+<span>N</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NameList" title="Provides an abstraction for an ordered collection of name and namespace value pairs. Items can be accessed by a 0-based index. The DOM spec does not specify how the collection is to be implemented."><code>NameList</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NamedNodeMap" title="The NamedNodeMap interface represents a collection of Attr objects. Objects inside a NamedNodeMap are not in any particular order, unlike NodeList, although they may be accessed by an index as in an array."><code>NamedNodeMap</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NavigationPreloadManager" title="The NavigationPreloadManager interface of the the Service Worker API provides methods for managing the preloading of resources with a service worker."><code>NavigationPreloadManager</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Navigator" title="The Navigator interface represents the state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities."><code>Navigator</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NavigatorConcurrentHardware" title="The NavigatorConcurrentHardware mixin adds to the Navigator interface features which allow Web content to determine how many logical processors the user has available, in order to let content and Web apps optimize their operations to best take advantage of the user's CPU."><code>NavigatorConcurrentHardware</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NavigatorGeolocation" title="NavigatorGeolocation contains a creation method allowing objects implementing it to obtain a Geolocation instance."><code>NavigatorGeolocation</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NavigatorID" title="The NavigatorID interface contains methods and properties related to the identity of the browser."><code>NavigatorID</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NavigatorLanguage" title="NavigatorLanguage contains methods and properties related to the language of the navigator."><code>NavigatorLanguage</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NavigatorOnLine" title="The NavigatorOnLine interface contains methods and properties related to the connectivity status of the browser."><code>NavigatorOnLine</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NavigatorPlugins" title="The NavigatorPlugins mixin adds to the Navigator interface methods and properties for discovering and interacting with plugins installed into the browser."><code>NavigatorPlugins</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NavigatorStorage" title="The NavigatorStorage mixin adds to the Navigator and WorkerNavigator interfaces the Navigator.storage property, which provides access to the StorageManager singleton used for controlling the persistence of data stores as well as obtaining information"><code>NavigatorStorage</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NetworkInformation" title="The NetworkInformation interface provides information about the connection a device is using to communicate with the network and provides a means for scripts to be notified if the connection type changes. The NetworkInformation interfaces cannot be instantiated. It is instead accessed through the connection property of the Navigator interface."><code>NetworkInformation</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Node" title="Node is an interface from which a number of DOM API object types inherit; it allows these various types to be treated similarly, for example inheriting the same set of methods, or being tested in the same way."><code>Node</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NodeFilter" title="A NodeFilter interface represents an object used to filter the nodes in a NodeIterator or TreeWalker. They don't know anything about the DOM or how to traverse nodes; they just know how to evaluate a single node against the provided filter."><code>NodeFilter</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NodeIterator" title="The NodeIterator interface represents an iterator over the members of a list of the nodes in a subtree of the DOM. The nodes will be returned in document order."><code>NodeIterator</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NodeList" title="NodeList objects are collections of nodes such as those returned by properties such as Node.childNodes and the document.querySelectorAll() method."><code>NodeList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NonDocumentTypeChildNode" title="The NonDocumentTypeChildNode interface contains methods that are particular to Node objects that can have a parent, but not suitable for DocumentType."><code>NonDocumentTypeChildNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Notation" title="Represents a DTD notation (read-only). May declare format of an unparsed entity or formally declare the document's processing instruction targets. Inherits methods and properties from Node. Its nodeName is the notation name. Has no parent."><code>Notation</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/notification" title="The Notification interface of the Notifications API is used to configure and display desktop notifications to the user."><code>Notification</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NotificationEvent" title="The parameter passed into the onnotificationclick handler, the NotificationEvent interface represents a notification click event that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker."><code>NotificationEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/NotifyAudioAvailableEvent" title=""><code>NotifyAudioAvailableEvent</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+</ul>
+<span>O</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OES_element_index_uint" title="The OES_element_index_uint extension is part of the WebGL API and adds support for gl.UNSIGNED_INT types to WebGLRenderingContext.drawElements()."><code>OES_element_index_uint</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OES_standard_derivatives" title="The OES_standard_derivatives extension is part of the WebGL API and adds the GLSL derivative functions dFdx, dFdy, and fwidth."><code>OES_standard_derivatives</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OES_texture_float" title="The OES_texture_float extension is part of the WebGL API and exposes floating-point pixel types for textures."><code>OES_texture_float</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OES_texture_float_linear" title="The OES_texture_float_linear extension is part of the WebGL API and allows linear filtering with floating-point pixel types for textures."><code>OES_texture_float_linear</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OES_texture_half_float" title="The OES_texture_half_float extension is part of the WebGL API and adds texture formats with 16- (aka half float) and 32-bit floating-point components."><code>OES_texture_half_float</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OES_texture_half_float_linear" title="The OES_texture_half_float_linear extension is part of the WebGL API and allows linear filtering with half floating-point pixel types for textures."><code>OES_texture_half_float_linear</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OES_vertex_array_object" title="The OES_vertex_array_object extension is part of the WebGL API and provides vertex array objects (VAOs) which encapsulate vertex array states. These objects keep pointers to vertex data and provide names for different sets of vertex data."><code>OES_vertex_array_object</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OfflineAudioCompletionEvent" title="The Web Audio API OfflineAudioCompletionEvent interface represents events that occur when the processing of an OfflineAudioContext is terminated. The complete event implements this interface."><code>OfflineAudioCompletionEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OfflineAudioContext" title="The OfflineAudioContext interface is an AudioContext interface representing an audio-processing graph built from linked together AudioNodes. In contrast with a standard AudioContext, an OfflineAudioContext doesn't render the audio to the device hardware; instead, it generates it, as fast as it can, and outputs the result to an AudioBuffer."><code>OfflineAudioContext</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OffscreenCanvas" title="The OffscreenCanvas interface provides a canvas that can be rendered off screen. It is available in both the window and worker contexts."><code>OffscreenCanvas</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/OscillatorNode" title="The OscillatorNode interface represents a periodic waveform, such as a sine wave. It is an AudioScheduledSourceNode audio-processing module that causes a specified frequency of a given wave to be created—in effect, a constant tone."><code>OscillatorNode</code></a></span></span></li>
+</ul>
+<span>P</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PageTransitionEvent" title="Page transition events fire when a webpage is being loaded or unloaded."><code>PageTransitionEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PannerNode" title="A PannerNode always has exactly one input and one output: the input can be mono or stereo but the output is always stereo (2 channels); you can't have panning effects without at least two audio channels!"><code>PannerNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ParentNode" title="The ParentNode mixin contains methods and properties that are common to all types of Node objects that can have children. It's implemented by Element, Document, and DocumentFragment objects."><code>ParentNode</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PasswordCredential" title="The interface of the Credential Management API provides information about a username/password pair. In supporting browsers an instance of this class may be passed in the credential member of the init object for global fetch."><code>PasswordCredential</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Path2D" title="The Path2D interface of the Canvas 2D API is used to declare paths that are then later used on CanvasRenderingContext2D objects. The path methods of the CanvasRenderingContext2D interface are present on this interface as well and are allowing you to create paths that you can retain and replay as required on a canvas."><code>Path2D</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PaymentAddress" title="The PaymentAddress interface of the Payment Request API stores address information."><code>PaymentAddress</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PaymentRequest" title="The PaymentRequest interface of the Payment Request API manages the process of a user making a payment."><code>PaymentRequest</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PaymentRequestUpdateEvent" title="The PaymentRequestUpdateEvent interface of the the Payment Request API enables a web page to update the details of a PaymentRequest in response to a user action."><code>PaymentRequestUpdateEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PaymentResponse" title="The PaymentResponse interface of the Payment Request API is returned after a user selects a payment method and approves a payment request."><code>PaymentResponse</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Performance" title="The Performance interface provides access to performance-related information for the current page. It's part of the High Resolution Time API, but is enhanced by the Performance Timeline API, the Navigation Timing API, the User Timing API, and the Resource Timing API."><code>Performance</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceEntry" title="The PerformanceEntry object encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image).  This interface is exposed to Window and Worker."><code>PerformanceEntry</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceFrameTiming" title="PerformanceFrameTiming is an abstract interface that provides frame timing data about the browser's event loop."><code>PerformanceFrameTiming</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceLongTaskTiming" title="The PerformanceLongTaskTiming interface of the the Long Tasks API reports instances of long tasks."><code>PerformanceLongTaskTiming</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceMark" title="PerformanceMark is an abstract interface for PerformanceEntry objects with an entryType of &quot;mark&quot;. Entries of this type are created by calling performance.mark() to add a named DOMHighResTimeStamp (the mark) to the browser's performance timeline."><code>PerformanceMark</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceMeasure" title="PerformanceMeasure is an abstract interface for PerformanceEntry objects with an entryType of &quot;measure&quot;. Entries of this type are created by calling performance.measure() to add a named DOMHighResTimeStamp (the measure) between two marks to the browser's performance timeline."><code>PerformanceMeasure</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceNavigation" title="The PerformanceNavigation interface represents information about how the navigation to the current document was done."><code>PerformanceNavigation</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceNavigationTiming" title="The PerformanceNavigationTiming interface provides methods and properties to store and retrieve metrics regarding the browser's document navigation events. For example, this interface can be used to determine how much time it takes to load or unload a document."><code>PerformanceNavigationTiming</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceObserver" title="The PerformanceObserver interface is used to observe performance measurement events and be notified of new performance entries as they are recorded in the browser's performance timeline."><code>PerformanceObserver</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceObserverEntryList" title="The PerformanceObserverEntryList interface is a list of peformance events that were explicitly observed via the observe() method."><code>PerformanceObserverEntryList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformancePaintTiming" title='The PerformancePaintTiming interface of the Paint Timing provides provides timing information about "paint" (also called "render") operations during web page construction. "Paint" refers to conversion of the render tree to on-screen pixels.'><code>PerformancePaintTiming</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceResourceTiming" title="The PerformanceResourceTiming interface enables retrieving and analyzing detailed network timing data regarding the loading of an application's resources. An application can use the timing metrics to determine, for example, the length of time it takes to fetch a specific resource, such as an XMLHttpRequest, &lt;SVG>, image, or script."><code>PerformanceResourceTiming</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PerformanceTiming" title="The PerformanceTiming interface contains properties that offer performance timing information for various events which occur during the loading and use of the current page. You get a PerformanceTiming object describing your page using the window.performance.timing property."><code>PerformanceTiming</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PeriodicWave" title="PeriodicWave has no inputs or outputs; it is used to define custom oscillators when calling OscillatorNode.setPeriodicWave(). The PeriodicWave itself is created/returned by AudioContext.createPeriodicWave()."><code>PeriodicWave</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PermissionStatus" title="The PermissionStatus interface of the Permissions API provides the state of an object and an event handler for monitoring changes to said state."><code>PermissionStatus</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Permissions" title=""><code>Permissions</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PhotoCapabilities" title="The PhotoCapabilities interface of the the MediaStream Image Capture API provides available configuration options for an attached photographic device. A PhotoCapabilities object is retrieved by calling ImageCapture.getPhotoCapabilities()."><code>PhotoCapabilities</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Plugin" title="The Plugin interface provides information about a browser plugin."><code>Plugin</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PluginArray" title="The PluginArray interface is used to store a list of Plugin objects describing the available plugins; it's returned by the window.navigator.plugins property. The PluginArray is not a JavaScript array, but has the length property and supports accessing individual items using bracket notation (plugins[2]), as well as via item(index) and namedItem(&quot;name&quot;) methods."><code>PluginArray</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Point" title="Point is an interface, which existed only briefly in the CSS Transforms Level 1 specification, which represents a point in 2-dimensional space. It is non-standard, not broadly compatible, and should not be used."><code>Point</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PointerEvent" title="The PointerEvent interface represents the state of a DOM event produced by a pointer such as the geometry of the contact point, the device type that generated the event, the amount of pressure that was applied on the contact surface, etc."><code>PointerEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PopStateEvent" title="An event handler for the popstate event on the window."><code>PopStateEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PortCollection" title=""><code>PortCollection</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Position" title="The Position interface represents the position of the concerned device at a given time. The position, represented by a Coordinates object, comprehends the 2D position of the device, on a spheroid representing the Earth, but also its altitude and its speed."><code>Position</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PositionError" title="The PositionError interface represents the reason of an error occurring when using the geolocating device."><code>PositionError</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PositionOptions" title="The PositionOptions interface describes an object containing option properties to pass as a parameter of Geolocation.getCurrentPosition() and Geolocation.watchPosition()."><code>PositionOptions</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PositionSensorVRDevice" title="The PositionSensorVRDevice interface of the WebVR API represents VR hardware's position sensor. You can access information such as the current position and orientation of the sensor in relation to the head mounted display through the PositionSensorVRDevice.getState() method."><code>PositionSensorVRDevice</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Presentation" title="The Presentation can be defined as two possible user agents in the context: Controlling user agent and Receiving user agent."><code>Presentation</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PresentationAvailability" title="A PresentationAvailability object is associated with available presentation displays and represents the presentation display availability for a presentation request. If the controlling user agent can monitor the list of available presentation displays in the background (without a pending request to start()), the PresentationAvailability object MUST be implemented in a controlling browsing context."><code>PresentationAvailability</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PresentationConnection" title="The PresentationConnection interface of the Presentation API provides methods and properties for managing a single presentation. Each presentation connection is represented by a PresentationConnection object. Both the controlling user agent and receiving user agent MUST implement PresentationConnection."><code>PresentationConnection</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PresentationConnectionAvailableEvent" title="The PresentationConnectionAvailableEvent interface of the Presentation API is fired on a PresentationRequest when a connection associated with the object is created."><code>PresentationConnectionAvailableEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PresentationConnectionCloseEvent" title="The PresentationConnectionCloseEvent interface of the Presentation API is fired on a PresentationConnection when it is closed."><code>PresentationConnectionCloseEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PresentationConnectionClosedEvent" title="A PresentationConnectionClosedEvent is declared when a presentation connection enters a closed state. The reason attribute provides the reason why the connection was closed."><code>PresentationConnectionClosedEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PresentationConnectionList" title="PresentationConnectionList is the collection of incoming presentation connections."><code>PresentationConnectionList</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PresentationReceiver" title="The PresentationReceiver interface of the the Presentation API provides a means for a receiving browsing context to access controlling browsing contexts and communicate with them."><code>PresentationReceiver</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PresentationRequest" title="A PresentationRequest object is used to initiate or reconnect to a presentation made by a controlling browsing context. The PresentationRequest object MUST be implemented in a controlling browsing context provided by a controlling user agent."><code>PresentationRequest</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ProcessingInstruction" title="A processing instruction embeds application-specific instructions in XML which can be ignored by other applications that don't recognize them."><code>ProcessingInstruction</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ProgressEvent" title="The ProgressEvent interface represents events measuring progress of an underlying process, like an HTTP request (for an XMLHttpRequest, or the loading of the underlying resource of an &lt;img>, &lt;audio>, &lt;video>, &lt;style> or &lt;link>)."><code>ProgressEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PromiseRejectionEvent" title="The PromiseRejectionEvent interface represents events which are fired when JavaScript Promises are rejected. These events are particularly useful for telemetry and debugging purposes."><code>PromiseRejectionEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PromiseResolver" title="The PromiseResolver interface represents an object controlling the state and the result value of a Promise."><code>PromiseResolver</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PushEvent" title="The PushEvent interface of the Push API represents a push message that has been received. This event is sent to the global scope of a ServiceWorker. It contains the information sent from an application server to a PushSubscription."><code>PushEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PushManager" title="The PushManager interface of the Push API provides a way to receive notifications from third-party servers as well as request URLs for push notifications."><code>PushManager</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PushMessageData" title="The PushMessageData interface of the Push API provides methods which let you retrieve the push data sent by a server in various formats."><code>PushMessageData</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PushRegistrationManager" title="Returns an interface to register or unregister a push registration, get an active registration, or check the permission status of the registration. This interface has been superceded by PushManager."><code>PushRegistrationManager</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/PushSubscription" title="The PushSubscription interface of the Push API provides a subcription's URL endpoint and allows unsubscription from a push service."><code>PushSubscription</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+
+
+<span>R</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCCertificate" title="The interface of the the WebRTC API provides an object represents a certificate that an RTCPeerConnection uses to authenticate."><code>RTCCertificate</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCConfiguration" title="The RTCConfiguration dictionary is used to provide configuration options for an RTCPeerConnection. It may be passed into the constructor when instantiating a connection, or used with the RTCPeerConnection.getConfiguration() and RTCPeerConnection.setConfiguration() methods, which allow inspecting and changing the configuration while a connection is established."><code>RTCConfiguration</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCDTMFSender" title="tbd"><code>RTCDTMFSender</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCDTMFToneChangeEvent" title="The RTCDTMFToneChangeEvent interface represents events sent to indicate that DTMF tones have started or finished finished playing. This interface is used by the tonechange event."><code>RTCDTMFToneChangeEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCDataChannel" title="The RTCDataChannel interface represents a network channel which can be used for bidirectional peer-to-peer transfers of arbitrary data. Every data channel is associated with an RTCPeerConnection, and each peer connection can have up to a theoretical maximum of 65,534 data channels (the actual limit may vary from browser to browser)."><code>RTCDataChannel</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCDataChannelEvent" title="The RTCDataChannelEvent() constructor returns a new RTCDataChannelEvent object, which represents a datachannel event. These events sent to an RTCPeerConnection when its remote peer is asking to open an RTCDataChannel between the two peers."><code>RTCDataChannelEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCIceCandidate" title="The RTCIceCandidate interface of the the WebRTC API represents a candidate Internet Connectivity Establishment (ICE) server for establishing an RTCPeerConnection."><code>RTCIceCandidate</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCIceServer" title="The RTCIceServer dictionary defines how to connect to a single ICE server (such as a STUN or TURN server). It includes both the URL and the necessary credentials, if any, to connect to the server."><code>RTCIceServer</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCIdentityAssertion" title="The RTCIdentityAssertion interface of the the WebRTC API represents the identity of the a remote peer of the current connection. If no peer has yet been set and verified this interface returns null. Once set it can't be changed."><code>RTCIdentityAssertion</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCIdentityErrorEvent" title="The RTCIdentityErrorEvent interface represents an error associated with the identity provider (idP). This is usually for an RTCPeerConnection. Two events are sent with this type: idpassertionerror and idpvalidationerror."><code>RTCIdentityErrorEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCIdentityEvent" title="The RTCIdentityEvent interface represents an identity assertion generated by an identity provider (idP). This is usually for an RTCPeerConnection. The only event sent with this type is identityresult.."><code>RTCIdentityEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCPeerConnection" title="The RTCPeerConnection interface represents a WebRTC connection between the local computer and a remote peer. It provides methods to connect to a remote peer, maintain and monitor the connection, and close the connection once it's no longer needed."><code>RTCPeerConnection</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCPeerConnectionIceEvent" title="The RTCPeerConnectionIceEvent interface represents events that occurs in relation to ICE candidates with the target, usually an RTCPeerConnection. Only one event is of this type: icecandidate."><code>RTCPeerConnectionIceEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCRtpContributingSource" title="The RTCRtpContributingSource interface of the the WebRTC API provides contains information about a given contributing source (CSRC) including the most recent time a packet that the source contributed was played out."><code>RTCRtpContributingSource</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCRtpReceiver" title="The RTCRtpReceiver interface of the the WebRTC API manages the reception and decoding of data for a MediaStreamTrack on an RTCPeerConnection."><code>RTCRtpReceiver</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCRtpSender" title="tbd"><code>RTCRtpSender</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCSctpTransport" title="The RTCSctpTransport interface provides information which describes a Stream Control Transmission Protocol (SCTP) transport. This provides information about limitations of the transport, but also provides a way to access the underlying Datagram Transport Layer Security (DTLS) transport over which SCTP packets for all of an RTCPeerConnection's data channels are sent and received."><code>RTCSctpTransport</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCSessionDescription" title="The RTCSessionDescription interface describes one end of a connection—or potential connection—and how it's configured. Each RTCSessionDescription consists of a description type indicating which part of the offer/answer negotiation process it describes and of the SDP descriptor of the session."><code>RTCSessionDescription</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCSessionDescriptionCallback" title="The RTCSessionDescriptionCallback type is used to represent the callback function passed into the deprecated callback-based version of createOffer() or createAnswer() when using them to create offers or answers."><code>RTCSessionDescriptionCallback</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RTCStatsReport" title="The RTCStatsReport interface is used to provide statistics data about WebRTC connections as returned by the RTCPeerConnection.getStats(), RTCRtpReceiver.getStats(), and RTCRtpSender.getStats() methods."><code>RTCStatsReport</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RadioNodeList" title="The RadioNodeList interface represents a collection of elements in a &lt;form> or a &lt;fieldset> element."><code>RadioNodeList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RandomSource" title="RandomSource represents a source of cryptographically secure random numbers. It is available via the Crypto object of the global object: Window.crypto on Web pages, WorkerGlobalScope.crypto in workers."><code>RandomSource</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Range" title="The Range interface represents a fragment of a document that can contain nodes and parts of text nodes."><code>Range</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ReadableByteStreamController" title="The ReadableByteStreamController interface of the Streams API represents a controller allowing control of a ReadableStream's state and internal queue. Byte stream controllers are for byte streams."><code>ReadableByteStreamController</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ReadableStream" title="The ReadableStream interface of the Streams API represents a readable stream of byte data. It can be used to handle response streams of the Fetch API. "><code>ReadableStream</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ReadableStreamBYOBReader" title='The ReadableStreamDefaultReader interface of the Streams API represents a BYOB ("bring your own buffer") reader that can be used to read stream data supplied by the developer (e.g. a custom ReadableStream.ReadableSteam() constructor).'><code>ReadableStreamBYOBReader</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ReadableStreamBYOBRequest" title="The ReadableStreamBYOBRequest interface of the Streams API represents a pull request into a ReadableByteStreamController view."><code>ReadableStreamBYOBRequest</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ReadableStreamDefaultController" title="The ReadableStreamDefaultController interface of the Streams API represents a controller allowing control of a ReadableStream's state and internal queue. Default controllers are for streams that are not byte streams. "><code>ReadableStreamDefaultController</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ReadableStreamDefaultReader" title="The ReadableStreamDefaultReader interface of the Streams API represents a default reader that can be used to read stream data supplied from a network (e.g. a fetch request). "><code>ReadableStreamDefaultReader</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/RenderingContext" title="RenderingContext is a WebIDL typedef which can refer to any one of the interfaces that represent a graphics rendering context within a &lt;canvas> element: CanvasRenderingContext2D, WebGLRenderingContext, or WebGL2RenderingContext. By using the shorthand RenderingContext, methods and properties which can make use of any of these interfaces can be specified and written more easily; since &lt;canvas> supports several rendering systems, it's helpful from a specification and browser implementation perspective to have a shorthand that means &quot;one of these interfaces.&quot;"><code>RenderingContext</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Request" title="The Request interface of the Fetch API represents a resource request."><code>Request</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Response" title="The Response interface of the Fetch API represents the response to a request."><code>Response</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+<span>S</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAElement" title="The SVGAElement interface provides access to the properties of &lt;a> element, as well as methods to manipulate them."><code>SVGAElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAltGlyphDefElement" title="The SVGAltGlyphDefElement interface corresponds to the &lt;altGlyphDef> element."><code>SVGAltGlyphDefElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAltGlyphElement" title="The SVGAltGlyphElement interface represents an &lt;altglyph> element. This interface makes it possible to implement more sophisticated and particular glyph characters. For some textal representations as: ligatures (e.g. æ, ß, etc ), special-purpose fonts (e.g. musical symbols) or even alternate glyphs such as Asian text strings it is required that a different set of glyphs be used than the normal given character data."><code>SVGAltGlyphElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAltGlyphItemElement" title="The SVGAltGlyphItemElement interface corresponds to the &lt;altGlyphItem> element."><code>SVGAltGlyphItemElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAngle" title="The SVGAngle interface is used to represent a value that can be an &lt;angle> or &lt;number> value. An SVGAngle reflected through the animVal attribute is always read only."><code>SVGAngle</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimateColorElement" title="The SVGAnimateColorElement interface corresponds to the &lt;animateColor> element."><code>SVGAnimateColorElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimateElement" title="The SVGAnimateElement interface corresponds to the &lt;animate> element."><code>SVGAnimateElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimateMotionElement" title="The SVGAnimateMotionElement interface corresponds to the &lt;animateMotion> element."><code>SVGAnimateMotionElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimateTransformElement" title="The SVGAnimateTransformElement interface corresponds to the &lt;animateTransform> element."><code>SVGAnimateTransformElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedAngle" title="The SVGAnimatedAngle interface is used for attributes of basic type &lt;angle> which can be animated."><code>SVGAnimatedAngle</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedBoolean" title="The SVGAnimatedBoolean interface is used for attributes of type boolean which can be animated."><code>SVGAnimatedBoolean</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedEnumeration" title="The SVGAnimatedEnumeration interface is used for attributes whose value must be a constant from a particular enumeration and which can be animated."><code>SVGAnimatedEnumeration</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedInteger" title="The SVGAnimatedInteger interface is used for attributes of basic type &lt;integer> which can be animated."><code>SVGAnimatedInteger</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedLength" title="The SVGAnimatedLength interface is used for attributes of basic type &lt;length> which can be animated."><code>SVGAnimatedLength</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedLengthList" title="The SVGAnimatedLengthList interface is used for attributes of type SVGLengthList which can be animated."><code>SVGAnimatedLengthList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedNumber" title="The SVGAnimatedNumber interface is used for attributes of basic type &lt;Number> which can be animated."><code>SVGAnimatedNumber</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedNumberList" title="The SVGAnimatedNumber interface is used for attributes which take a list of numbers and which can be animated."><code>SVGAnimatedNumberList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedPoints" title="The SVGAnimatedPoints interface supports elements which have a points attribute which holds a list of coordinate values and which support the ability to animate that attribute."><code>SVGAnimatedPoints</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedPreserveAspectRatio" title="The SVGAnimatedPreserveAspectRatio interface is used for attributes of type SVGPreserveAspectRatio which can be animated."><code>SVGAnimatedPreserveAspectRatio</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedRect" title="The SVGAnimatedRect interface is used for attributes of basic SVGRect which can be animated."><code>SVGAnimatedRect</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedString" title="The SVGAnimatedString interface represents string attributes which can be animated from each SVG declaration. You need to create SVG attribute before doing anything else, everything should be declared inside this."><code>SVGAnimatedString</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimatedTransformList" title="The SVGAnimatedTransformList interface is used for attributes which take a list of numbers and which can be animated."><code>SVGAnimatedTransformList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGAnimationElement" title="The SVGAnimationElement interface is the base interface for all of the animation element interfaces: SVGAnimateElement, SVGSetElement, SVGAnimateColorElement, SVGAnimateMotionElement and SVGAnimateTransformElement."><code>SVGAnimationElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGCircleElement" title="The SVGCircleElement interface is an interface for the &lt;circle> element. The circle element is defined by the cx and cy attributes that denote the coordinates of the centre of the circle."><code>SVGCircleElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGClipPathElement" title="The SVGClipPathElement interface provides access to the properties of &lt;clipPath> elements, as well as methods to manipulate them."><code>SVGClipPathElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGColorProfileElement" title="The SVGColorProfileElement interface corresponds to the &lt;color-profile> element."><code>SVGColorProfileElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGComponentTransferFunctionElement" title="The SVGComponentTransferFunctionElement interface defines a base interface used by the component transfer function interfaces."><code>SVGComponentTransferFunctionElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGCursorElement" title="The SVGCursorElement interface provides access to the properties of &lt;cursor> elements, as well as methods to manipulate them."><code>SVGCursorElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGDefsElement" title="The SVGDefsElement interface corresponds to the &lt;defs> element."><code>SVGDefsElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGDescElement" title="The SVGDescElement interface corresponds to the &lt;desc> element."><code>SVGDescElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGElement" title="All of the SVG DOM interfaces that correspond directly to elements in the SVG language derive from the SVGElement interface."><code>SVGElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGEllipseElement" title="The SVGEllipseElement interface provides access to the properties of &lt;ellipse> elements."><code>SVGEllipseElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGEvent" title="This section contains the Scalable Vector Graphics (SVG) event reference documentation."><code>SVGEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGExternalResourcesRequired" title="The SVGExternalResourcesRequired interface defines an interface which applies to all elements where this element or one of its descendants can reference an external resource."><code>SVGExternalResourcesRequired</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEBlendElement" title="The SVGFEBlendElement interface corresponds to the &lt;feBlend> element."><code>SVGFEBlendElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEComponentTransferElement" title="The SVGFEComponentTransferElement interface corresponds to the &lt;feComponentTransfer> element."><code>SVGFEComponentTransferElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFECompositeElement" title="The SVGFECompositeElement interface corresponds to the &lt;feComposite> element."><code>SVGFECompositeElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEConvolveMatrixElement" title="The SVGFEConvolveMatrixElement interface corresponds to the &lt;feConvolveMatrix> element."><code>SVGFEConvolveMatrixElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEDiffuseLightingElement" title="The SVGFEDiffuseLightingElement interface corresponds to the &lt;feDiffuseLighting> element."><code>SVGFEDiffuseLightingElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEDisplacementMapElement" title="The SVGFEDisplacementMapElement interface corresponds to the &lt;feDisplacementMap> element."><code>SVGFEDisplacementMapElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEDistantLightElement" title="The SVGFEDistantLightElement interface corresponds to the &lt;feDistantLight> element."><code>SVGFEDistantLightElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEDropShadowElement" title="The SVGFEDropShadowElement interface corresponds to the &lt;feDropShadow> element."><code>SVGFEDropShadowElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEFloodElement" title="The SVGFEFloodElement interface corresponds to the &lt;feFlood> element."><code>SVGFEFloodElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEFuncAElement" title="The SVGFEFuncAElement interface corresponds to the &lt;feFuncA> element."><code>SVGFEFuncAElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEFuncBElement" title="The SVGFEFuncBElement interface corresponds to the &lt;feFuncB> element."><code>SVGFEFuncBElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEFuncGElement" title="The SVGFEFuncGElement interface corresponds to the &lt;feFuncG> element."><code>SVGFEFuncGElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEFuncRElement" title="The SVGFEFuncRElement interface corresponds to the &lt;feFuncR> element."><code>SVGFEFuncRElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEGaussianBlurElement" title="The SVGFEGaussianBlurElement interface corresponds to the &lt;feGaussianBlur> element."><code>SVGFEGaussianBlurElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEImageElement" title="The SVGFEImageElement interface corresponds to the &lt;feImage> element."><code>SVGFEImageElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEMergeElement" title="The SVGFEMergeElement interface corresponds to the &lt;feMerge> element."><code>SVGFEMergeElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEMergeNodeElement" title="The SVGFEMergeNodeElement interface corresponds to the &lt;feMergeNode> element."><code>SVGFEMergeNodeElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEMorphologyElement" title="The SVGFEMorphologyElement interface corresponds to the &lt;feMorphology> element."><code>SVGFEMorphologyElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEOffsetElement" title="The SVGFEOffsetElement interface corresponds to the &lt;feOffset> element."><code>SVGFEOffsetElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFEPointLightElement" title="The SVGFEPointLightElement interface corresponds to the &lt;fePointLight> element."><code>SVGFEPointLightElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFESpecularLightingElement" title="The SVGFESpecularLightingElement interface corresponds to the &lt;feSpecularLighting> element."><code>SVGFESpecularLightingElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFESpotLightElement" title="The SVGFESpotLightElement interface corresponds to the &lt;feSpotLight> element."><code>SVGFESpotLightElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFETileElement" title="The SVGFETileElement interface corresponds to the &lt;feTile> element."><code>SVGFETileElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFETurbulenceElement" title="The SVGFETurbulenceElement interface corresponds to the &lt;feTurbulence> element."><code>SVGFETurbulenceElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFilterElement" title="The SVGFilterElement interface provides access to the properties of &lt;filter> elements, as well as methods to manipulate them."><code>SVGFilterElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFilterPrimitiveStandardAttributes" title="The SVGFilterPrimitiveStandardAttributes interface defines the set of DOM attributes that are common across the filter primitive interfaces."><code>SVGFilterPrimitiveStandardAttributes</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFontElement" title="The SVGFontElement interface corresponds to the &lt;font> elements."><code>SVGFontElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFontFaceElement" title="The SVGFontFaceElement interface corresponds to the &lt;font-face> elements."><code>SVGFontFaceElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFontFaceFormatElement" title="The SVGFontFaceFormatElement interface corresponds to the &lt;font-face-format> elements."><code>SVGFontFaceFormatElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFontFaceNameElement" title="The SVGFontFaceNameElement interface corresponds to the &lt;font-face-name> elements."><code>SVGFontFaceNameElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFontFaceSrcElement" title="The SVGFontFaceSrcElement interface corresponds to the &lt;font-face-src> elements."><code>SVGFontFaceSrcElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGFontFaceUriElement" title="The SVGFontFaceUriElement interface corresponds to the &lt;font-face-uri> elements."><code>SVGFontFaceUriElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGForeignObjectElement" title="The SVGForeignObjectElement interface provides access to the properties of &lt;foreignObject> elements, as well as methods to manipulate them."><code>SVGForeignObjectElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGGElement" title="The SVGGElement interface corresponds to the &lt;g> element."><code>SVGGElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGGeometryElement" title="The SVGGeometryElement interface represents SVG elements whose rendering is defined by geometry with an equivalent path, and which can be filled and stroked. This includes paths and the basic shapes."><code>SVGGeometryElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGGlyphElement" title="The SVGGlyphElement interface corresponds to the &lt;glyph> element."><code>SVGGlyphElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGGlyphRefElement" title="The SVGGlyphRefElement interface corresponds to the &lt;glyphRef> elements."><code>SVGGlyphRefElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGGradientElement" title="The SVGGradient interface is a base interface used by SVGLinearGradientElement and SVGRadialGradientElement."><code>SVGGradientElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGGraphicsElement" title="The SVGGraphicsElement interface represents SVG elements whose primary purpose is to directly render graphics into a group."><code>SVGGraphicsElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGHKernElement" title="The SVGHKernElement interface corresponds to the &lt;hkern> elements."><code>SVGHKernElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGImageElement" title="The SVGImageElement interface corresponds to the &lt;image> element."><code>SVGImageElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGLength" title="The SVGLength interface correspond to the &lt;length> basic data type."><code>SVGLength</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGLengthList" title="The SVGLengthList defines a list of SVGLength objects."><code>SVGLengthList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGLineElement" title="The SVGLineElement interface provides access to the properties of &lt;line> elements, as well as methods to manipulate them."><code>SVGLineElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGLinearGradientElement" title="The SVGLinearGradientElement interface corresponds to the &lt;linearGradient> element."><code>SVGLinearGradientElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGMPathElement" title="The SVGMPathElement interface corresponds to the &lt;mpath> element."><code>SVGMPathElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGMaskElement" title="The SVGMaskElement interface provides access to the properties of &lt;mask> elements, as well as methods to manipulate them."><code>SVGMaskElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGMatrix" title="Many of SVG's graphics operations utilize 2x3 matrices of the form:"><code>SVGMatrix</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGMeshElement" title="The SVGMeshElement interface provides access to the properties of &lt;mesh> elements."><code>SVGMeshElement</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGMetadataElement" title="The SVGMetadataElement interface corresponds to the &lt;metadata> element."><code>SVGMetadataElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGMissingGlyphElement" title="The SVGMissingGlyphElement interface corresponds to the &lt;missing-glyph> elements."><code>SVGMissingGlyphElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGNumber" title="The SVGNumber interface corresponds to the &lt;number> basic data type."><code>SVGNumber</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGNumberList" title="The SVGNumberList defines a list of SVGNumber objects."><code>SVGNumberList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGPathElement" title="The SVGPathElement interface corresponds to the &lt;path> element."><code>SVGPathElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGPatternElement" title="The SVGPatternElement interface corresponds to the &lt;pattern> element."><code>SVGPatternElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGPoint" title="An SVGPoint represents a 2D or 3D point in the SVG coordinate system."><code>SVGPoint</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGPolygonElement" title="The SVGPolygonElement interface provides access to the properties of &lt;polygon> elements, as well as methods to manipulate them."><code>SVGPolygonElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGPolylineElement" title="The SVGPolylineElement interface provides access to the properties of &lt;polyline> elements, as well as methods to manipulate them."><code>SVGPolylineElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGPreserveAspectRatio" title="The SVGPreserveAspectRatio interface corresponds to the preserveAspectRatio attribute, which is available for some of SVG's elements."><code>SVGPreserveAspectRatio</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGRadialGradientElement" title="The SVGRadialGradientElement interface corresponds to the &lt;RadialGradient> element."><code>SVGRadialGradientElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGRect" title="The SVGRect represents a rectangle. Rectangles consist of an x and y coordinate pair identifying a minimum x value, a minimum y value, and a width and height, which are constrained to be non-negative."><code>SVGRect</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGRectElement" title="The SVGRectElement interface provides access to the properties of &lt;rect> elements, as well as methods to manipulate them."><code>SVGRectElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGRenderingIntent" title="The SVGRenderingIntent interface defines the enumerated list of possible values for rendering-intent attributes or descriptors."><code>SVGRenderingIntent</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGSVGElement" title="The SVGSVGElement interface provides access to the properties of &lt;svg> elements, as well as methods to manipulate them. This interface contains also various miscellaneous commonly-used utility methods, such as matrix operations and the ability to control the time of redraw on visual rendering devices."><code>SVGSVGElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGScriptElement" title="The SVGScriptElement interface corresponds to the SVG &lt;script> element."><code>SVGScriptElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGSetElement" title="The SVGSetElement interface corresponds to the &lt;set> element."><code>SVGSetElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGSolidcolorElement" title="The SVGSolidcolorElement interface corresponds to the &lt;solidcolor> element."><code>SVGSolidcolorElement</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGStopElement" title="The SVGStopElement interface corresponds to the &lt;stop> element."><code>SVGStopElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGStringList" title="The SVGStringList defines a list of DOMString objects."><code>SVGStringList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGStylable" title="The SVGStylable interface is implemented on all objects corresponding to SVG elements that can have style, class and presentation attributes specified on them."><code>SVGStylable</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGStyleElement" title="The SVGStyleElement interface corresponds to the SVG &lt;style> element."><code>SVGStyleElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGSwitchElement" title="The SVGSwitchElement interface corresponds to the &lt;switch> element."><code>SVGSwitchElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGSymbolElement" title="The SVGSymbolElement interface corresponds to the &lt;symbol> element."><code>SVGSymbolElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTRefElement" title="The SVGTRefElement interface corresponds to the &lt;tref> elements."><code>SVGTRefElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTSpanElement" title="The SVGTSpanElement interface represents a &lt;tspan> element."><code>SVGTSpanElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTests" title="The SVGTests interface is used to reflect conditional processing attributes and is mixed into other interfaces for elements that support these attributes."><code>SVGTests</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTextContentElement" title="The SVGTextContentElement interface is implemented by elements that support rendering child text content. It is inherited by various text-related interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement, SVGAltGlyphElement and SVGTextPathElement."><code>SVGTextContentElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTextElement" title="The SVGTextElement interface corresponds to the &lt;text> elements."><code>SVGTextElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTextPathElement" title="The SVGTextPathElement interface corresponds to the &lt;textPath> element."><code>SVGTextPathElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTextPositioningElement" title="The SVGTextPositioningElement interface is implemented by elements that support attributes that position individual text glyphs. It is inherited by SVGTextElement, SVGTSpanElement, SVGTRefElement and SVGAltGlyphElement."><code>SVGTextPositioningElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTitleElement" title="The SVGTitleElement interface corresponds to the &lt;title> element."><code>SVGTitleElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTransform" title="SVGTransform is the interface for one of the component transformations within an SVGTransformList; thus, an SVGTransform object corresponds to a single component (e.g., scale(…) or matrix(…)) within a transform attribute."><code>SVGTransform</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTransformList" title="The SVGTransformList defines a list of SVGTransform objects."><code>SVGTransformList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGTransformable" title="Interface SVGTransformable contains properties and methods that apply to all elements which have attribute transform."><code>SVGTransformable</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGURIReference" title="The SVGURIReference interface is used to reflect the href attribute and the deprecated xlink:href attribute."><code>SVGURIReference</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGUnitTypes" title="The SVGUnitTypes interface defines a commonly used set of constants used for reflecting gradientUnits, patternContentUnits and other similar attributes."><code>SVGUnitTypes</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGUseElement" title="The SVGUseElement interface corresponds to the &lt;use> element."><code>SVGUseElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGVKernElement" title="The SVGVKernElement interface corresponds to the &lt;vkern> elements."><code>SVGVKernElement</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGViewElement" title="The SVGViewElement interface provides access to the properties of &lt;view> elements, as well as methods to manipulate them."><code>SVGViewElement</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SVGZoomAndPan" title="The SVGZoomAndPan interfaceis used to reflect the zoomAndPan attribute, and is mixed in to other interfaces for elements that support this attribute."><code>SVGZoomAndPan</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Screen" title="The Screen interface represents a screen, usually the one on which the current window is being rendered."><code>Screen</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ScreenOrientation" title="The ScreenOrientation interface of the the Screen Orientation API provides information about the current orientation of the document."><code>ScreenOrientation</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ScriptProcessorNode" title=""><code>ScriptProcessorNode</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SecurityPolicyViolationEvent" title="The SecurityPolicyViolationEvent interface is an event sent on a document or worker when its content security policy is violated."><code>SecurityPolicyViolationEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Selection" title="A Selection object represents the range of text selected by the user or the current position of the caret. To obtain a Selection object for examination or modification, call window.getSelection()."><code>Selection</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ServiceWorker" title="The ServiceWorker interface of the ServiceWorker API provides a reference to a service worker. Multiple browsing contexts (e.g. pages, workers, etc.) can be associated with the same service worker, each through a unique ServiceWorker object."><code>ServiceWorker</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ServiceWorkerContainer" title="The ServiceWorkerContainer interface of the ServiceWorker API provides an object representing the service worker as an overall unit in the network ecosystem, including facilities to register, unregister and update service workers, and access the state of service workers and their registrations."><code>ServiceWorkerContainer</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ServiceWorkerGlobalScope" title="The ServiceWorkerGlobalScope interface of the ServiceWorker API represents the global execution context of a service worker."><code>ServiceWorkerGlobalScope</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ServiceWorkerMessageEvent" title="The ServiceWorkerMessageEvent interface of the ServiceWorker API contains information about an event sent to a ServiceWorkerContainer target. This extends the default message event to allow setting a ServiceWorker object as the source of a message. The event object is accessed via the handler function of a message event, when fired by a message received from a service worker."><code>ServiceWorkerMessageEvent</code></a></span><span class="indexListBadges"> <span title="これは非推奨 API です。未だ動作しているかも知れませんが、将来的に削除される可能性があります。"><i class="icon-thumbs-down-alt"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ServiceWorkerRegistration" title="The ServiceWorkerRegistration interface of the ServiceWorker API represents the service worker registration. You register a service worker to control one or more pages that share the same origin."><code>ServiceWorkerRegistration</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ServiceWorkerState" title="The ServiceWorkerState is associated with its ServiceWorker's state."><code>ServiceWorkerState</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ShadowRoot" title="The ShadowRoot interface of the Shadow DOM API is the root node of a DOM subtree that is rendered separately from a document's main DOM tree."><code>ShadowRoot</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SharedWorker" title="The SharedWorker interface represents a specific kind of worker that can be accessed from several browsing contexts, such as several windows, iframes or even workers. They implement an interface different than dedicated workers and have a different global scope, SharedWorkerGlobalScope."><code>SharedWorker</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SharedWorkerGlobalScope" title="The SharedWorkerGlobalScope object (the SharedWorker global scope) is accessible through the self keyword. Some additional global functions, namespaces objects, and constructors, not typically associated with the worker global scope, but available on it, are listed in the JavaScript Reference. See the complete list of functions available to workers."><code>SharedWorkerGlobalScope</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SourceBuffer" title="The SourceBuffer interface represents a chunk of media to be passed into an HTMLMediaElement and played, via a MediaSource object. This can be made up of one or several media segments."><code>SourceBuffer</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SourceBufferList" title="The SourceBufferList interface represents a simple container list for multiple SourceBuffer objects."><code>SourceBufferList</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechGrammar" title="The SpeechGrammar interface of the Web Speech API represents a set of words or patterns of words that we want the recognition service to recognize."><code>SpeechGrammar</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechGrammarList" title="The SpeechGrammarList interface of the Web Speech API represents a list of SpeechGrammar objects containing words or patterns of words that we want the recognition service to recognize."><code>SpeechGrammarList</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechRecognition" title="The SpeechRecognition interface of the Web Speech API is the controller interface for the recognition service; this also handles the SpeechRecognitionEvent sent from the recognition service."><code>SpeechRecognition</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechRecognitionAlternative" title="The SpeechRecognitionAlternative interface of the Web Speech API represents a single word that has been recognised by the speech recognition service."><code>SpeechRecognitionAlternative</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechRecognitionError" title="The SpeechRecognitionError interface of the Web Speech API represents error messages from the recognition service."><code>SpeechRecognitionError</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechRecognitionEvent" title="The SpeechRecognitionEvent interface of the Web Speech API represents the event object for the result and nomatch events, and contains all the data associated with an interim or final speech recognition result."><code>SpeechRecognitionEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechRecognitionResult" title="The SpeechRecognitionResult interface of the Web Speech API represents a single recognition match, which may contain multiple SpeechRecognitionAlternative objects."><code>SpeechRecognitionResult</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechRecognitionResultList" title="The SpeechRecognitionResultList interface of the Web Speech API represents a list of SpeechRecognitionResult objects, or a single one if results are being captured in continuous mode."><code>SpeechRecognitionResultList</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechSynthesis" title="The SpeechSynthesis interface of the Web Speech API is the controller interface for the speech service; this can be used to retrieve information about the synthesis voices available on the device, start and pause speech, and other commands besides."><code>SpeechSynthesis</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechSynthesisErrorEvent" title="The SpeechSynthesisErrorEvent interface of the Web Speech API contains information about any errors that occur while processing SpeechSynthesisUtterance objects in the speech service."><code>SpeechSynthesisErrorEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechSynthesisEvent" title="The SpeechSynthesisEvent interface of the Web Speech API contains information about the current state of SpeechSynthesisUtterance objects that have been processed in the speech service."><code>SpeechSynthesisEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechSynthesisUtterance" title="The SpeechSynthesisUtterance interface of the Web Speech API represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.)"><code>SpeechSynthesisUtterance</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SpeechSynthesisVoice" title="The SpeechSynthesisVoice interface of the Web Speech API represents a voice that the system supports. Every SpeechSynthesisVoice has its own relative speech service including information about language, name and URI."><code>SpeechSynthesisVoice</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/StereoPannerNode" title="The pan property takes a unitless value between -1 (full left pan) and 1 (full right pan). This interface was introduced as a much simpler way to apply a simple panning effect than having to use a full PannerNode."><code>StereoPannerNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Storage" title="The Storage interface of the Web Storage API provides access to the session storage or local storage for a particular domain, allowing you to for example add, modify or delete stored data items."><code>Storage</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/StorageEstimate" title="The StorageEstimate dictionary is used by the StorageManager to provide estimates of the size of a site's or application's data store and how much of it is in use. The estimate() method returns an object that conforms to this dictionary when its Promise resolves."><code>StorageEstimate</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/StorageEvent" title="A StorageEvent is sent to a window when a storage area it has access to is changed within the context of another document."><code>StorageEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/StorageManager" title="The StorageManager interface of the the Storage API provides an interface for managing persistance permissions and estimating available storage. You can get a reference to this interface using either navigator.storage or WorkerNavigator.storage."><code>StorageManager</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/StorageQuota" title="The storageQuota property of the Navigator interface of the Quota Management API provides means to query and request storage usage and quota information."><code>StorageQuota</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/StyleSheet" title="An object implementing the StyleSheet interface represents a single style sheet. CSS style sheets will further implement the more specialized CSSStyleSheet interface."><code>StyleSheet</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/StyleSheetList" title="Technical review completed."><code>StyleSheetList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SubtleCrypto" title="The SubtleCrypto interface represents a set of cryptographic primitives. It is available via the Crypto.subtle properties available in a window context (via Window.crypto)."><code>SubtleCrypto</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SyncEvent" title="The SyncEvent interface represents a sync action that is dispatched on the ServiceWorkerGlobalScope of a ServiceWorker. "><code>SyncEvent</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/SyncManager" title="The SyncManager interface of the the ServiceWorker API provides an interface for registering and listing sync registrations."><code>SyncManager</code></a></span><span class="indexListBadges"> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></span></span></li>
+</ul>
+<span>T</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TaskAttributionTiming" title="The TaskAttributionTiming interface of the the Long Tasks API returns information about the work involved in a long task and its associate frame context. The frame context, also called the container is the iframe, embed or object etc. that is being implicated, on the whole, for a long task."><code>TaskAttributionTiming</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Text" title="The Text interface represents the textual content of Element or Attr.  If an element has no markup within its content, it has a single child implementing Text that contains the element's text.  However, if the element contains markup, it is parsed into information items and Text nodes that form its children."><code>Text</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TextDecoder" title="The TextDecoder interface represents a decoder for a specific method, that is a specific character encoding, like utf-8, iso-8859-2, koi8, cp1261, gbk, etc. A decoder takes a stream of bytes as input and emits a stream of code points. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays."><code>TextDecoder</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TextEncoder" title="TextEncoder takes a stream of code points as input and emits a stream of bytes. For a more scalable, non-native library, see StringView – a C-like representation of strings based on typed arrays."><code>TextEncoder</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TextMetrics" title="The TextMetrics interface represents the dimension of a text in the canvas, as created by the CanvasRenderingContext2D.measureText() method."><code>TextMetrics</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TextTrack" title="This interface also inherits properties from EventTarget."><code>TextTrack</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TimeEvent" title="Extends Event."><code>TimeEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TimeRanges" title="The TimeRanges interface is used to represent a set of time ranges, primarily for the purpose of tracking which portions of media have been buffered when loading it for use by the &lt;audio> and &lt;video> elements."><code>TimeRanges</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Touch" title="The Touch interface represents a single contact point on a touch-sensitive device. The contact point is commonly a finger or stylus and the device may be a touchscreen or trackpad."><code>Touch</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TouchEvent" title="The TouchEvent interface represents an event sent when the state of contacts with a touch-sensitive surface changes. This surface can be a touch screen or trackpad, for example. The event can describe one or more points of contact with the screen and includes support for detecting movement, addition and removal of contact points, and so forth."><code>TouchEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TouchList" title="The TouchList interface represents a list of contact points with a touch surface; for example, if the user has three fingers on the touch surface (such as a screen or trackpad), the corresponding TouchList object would have one Touch object for each finger, for a total of three entries."><code>TouchList</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TrackDefault" title="The TrackDefault interface provides a SourceBuffer with kind, label, and language information for tracks that do not contain this information in the initialization segments of a media chunk."><code>TrackDefault</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TrackDefaultList" title="The TrackDefaultList interface represents a simple container list for multiple TrackDefault objects."><code>TrackDefaultList</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Transferable" title="The Transferable interface represents an object that can be transfered between different execution contexts, like the main thread and Web workers."><code>Transferable</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TransitionEvent" title="The TransitionEvent interface represents events providing information related to transitions."><code>TransitionEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TreeWalker" title="The TreeWalker object represents the nodes of a document subtree and a position within them."><code>TreeWalker</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/TypeInfo" title=""><code>TypeInfo</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+</ul>
+<span>U</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/UIEvent" title="The UIEvent interface represents simple user interface events."><code>UIEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/URL" title="The URL interface represents an object providing static methods used for creating object URLs."><code>URL</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/URLSearchParams" title="The URLSearchParams interface defines utility methods to work with the query string of a URL."><code>URLSearchParams</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/URLUtilsReadOnly" title="The URLUtilsReadOnly interface defines utility methods to work with URLs. It defines only non-modifying methods intended to be used on data that cannot be changed."><code>URLUtilsReadOnly</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/USVString" title="USVString corresponds to the set of all possible sequences of unicode scalar values. USVString maps to a String when returned in JavaScript; it's generally only used for APIs that perform text processing and need a string of unicode scalar values to operate on. USVString is equivalent to DOMString except for not allowing unpaired surrogate codepoints. Unpaired surrogate codepoints present in USVString are converted by the browser to Unicode 'replacement character' U+FFFD, (�)."><code>USVString</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/UserDataHandler" title="When associating user data with a key on a node, Node.setUserData() can also accept, in its third argument, a handler which will be called when the object is cloned, imported, deleted, renamed, or adopted. Per the specification, exceptions should not be thrown in a UserDataHandler. In both document.importNode() and Node.cloneNode(), although user data is not copied over, the handler will be called."><code>UserDataHandler</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/UserProximityEvent" title="The UserProximityEvent indicates whether a nearby physical object is present by using the proximity sensor of a device."><code>UserProximityEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+<span>V</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRDisplay" title="The VRDisplay interface of the WebVR API represents any VR device supported by this API. It includes generic information such as device IDs and descriptions, as well as methods for starting to present a VR scene, retrieving eye parameters and display capabilities, and other important functionality."><code>VRDisplay</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRDisplayCapabilities" title="The VRDisplayCapabilities interface of the WebVR API describes the capabilities of a VRDisplay — its features can be used to perform VR device capability tests, for example can it return position information."><code>VRDisplayCapabilities</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRDisplayEvent" title="The VRDisplayEvent interface of the WebVR API represents represents the event object of WebVR-related events (see the list of WebVR window extensions)."><code>VRDisplayEvent</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VREyeParameters" title="The VREyeParameters interface of the WebVR API represents all the information required to correctly render a scene for a given eye, including field of view information."><code>VREyeParameters</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRFieldOfView" title="The VRFieldOfView interface of the WebVR API represents a field of view defined by 4 different degree values describing the view from a center point."><code>VRFieldOfView</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRFieldOfViewReadOnly" title="The VRFieldOfViewReadOnly interface of the WebVR API contains the raw definition for the degree value properties required to define a field of view. Inherited by VRFieldOfView."><code>VRFieldOfViewReadOnly</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRFrameData" title="The VRFrameData interface of the WebVR API represents all the information needed to render a single frame of a VR scene; constructed by VRDisplay.getFrameData()."><code>VRFrameData</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRLayerInit" title="The VRLayerInit interface (dictionary) of the WebVR API represents a content layer (an HTMLCanvasElement or OffscreenCanvas) that you want to present in a VR display."><code>VRLayerInit</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRPose" title="The VRPose interface of the WebVR API represents the state of a VR sensor at a given timestamp (which includes orientation, position, velocity, and acceleration information.)"><code>VRPose</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VRStageParameters" title="The VRStageParameters interface of the WebVR API represents the values describing the the stage area for devices that support room-scale experiences."><code>VRStageParameters</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VTTCue" title="VTTCues represent a cue in a text track."><code>VTTCue</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/ValidityState" title="The ValidityState interface represents the validity states that an element can be in, with respect to constraint validation. Together, they help explain why an element's value fails to validate, if it's not valid."><code>ValidityState</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VideoPlaybackQuality" title="The VideoPlaybackQuality interface represents the set of metrics describing the playback quality of a video."><code>VideoPlaybackQuality</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/VisualViewport" title="The VisualViewport interface of the the Visual Viewport API represents the visual viewport for a given window. For a page containing iframes, each iframe, as well as the containing page, will have a unique window object. Each window on a page will have a unique VisualViewport representing the properties associated with that window. You can get a window's viewport using Window.visualViewport."><code>VisualViewport</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+<span>W</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_color_buffer_float" title="The WEBGL_color_buffer_float extension is part of the WebGL API and adds the ability to render to 32-bit floating-point color buffers."><code>WEBGL_color_buffer_float</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_compressed_texture_astc" title="The WEBGL_compressed_texture_astc extension is part of the WebGL API and exposes Adaptive Scalable Texture Compression (ASTC) compressed texture formats to WebGL."><code>WEBGL_compressed_texture_astc</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_compressed_texture_atc" title="The WEBGL_compressed_texture_atc extension is part of the WebGL API and exposes 3 ATC compressed texture formats. ATC is a proprietary compression algorithm for compressing textures on handheld devices."><code>WEBGL_compressed_texture_atc</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_compressed_texture_etc" title="The WEBGL_compressed_texture_etc extension is part of the WebGL API and exposes 10 ETC/EAC compressed texture formats."><code>WEBGL_compressed_texture_etc</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_compressed_texture_etc1" title="The WEBGL_compressed_texture_etc1 extension is part of the WebGL API and exposes the ETC1 compressed texture format."><code>WEBGL_compressed_texture_etc1</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_compressed_texture_pvrtc" title="The WEBGL_compressed_texture_pvrtc extension is part of the WebGL API and exposes four PVRTC compressed texture formats."><code>WEBGL_compressed_texture_pvrtc</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_compressed_texture_s3tc" title="The WEBGL_compressed_texture_s3tc extension is part of the WebGL API and exposes four S3TC compressed texture formats."><code>WEBGL_compressed_texture_s3tc</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_compressed_texture_s3tc_srgb" title="The WEBGL_compressed_texture_s3tc_srgb extension is part of the WebGL API and exposes four S3TC compressed texture formats for the sRGB colorspace."><code>WEBGL_compressed_texture_s3tc_srgb</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_debug_renderer_info" title="The WEBGL_debug_renderer_info extension is part of the WebGL API and exposes two constants with information about the graphics driver for debugging purposes."><code>WEBGL_debug_renderer_info</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_debug_shaders" title="The WEBGL_debug_shaders extension is part of the WebGL API and exposes a method to debug shaders from privileged contexts."><code>WEBGL_debug_shaders</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_depth_texture" title="The WEBGL_depth_texture extension is part of the WebGL API and defines 2D depth and depth-stencil textures."><code>WEBGL_depth_texture</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_draw_buffers" title="The WEBGL_draw_buffers extension is part of the WebGL API and enables a fragment shader to write to several textures, which is useful for deferred shading, for example."><code>WEBGL_draw_buffers</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WEBGL_lose_context" title="The WEBGL_lose_context extension is part of the WebGL API and exposes functions to simulate losing and restoring a WebGLRenderingContext."><code>WEBGL_lose_context</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WaveShaperNode" title="A WaveShaperNode always has exactly one input and one output."><code>WaveShaperNode</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGL2RenderingContext" title="The WebGL2RenderingContext interface provides the OpenGL ES 3.0 rendering context for the drawing surface of an HTML &lt;canvas> element."><code>WebGL2RenderingContext</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLActiveInfo" title="The WebGLActiveInfo interface is part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getActiveAttrib() and WebGLRenderingContext.getActiveUniform() methods."><code>WebGLActiveInfo</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLBuffer" title="The WebGLBuffer interface is part of the WebGL API and represents an opaque buffer object storing data such as vertices or colors."><code>WebGLBuffer</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLContextEvent" title="The WebContextEvent interface is part of the WebGL API and is an interface for an event that is generated in response to a status change to the WebGL rendering context."><code>WebGLContextEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLFramebuffer" title="The WebGLFramebuffer interface is part of the WebGL API and represents a collection of buffers that serve as a rendering destination."><code>WebGLFramebuffer</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLProgram" title="The WebGLProgram is part of the WebGL API and is a combination of two compiled WebGLShaders consisting of a vertex shader and a fragment shader (both written in GLSL). These are then linked into a usable program."><code>WebGLProgram</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLQuery" title="The WebGLQuery interface is part of the WebGL 2 API and provides ways to asynchronously query for information. By default, occlusion queries and primitive queries are available."><code>WebGLQuery</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLRenderbuffer" title="The WebGLRenderbuffer interface is part of the WebGL API and represents a buffer that can contain an image, or can be source or target of an rendering operation."><code>WebGLRenderbuffer</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLRenderingContext" title="The WebGLRenderingContext interface provides the OpenGL ES 2.0 rendering context for the drawing surface of an HTML &lt;canvas> element."><code>WebGLRenderingContext</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLSampler" title="The WebGLSampler interface is part of the WebGL 2 API and stores sampling parameters for WebGLTexture access inside of a shader."><code>WebGLSampler</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLShader" title="The WebGLShader is part of the WebGL API and can either be a vertex or a fragment shader. A WebGLProgram requires both types of shaders."><code>WebGLShader</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLShaderPrecisionFormat" title="The WebGLShaderPrecisionFormat interface is part of the WebGL API and represents the information returned by calling the WebGLRenderingContext.getShaderPrecisionFormat() method."><code>WebGLShaderPrecisionFormat</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLSync" title="The WebGLSync interface is part of the WebGL 2 API and is used to synchronize activities between the GPU and the application."><code>WebGLSync</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLTexture" title="The WebGLTexture interface is part of the WebGL API and represents an opaque texture object providing storage and state for texturing operations."><code>WebGLTexture</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLTransformFeedback" title="The WebGLTransformFeedback interface is part of the WebGL 2 API and enables transform feedback, which is the process of capturing primitives generated by vertex processing. It allows to preserve the post-transform rendering state of an object and resubmit this data multiple times."><code>WebGLTransformFeedback</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLUniformLocation" title="The WebGLUniformLocation interface is part of the WebGL API and represents the location of a uniform variable in a shader program."><code>WebGLUniformLocation</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebGLVertexArrayObject" title="The WebGLVertexArrayObject interface is part of the WebGL 2 API, represents vertex array objects (VAOs) pointing to vertex array data, and provides names for different sets of vertex data."><code>WebGLVertexArrayObject</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebSocket" title="The WebSocket object provides the API for creating and managing a WebSocket connection to a server, as well as for sending and receiving data on the connection."><code>WebSocket</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WebSockets_API" title="WebSockets is an advanced technology that makes it possible to open an interactive communication session between the user's browser and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply."><code>WebSockets</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WheelEvent" title="The WheelEvent interface represents events that occur due to the user moving a mouse wheel or similar input device."><code>WheelEvent</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Window" title="The window object represents a window containing a DOM document; the document property points to the DOM document loaded in that window."><code>Window</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WindowBase64" title="The WindowBase64 helper contains utility methods to convert data to and from base64, a binary-to-text encoding scheme. For example it is used in data URIs."><code>WindowBase64</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WindowClient" title="The WindowClient interface of the ServiceWorker API represents the scope of a service worker client that is a document in a browser context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources."><code>WindowClient</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WindowEventHandlers" title="WindowEventHandlers mixin describes the event handlers common to several interfaces like Window, or HTMLBodyElement and  HTMLFrameSetElement. Each of these interfaces can implement additional specific event handlers."><code>WindowEventHandlers</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WindowOrWorkerGlobalScope" title="The WindowOrWorkerGlobalScope mixin describes several features common to the Window and WorkerGlobalScope interfaces. Each of these interfaces can, of course, add more features in addition to the ones listed below."><code>WindowOrWorkerGlobalScope</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WindowTimers" title="WindowTimers is a mixin used to provide utility methods which set and clear timers. No objects of this type exist; instead, its methods are available on Window for the standard browsing scope, or on WorkerGlobalScope for workers."><code>WindowTimers</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/Worker" title="The Worker interface of the Web Workers API represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread."><code>Worker</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WorkerGlobalScope" title="The WorkerGlobalScope interface of the Web Workers API is an interface representing the scope of any worker. Workers have no browsing context; this scope contains the information usually conveyed by Window objects — in this case event handlers, the console or the associated WorkerNavigator object. Each WorkerGlobalScope has its own event loop."><code>WorkerGlobalScope</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WorkerLocation" title="The WorkerLocation interface defines the absolute location of the script executed by the Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.location property obtained by calling window.self.location."><code>WorkerLocation</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WorkerNavigator" title="The WorkerNavigator interface represents a subset of the Navigator interface allowed to be accessed from a Worker. Such an object is initialized for each worker and is available via the WorkerGlobalScope.navigator property obtained by calling window.self.navigator."><code>WorkerNavigator</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WritableStream" title="The WritableStream interface of the the Streams API provides a standard abstraction for writing streaming data to a destination, known as a sink. This object comes with build-in backpressure and queuing."><code>WritableStream</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WritableStreamDefaultController" title="The WritableStreamDefaultController interface of the the Streams API represents a controller allowing control of a WritableStream's state. When constructing a WritableStream, the underlying sink is given a corresponding WritableStreamDefaultController instance to manipulate."><code>WritableStreamDefaultController</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/WritableStreamDefaultWriter" title="The WritableStreamDefaultWriter interface of the the Streams API is the object returned by WritableStream.getWriter() and once created locks the &lt; writer to the WritableStream ensuring that no other streams can write to the underlying sink."><code>WritableStreamDefaultWriter</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+</ul>
+<span>X</span><ul>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/XDomainRequest" title="XDomainRequest is an implementation of HTTP access control (CORS) that worked in Internet Explorer 8 and 9. It was removed in Internet Explorer 10 in favor of using XMLHttpRequest with proper CORS; if you are targeting Internet Explorer 10 or later, or wish to support any other browser, you need to use standard HTTP access control."><code>XDomainRequest</code></a></span><span class="indexListBadges"> <span title="これは廃止されたAPIであり、今後の動作は保障されていません。ご注意下さい。"><i class="icon-trash"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/XMLDocument" title="The XMLDocument interface represent an XML document. It inherits from the generic Document and does not add any specific methods or properties to it: nevertheless, several algorithms behave differently with the two types of documents."><code>XMLDocument</code></a></span><span class="indexListBadges"> <span title="これは実験段階の API です。製品内のコードで使用しないようご注意ください。"><i class="icon-beaker"> </i></span></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/XMLHttpRequest" title="XMLHttpRequest objects to interact with servers. You can retrieve data from a URL without having to do a full page refresh. This enables a Web page to update just part of a page without disrupting what the user is doing."><code>XMLHttpRequest</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/XMLHttpRequestEventTarget" title="XMLHttpRequestEventTarget is the interface that describes the event handlers you can implement in an object that will handle events for an XMLHttpRequest."><code>XMLHttpRequestEventTarget</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/XMLSerializer" title=""><code>XMLSerializer</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/XPathExpression" title="An XPathExpression is a compiled XPath query returned from document.createExpression(). It has a method evaluate() which can be used to execute the compiled XPath."><code>XPathExpression</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/XPathResult" title=""><code>XPathResult</code></a></span></span></li>
+<li><span class="indexListRow"><span class="indexListTerm"><a href="/ja/docs/Web/API/XSLTProcessor" title="An XSLTProcessor applies an XSLT stylesheet transformation to an XML document to produce a new XML document as output. It has methods to load the XSLT stylesheet, to manipulate &lt;xsl:param> parameter values, and to apply the transformation to documents."><code>XSLTProcessor</code></a></span></span></li>
+</ul>
+
+
+
+
+
+</div><p></p>
diff --git a/files/ja/archive/b2g_os/api/mozndefrecord/index.html b/files/ja/archive/b2g_os/api/mozndefrecord/index.html
new file mode 100644
index 0000000000..708f45ecf0
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/mozndefrecord/index.html
@@ -0,0 +1,127 @@
+---
+title: MozNDEFRecord
+slug: Archive/B2G_OS/API/MozNDEFRecord
+tags:
+ - API
+ - Firefox OS
+ - Interface
+ - MozNDEFRecord
+ - NDEFRecord
+ - NFC
+ - Reference
+translation_of: Archive/B2G_OS/API/MozNDEFRecord
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/NFC_API">NFC API</a></strong></li><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>NFC API に関連するページ</summary><ol><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNDEFRecord"><code>MozNDEFRecord</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFC"><code>MozNFC</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFCPeer"><code>MozNFCPeer</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFCTag"><code>MozNFCTag</code></a></li></ol></details></li></ol></section> <div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> 上の<a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security#App_Types">特権付きアプリ、または認定済みアプリ</a>からのみ有効になります。</p>
+</div><p></p>
+
+<p><code>MozNDEFRecord</code> はNFC データ交換フォーマット (NDEF) を実装するデータ構造です。これはアプリ、NFCタグ、デバイスの間で NFC関連のデータ通信をするための標準的な共通フォーマットです。</p>
+
+<h2 id="文法">文法</h2>
+
+<pre class="syntaxbox">MozNDEFRecord(optional MozNDEFRecordOptions options);
+dictionary MozNDEFRecordOptions {
+ TNF tnf = "empty";
+  Uint8Array type;
+  Uint8Array id;
+  Uint8Array payload;
+};
+</pre>
+
+<h2 id="プロパティ">プロパティ</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/MozNDEFRecord/tnf" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNDEFRecord.tnf</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd><span class="st"><code>tnf</code> は、レコードのタイプ名フォーマット (3-bit フィールド) を含みます。この項目は必須です。</span></dd>
+ <dt><a href="/ja/docs/Web/API/MozNDEFRecord/type" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNDEFRecord.type</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd><code>type</code> はペイロードのコンテンツを記述したオプションのフィールドです。通常はMIMEタイプになります。</dd>
+</dl>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/MozNDEFRecord/id" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNDEFRecord.id</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd><code>id</code> は <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array" title='Uint8Array タイプは、8 ビット符号なし整数値の配列を表します。各要素は0で初期化されます。生成された Uint8Array オブジェクトのメソッドあるいは配列のような表記法 ("[]") を用いて、要素を参照することができます。'><code>Uint8Array</code></a> を表すオプションのフィールドです。このフィールドの意味はアプリケーション依存です (機能性によって、適切なidが使用できます)</dd>
+ <dt><a href="/ja/docs/Web/API/MozNDEFRecord/payload" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNDEFRecord.payload</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd><code>payload</code> は <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array" title='Uint8Array タイプは、8 ビット符号なし整数値の配列を表します。各要素は0で初期化されます。生成された Uint8Array オブジェクトのメソッドあるいは配列のような表記法 ("[]") を用いて、要素を参照することができます。'><code>Uint8Array</code></a> を表すオプションのフィールドです。。このフィールドの意味はアプリケーション依存です (例えば、連絡帳アプリでは、URLや、MIMEタイプや、住所などを含みます)</dd>
+</dl>
+
+<h2 id="仕様">仕様</h2>
+
+<p>Gecko での NFC の実装は、<a href="http://members.nfc-forum.org/specs/">NFC フォーラムの仕様</a>に従っています。</p>
+
+<dl>
+</dl>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ互換性</h2>
+
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>基本部分</td>
+ <td>
+ <p><span style="color: #f00;">未サポート</span></p>
+ </td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS (Gecko)</th>
+ <th>IE Phone</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>基本部分</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>2.0 <span class="inlineIndicator prefixBox prefixBoxInline" title="prefix"><a href="/ja/docs/Web/Guide/Prefixes" title="The name of this feature is prefixed with 'moz' as this browser considers it experimental">moz</a></span> [1]</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Firefox OS 2.2 以降では、特権付きアプリから利用可能; それより前のバージョンでは、認定アプリでのみ利用可能。</p>
+
+<h2 id="こちらも見よ">こちらも見よ</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ja/docs/Web/API/NFC_API/Using_the_NFC_API">Using the NFC API</a></li>
+ <li><a href="https://developer.mozilla.org/ja/docs/Web/API/NFC_API/Using_the_NFC_emulator">Using the NFC emulator</a></li>
+ <li>NFC Forum <a href="http://members.nfc-forum.org/specs/spec_list/#ndefts">Data Exchange Format Technical Specification</a></li>
+ <li><a href="http://www.w3.org/TR/2014/WD-nfc-20140114/#idl-def-NDEFRecord">Draft W3C NDEF-related formats</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/moznfcpeer/index.html b/files/ja/archive/b2g_os/api/moznfcpeer/index.html
new file mode 100644
index 0000000000..26d9ae5eb4
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/moznfcpeer/index.html
@@ -0,0 +1,113 @@
+---
+title: MozNFCPeer
+slug: Archive/B2G_OS/API/MozNFCPeer
+translation_of: Archive/B2G_OS/API/MozNFCPeer
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/NFC_API">NFC API</a></strong></li><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>NFC API に関連するページ</summary><ol><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNDEFRecord"><code>MozNDEFRecord</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFC"><code>MozNFC</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFCPeer"><code>MozNFCPeer</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFCTag"><code>MozNFCTag</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> 上の<a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security#App_Types">特権付きアプリ、または認定済みアプリ</a>からのみ有効になります。</p>
+</div><p></p>
+
+<div class="summary">
+<p><code>NFCPeer</code> は、他のNFC対応デバイスと相互作用するピアツーピア (P2P)インターフェイスを提供します。これは NDEF メッセージの送信と、ファィル送信に使われます。</p>
+</div>
+
+<h2 id="メソッド">メソッド</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/MozNFCPeer/sendFile" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCPeer.sendFile()</code></a></dt>
+ <dd><code>sendFile()</code> sends files to other NFC-enabled devices. This should be called inside a <a href="/ja/docs/Web/API/MozNFC/onpeerfound" title="MozNFC インターフェースの onpeerfound イベントハンドラは、MozNFCPeer が検出された時にの呼び出されます 。"><code>mozNFC.onpeerfound()</code></a> event callback. <strong> This method is available in certified apps only.</strong></dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCPeer/sendNDEF" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCPeer.sendNDEF()</code></a></dt>
+ <dd><code>sendNDEF()</code> sends NDEF Messages to other NFC-enabled devices. This should be called inside a <a href="/ja/docs/Web/API/MozNFC/onpeerfound" title="MozNFC インターフェースの onpeerfound イベントハンドラは、MozNFCPeer が検出された時にの呼び出されます 。"><code>mozNFC.onpeerfound()</code></a> event callback.</dd>
+</dl>
+
+<h2 id="サンプル">サンプル</h2>
+
+<pre class="brush: js">navigator.mozNfc.onpeerfound = function (evt) {
+ var peer = evt.peer;
+ // ndef is an instance of MozNDEFRecord contains the shared data, like URL.
+ peer.sendNDEF([ndef]);
+};
+</pre>
+
+<h2 id="仕様">仕様</h2>
+
+<p>The NFC implementation in Gecko follows the <a href="http://members.nfc-forum.org/specs/">NFC Forum specifications</a>.</p>
+
+<dl>
+</dl>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ互換性</h2>
+
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>
+ <p><span style="color: #f00;">未サポート</span></p>
+ </td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS (Gecko)</th>
+ <th>IE Phone</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>2.0 <span class="inlineIndicator prefixBox prefixBoxInline" title="prefix"><a href="/ja/docs/Web/Guide/Prefixes" title="The name of this feature is prefixed with 'moz' as this browser considers it experimental">moz</a></span> [1]</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Available in privileged apps as of Firefox OS 2.2; certified-only before that.</p>
+
+<h2 id="こちらも見よ">こちらも見よ</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/NFC_API/Using_the_NFC_API">Using the NFC API</a></li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/NFC_API/Using_the_NFC_emulator">Using the NFC emulator</a></li>
+ <li><a class="external external-icon" href="http://www.adafruit.com/datasheets/Introduction_to_NFC_v1_0_en.pdf">Introduction to NFC</a> (fairly long reference doc, featuring general NFC terms, and some Nokia platform specifics.)</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/moznfctag/index.html b/files/ja/archive/b2g_os/api/moznfctag/index.html
new file mode 100644
index 0000000000..0625c8b98c
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/moznfctag/index.html
@@ -0,0 +1,134 @@
+---
+title: MozNFCTag
+slug: Archive/B2G_OS/API/MozNFCTag
+tags:
+ - API
+ - Firefox OS
+ - MozNFCTag
+ - NFC
+ - NFCTag
+ - Reference
+translation_of: Archive/B2G_OS/API/MozNFCTag
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/NFC_API">NFC API</a></strong></li><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>NFC API に関連するページ</summary><ol><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNDEFRecord"><code>MozNDEFRecord</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFC"><code>MozNFC</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFCPeer"><code>MozNFCPeer</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozNFCTag"><code>MozNFCTag</code></a></li></ol></details></li></ol></section><p></p>
+
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> 上の<a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security#App_Types">特権付きアプリ、または認定済みアプリ</a>からのみ有効になります。</p>
+</div><p></p>
+
+<p><code>MozNFCTag</code> は NDEF-コンパチな NFC を読み書き、検査するのに必要な基本機能を含みます。</p>
+
+<h2 id="メソッド">メソッド</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/makeReadOnly" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.makeReadOnly()</code></a></dt>
+ <dd>Calling <code>makeReadOnly()</code> will make the NDEF stored on this tag read only. <strong>Avalable in Firefox OS 2.2+</strong>.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/format" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.format()</code></a></dt>
+ <dd>Formats this tag as NDEF-compatible. <strong>Avalable in Firefox OS 2.2+</strong>.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/readNDEF" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.readNDEF()</code></a></dt>
+ <dd><code>readNDEF()</code> retrieves the NDEF contents stored on this Tag, and returns the NDEF as an array of <a href="/ja/docs/Web/API/MozNDEFRecord" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNDEFRecord</code></a> objects.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/writeNDEF" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.writeNDEF()</code></a></dt>
+ <dd><code>writeNDEF()</code> takes an array of <a href="/ja/docs/Web/API/MozNDEFRecord" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNDEFRecord</code></a> objects, and writes them to a NDEF-compatible tag.</dd>
+</dl>
+
+<h2 id="プロパティ">プロパティ</h2>
+
+<dl>
+ <dt><span style="display: none;"> </span><a href="/ja/docs/Web/API/MozNFCTag/techList" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.techList</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>The supported NFC Technologies of this tag.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/id" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.id</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>The identifier of this tag.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/type" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.type</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>The type of this tag,</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/maxNDEFSize" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.maxNDEFSize</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>The maximum size of NDEF can be stored on this tag.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/isReadOnly" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.isReadOnly</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>Indicate whether the NDEF content stored on this tag read-only or not.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/isFormatable" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.isFormatable</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>Inidicate whether this tag is NDEF-compatible or not.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/canBeMadeReadOnly" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.canBeMadeReadOnly</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>Indicate whether the NDEF stored on this tag could be configured as read-only or not.</dd>
+ <dt><a href="/ja/docs/Web/API/MozNFCTag/isLost" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozNFCTag.isLost</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>Indicate whether if this tag is already lost. (i.e. is moved out of range)<span style="display: none;"> </span></dd>
+</dl>
+
+<h2 id="仕様">仕様</h2>
+
+<p>The NFC implementation in Gecko follows the <a href="http://members.nfc-forum.org/specs/">NFC Forum specifications</a>.</p>
+
+<dl>
+</dl>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ互換性</h2>
+
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td>
+ <p><span style="color: #f00;">未サポート</span></p>
+ </td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS (Gecko)</th>
+ <th>IE Phone</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>2.0 <span class="inlineIndicator prefixBox prefixBoxInline" title="prefix"><a href="/ja/docs/Web/Guide/Prefixes" title="The name of this feature is prefixed with 'moz' as this browser considers it experimental">moz</a></span> [1]</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<p>[1] Available in privileged apps as of Firefox OS 2.2; certified-only before that.</p>
+
+<h2 id="こちらも見よ">こちらも見よ</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/NFC_API/Using_the_NFC_API">Using the NFC API</a></li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/API/NFC_API/Using_the_NFC_emulator">Using the NFC emulator</a></li>
+ <li><a class="external external-icon" href="http://www.adafruit.com/datasheets/Introduction_to_NFC_v1_0_en.pdf">Introduction to NFC</a> (fairly long reference doc, featuring general NFC terms, and some Nokia platform specifics.)</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/navigator/index.html b/files/ja/archive/b2g_os/api/navigator/index.html
new file mode 100644
index 0000000000..9baa00de3c
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/navigator/index.html
@@ -0,0 +1,29 @@
+---
+title: Navigator (Firefox OS extensions)
+slug: Archive/B2G_OS/API/Navigator
+tags:
+ - API
+ - Firefox OS
+ - Interface
+ - Navigator
+ - NeedsTranslation
+ - Non-standard
+ - TopicStub
+translation_of: Archive/B2G_OS/API/Navigator
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Archive"><code>Archive</code></a></strong></li></ol></section><p></p>
+
+<p>The <code><strong>Navigator</strong></code> interface represents the state and the identity of the user agent. It allows scripts to query it and to register themselves to carry on some activities. This page represents the list of properties and methods added to <code>Navigator</code> on Firefox OS devices. For the list of properties and methods available to any Web sites, consult <a href="/ja/docs/Web/API/Navigator" title="Navigator インターフェイスは、ユーザーエージェントの状態や身元情報を表します。スクリプトからその情報を問い合わる、および活動を続けるためにそれら自体を登録することができます。"><code>Navigator</code></a>.</p>
+
+<p>A <code>Navigator</code> object can be retrieved using the read-only <a href="/ja/docs/Web/API/Window/navigator" title="navigator オブジェクトへの参照を返します。 navigator オブジェクトを用いることで、スクリプトを実行しているアプリケーションについての情報を得ることができます。"><code>Window.navigator</code></a> property.</p>
+
+<h2 id="Properties">Properties</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/Navigator/Bluetooth" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Navigator.Bluetooth</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></dt>
+ <dd>Returns a <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Promise" title="Promise オブジェクトは非同期処理の最終的な完了処理(もしくは失敗)およびその結果の値を表現します。"><code>Promise</code></a> to a <a href="/ja/docs/Web/API/BluetoothDevice" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothDevice</code></a> object with the specified options.</dd>
+ <dt><a href="/ja/docs/Web/API/Navigator/mozApps" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Navigator.mozApps</code></a> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></dt>
+ <dd>Returns an <a href="/ja/docs/Web/API/Window/navigator/mozApps" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Apps</code></a> object you can use to install, manage, and control <a href="/Open_Web_Apps" title="Open Web apps">Open Web apps</a>.</dd>
+ <dt><a href="/ja/docs/Web/API/Navigator/mozAudioChannelManager" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Navigator.mozAudioChannelManager</code></a> <span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span></dt>
+ <dd>The <code>navigator.mozAudioChannelManager</code> object provides access to the <a href="/ja/docs/Web/API/MozAudioChannelManager" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>mozAudioChannelManager</code></a> interface, which is used to manage your Firefox OS device's audio channels, including setting what channel's volume to affect when the volume buttons are pressed inside a particular app.</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/api/navigator/mozapps/index.html b/files/ja/archive/b2g_os/api/navigator/mozapps/index.html
new file mode 100644
index 0000000000..160f21a965
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/navigator/mozapps/index.html
@@ -0,0 +1,82 @@
+---
+title: window.navigator.mozApps
+slug: Archive/B2G_OS/API/Navigator/mozApps
+tags:
+ - API
+ - Apps
+ - Apps API
+ - Non-standard
+ - Property
+translation_of: Archive/B2G_OS/API/Navigator/mozApps
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Web/API/Archive"><code>Archive</code></a></strong></li></ol></section><p></p>
+<p></p><div class="overheadIndicator nonStandard nonStandardHeader">
+ <p><strong><span title="この API は標準化されていません。"><i class="icon-warning-sign"> </i></span> 非標準</strong><br>
+ この機能は標準ではなく、標準化の予定もありません。公開されているウェブサイトには使用しないでください。ユーザーによっては使用できないことがあります。実装ごとに大きな差があることもあり、将来は振る舞いが変わるかもしれません。</p>
+ </div><p></p>
+<h2 id="Summary" name="Summary">概要</h2>
+<p>ブラウザ内で <a href="/ja/docs/Web/Apps">Open Web Apps</a> をインストール、管理、コントロールするために使用できる <a href="/ja/docs/Web/API/Apps" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Apps</code></a> オブジェクトを返します。</p>
+<h2 id="Syntax" name="Syntax">構文</h2>
+<pre class="eval">var <em>apps</em> = window.navigator.mozApps;
+</pre>
+<h2 id="Value" name="Value">値</h2>
+<p><code>navigator.mozApps</code> は、ブラウザ内で <a href="/ja/docs/Web/Apps">Open Web Apps</a> をインストール、管理、コントロールするために使用できる <a href="/ja/docs/Web/API/Apps" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Apps</code></a> オブジェクトです。</p>
+<h2 id="Specification" name="Specification">仕様</h2>
+<p>どの仕様書にも書かれていません。<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=697383" title="FIXED: implement navigator.mozApps">バグ 697383</a> に基づき Gecko に実装されています。</p>
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+<div id="compat-desktop">
+ <table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>基本実装</td>
+ <td>---</td>
+ <td><a href="/en-US/Firefox/Releases/11" title="Released on 2012-03-13.">11.0</a> (11.0)</td>
+ <td>---</td>
+ <td>---</td>
+ <td>---</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+<div id="compat-mobile">
+ <table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>基本実装</td>
+ <td>---</td>
+ <td><a href="/en-US/Firefox/Releases/11" title="Released on 2012-03-13.">11.0</a> (11.0)</td>
+ <td>---</td>
+ <td>---</td>
+ <td>---</td>
+ </tr>
+ </tbody>
+ </table>
+</div>
+<p> </p>
diff --git a/files/ja/archive/b2g_os/api/navigator/mozsetmessagehandler/index.html b/files/ja/archive/b2g_os/api/navigator/mozsetmessagehandler/index.html
new file mode 100644
index 0000000000..915dcf65e6
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/navigator/mozsetmessagehandler/index.html
@@ -0,0 +1,265 @@
+---
+title: Navigator.mozSetMessageHandler()
+slug: Archive/B2G_OS/API/Navigator/mozSetMessageHandler
+tags:
+ - API
+ - B2G
+ - Firefox OS
+ - Method
+ - Reference
+ - Référence(2)
+ - Web Activities
+ - Web アクティビティ
+ - WebAPI
+ - alarm
+translation_of: Archive/B2G_OS/API/Navigator/mozSetMessageHandler
+---
+<p></p><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> 上で <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security#App_Types">ウェブコンテンツまたは高度の権限を持つアプリ</a>より利用できます。</p>
+</div><p></p>
+
+<h2 id="概要"><span id="result_box" lang="en"><span class="hps">概要</span></span></h2>
+
+<p>アプリケーションはこのメソッドを使って、システムからのメッセージを処理してそれに反応する関数を登録できます。</p>
+
+<p>どのアプリケーションをどのメッセージに対して登録することもできますが、対応する許可設定があるアプリケーションにのみ送信されるメッセージもあります。例えば <code>sms-received</code> メッセージは <code>sms</code> の許可設定があるアプリケーションにのみ送信されます。</p>
+
+<p>システムメッセージは DOM イベントとは反対に、アプリケーションにそのハンドラーがない場合にはキューに残り続けます。アプリケーションにキューに入ったメッセージがあるかは、引数として適切なタイプを渡して <a href="/ja/docs/Web/API/Window/navigator/mozHasPendingMessage" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>navigator.mozHasPendingMessage()</code></a> を呼ぶことでチェックできます。メッセージハンドラーが設定されると、キューにある全メッセージが非同期にアプリケーションに渡されます。</p>
+
+<h2 id="構文"><span id="result_box" lang="en"><span class="hps">構文</span></span></h2>
+
+<pre>navigator.mozSetMessageHandler(type, handler);</pre>
+
+<h3 id="引数">引数</h3>
+
+<dl>
+ <dt> </dt>
+ <dt><code><span id="cke_bm_83S" style="display: none;"> </span>type</code></dt>
+ <dd><span id="result_box" lang="en"><span class="hps">type</span> は、登録するハンドラーがどの種類のメッセージ用かを表す文字列です。 </span></dd>
+ <dt><code>handler</code></dt>
+ <dd><span id="result_box" lang="en"><span class="hps">システムがメッセージを送信するとハンドラーが呼ばれます。ハンドラーが受け取る引数はメッセージタイプによって決まります。</span> </span></dd>
+</dl>
+
+<h2 id="Specification" name="Specification"><span id="result_box" lang="en"><span class="hps">メッセージタイプ</span></span></h2>
+
+<p><span id="result_box" lang="en"><span class="hps">現在、</span><span class="hps">Firefox OS</span> では以下のメッセージを登録できます。</span></p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">メッセージ名</th>
+ <th scope="col">ハンドラーのシグニチャー</th>
+ <th scope="col">許可設定</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>activity</code></td>
+ <td><code>f( <a href="/ja/docs/Web/API/MozActivityRequestHandler" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozActivityRequestHandler</code></a> request )</code></td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td><code>alarm</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>alarms</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-cancel</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-dialer-command</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-hfp-status-changed</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-opp-transfer-start</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-opp-transfer-complete</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-opp-receiving-file-confirmation</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-opp-update-progress</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-pairedstatuschanged</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-requestconfirmation</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-requestpincode</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>bluetooth-requestpasskey</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td>bluetooth</td>
+ </tr>
+ <tr>
+ <td><code>headset-button</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td><code>icc-stkcommand</code></td>
+ <td><code>f( object command )</code></td>
+ <td>settings</td>
+ </tr>
+ <tr>
+ <td><code>notification</code></td>
+ <td><code>f( object unknown )</code></td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td><code>push</code></td>
+ <td><code>f( object <a href="/ja/docs/Web/API/Simple_Push_API#push_.E3.83.A1.E3.83.83.E3.82.BB.E3.83.BC.E3.82.B8.E3.83.8F.E3.83.B3.E3.83.89.E3.83.A9.E3.83.BC.E3.82.92.E8.BF.BD.E5.8A.A0">registration</a> )</code></td>
+ <td><code>push</code></td>
+ </tr>
+ <tr>
+ <td><code>push-register</code></td>
+ <td><code>f (  )</code></td>
+ <td><code>push</code></td>
+ </tr>
+ <tr>
+ <td><code>sms-received</code></td>
+ <td><code>f( <a href="/ja/docs/Web/API/SmsMessage" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>SmsMessage</code></a> sms )</code></td>
+ <td style="white-space: nowrap;">sms</td>
+ </tr>
+ <tr>
+ <td><code>sms-sent</code></td>
+ <td><code>f( <a href="/ja/docs/Web/API/SmsMessage" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>SmsMessage</code></a> sms )</code></td>
+ <td>sms</td>
+ </tr>
+ <tr>
+ <td><code>telephony-call-ended</code></td>
+ <td><code>f( object call )</code></td>
+ <td>telephony</td>
+ </tr>
+ <tr>
+ <td><code>telephony-new-call</code></td>
+ <td><code>f( )</code></td>
+ <td>telephony</td>
+ </tr>
+ <tr>
+ <td><code>ussd-received</code></td>
+ <td><code>f( object ussd )</code></td>
+ <td>mobileconnection</td>
+ </tr>
+ <tr>
+ <td><code>wappush-received</code></td>
+ <td><code>f( object wappush )</code></td>
+ <td>wappush</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="仕様">仕様</h2>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">注</th>
+ </tr>
+ <tr>
+ <td><a class="external" hreflang="en" lang="en" title="Unknownの仕様書">Unknown</a></td>
+ <td><span class="spec-">不明</span></td>
+ <td>システムメッセージングのインターフェイスを定義。</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="ブラウザー互換性"><span class="short_text" id="result_box" lang="en"><span class="hps">ブラウザー互換性</span></span></h2>
+
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">We're converting our compatibility data into a machine-readable JSON format</a></strong>.
+ This compatibility table still uses the old format,
+ because we haven't yet converted the data it contains.
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">Find out how you can help!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari (WebKit)</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>Feature</th>
+ <th>Android</th>
+ <th>Firefox OS</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>Basic support</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>1.0</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="関連項目">関連項目</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Window/navigator/mozHasPendingMessage" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>navigator.mozHasPendingMessage()</code></a></li>
+ <li><a href="/ja/docs/Web/API/Web_Activities" title="/en-US/docs/WebAPI/Web_Activities">Web Activities</a></li>
+ <li><a href="https://groups.google.com/forum/?fromgroups=#!topic/mozilla.dev.webapi/o8bkwx0EtmM" title="https://groups.google.com/forum/?fromgroups=#!topic/mozilla.dev.webapi/o8bkwx0EtmM">Mozilla WebAPI メーリングリストでの議論。</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/navigator/moztelephony/index.html b/files/ja/archive/b2g_os/api/navigator/moztelephony/index.html
new file mode 100644
index 0000000000..9af95b42be
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/navigator/moztelephony/index.html
@@ -0,0 +1,120 @@
+---
+title: Navigator.mozTelephony
+slug: Archive/B2G_OS/API/Navigator/mozTelephony
+tags:
+ - API
+ - Certified
+ - Firefox OS
+ - Mobile
+ - Non-standard
+ - Property
+ - Telephony
+translation_of: Archive/B2G_OS/API/Navigator/MozTelephony
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>Firefox OS に関連するページ</summary><ol><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozAlarmsManager"><code>MozAlarmsManager</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozMobileNetworkInfo"><code>MozMobileNetworkInfo</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MozWifiP2pGroupOwner"><code>MozWifiP2pGroupOwner</code></a></li></ol></details></li></ol></section><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<h2 id="Summary" name="Summary">概要</h2>
+
+<p>ブラウザから電話の通話の初期化と制御に使用できる <a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a> オブジェクトを返します。</p>
+
+<h2 id="Syntax" name="Syntax">構文</h2>
+
+<pre class="eval">var <em>phone</em> = window.navigator.mozTelephony;
+</pre>
+
+<h3 id="Value" name="Value">値</h3>
+
+<p><code>navigator.mozTelephony</code> は、<a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a> オブジェクトへのアクセスを提供します。これは、ブラウザを実行中の端末の電話機能を制御するために使用します。</p>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a class="external" href="https://wiki.mozilla.org/WebAPI/WebTelephony" hreflang="en" lang="en" title="Web Telephonyの仕様書">Web Telephony</a></td>
+ <td><span class="spec-Draft">ドラフト</span></td>
+ <td>Draft</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>
+
+<p>明らかな理由により、サポートはモバイルブラウザが優先されます。</p>
+
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>12.0 (12.0)</td>
+ <td>1.0.1</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a></li>
+ <li><a href="/ja/docs/Web/API/TelephonyCall" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall</code></a></li>
+ <li><a href="/ja/docs/Web/API/CallEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CallEvent</code></a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/api/telephonycall/index.html b/files/ja/archive/b2g_os/api/telephonycall/index.html
new file mode 100644
index 0000000000..efbd51179c
--- /dev/null
+++ b/files/ja/archive/b2g_os/api/telephonycall/index.html
@@ -0,0 +1,237 @@
+---
+title: TelephonyCall
+slug: Archive/B2G_OS/API/TelephonyCall
+tags:
+ - API
+ - B2G
+ - Certified
+ - DOM
+ - DOM Reference
+ - Firefox OS
+ - Mobile
+ - Non-standard
+ - Reference
+ - Telephony
+translation_of: Archive/B2G_OS/API/TelephonyCall
+---
+<p></p><section class="Quick_links" id="Quick_Links"><ol><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Web_Telephony_API">Web Telephony API</a></strong></li><li><strong><a href="/ja/docs/Mozilla/Firefox_OS/API/Archive"><code>Archive</code></a></strong></li><li class="toggle"><details open><summary>イベント</summary><ol><li><a href="/ja/docs/Web/Events/incoming"><code>incoming</code></a></li></ol></details></li><li class="toggle"><details open><summary>Web Telephony API に関連するページ</summary><ol><li><a href="/ja/docs/Mozilla/Firefox_OS/API/CallEvent"><code>CallEvent</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/CallGroup"><code>CallGroup</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/MMICall"><code>MMICall</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/Telephony"><code>Telephony</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/TelephonyCall"><code>TelephonyCall</code></a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/API/TelephonyCallGroup"><code>TelephonyCallGroup</code></a></li></ol></details></li></ol></section><div class="warning">
+ <p style="text-align: center;">この API は <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security">認定済みアプリ</a>のみ、 <a href="/ja/docs/Mozilla/Firefox_OS">Firefox OS</a> で有効になります。</p>
+</div><p></p>
+
+<p><a href="/docs/Web/API/Web_Telephony_API">Web Telephony API</a> の <code>TelephonyCall</code> インターフェイスは、1 回の電話の通話を表します。通話に関する情報を提供し、通話の制御と通話の状態変化を検出する機構が使用できます。</p>
+
+<h2 id="Properties" name="Properties">プロパティ</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/disconnectedReason" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.disconnectedReason</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>通話が切断された理由を示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列 (原因がエラーによるものか、通話が終了したか、応答が無かったかなど)。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/emergency" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.emergency</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>発信番号が緊急通報の番号かどうかを示す <a href="/ja/docs/Web/API/Boolean" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Boolean</code></a> 値。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/group" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.group</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd><a href="/ja/docs/Web/API/TelephonyCallGroup" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCallGroup</code></a> (グループ通話) が属する先 (もしあれば) を示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/id" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.id</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>通話に対応する電話番号を示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/secondId" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.secondId</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>CDMA ネットワークで通話中に着信があった場合の電話番号を示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/mergeable" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.mergeable</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>現在の通話が <a href="/ja/docs/Web/API/TelephonyCallGroup" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCallGroup</code></a> (グループ通話) に追加できるかどうかを示す <a href="/ja/docs/Web/API/Boolean" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Boolean</code></a> 値。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/serviceId" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.serviceId</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>発信者のサービス名を示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/state" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.state</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>通話の状態を示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/switchable" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.switchable</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>現在の通話が "connected" と "held" を切り替えられるかどうかを示す <a href="/ja/docs/Web/API/Boolean" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Boolean</code></a> 値。</dd>
+</dl>
+
+<h3 id="Event_Handlers" name="Event_Handlers">イベントハンドラ</h3>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onalerting" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onalerting</code></a></dt>
+ <dd>キャリアとの接続待ち中に、呼び出し音 (アラート) 発生時に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onconnected" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onconnected</code></a></dt>
+ <dd>通話が接続された時に一度呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onconnecting" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onconnecting</code></a></dt>
+ <dd>ダイヤル入力後の接続相手を待つ間に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/ondialing" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.ondialing</code></a></dt>
+ <dd>通話の <a href="/ja/docs/Web/API/TelephonyCall/number" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>ダイヤル番号</code></a> の入力開始時に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/ondisconnected" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.ondisconnected</code></a></dt>
+ <dd>通話を終了し、切断した後に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/ondisconnecting" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.ondisconnecting</code></a></dt>
+ <dd>通話の切断を開始した時に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/ongroupchange" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.ongroupchange</code></a></dt>
+ <dd>通話の <a href="/ja/docs/Web/API/TelephonyCallGroup" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCallGroup</code></a> (および <a href="/ja/docs/Web/API/TelephonyCall/group" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.group</code></a> プロパティ) が変化した時に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onholding" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onholding</code></a></dt>
+ <dd>通話を保留状態にする指示が発行された時に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onheld" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onheld</code></a></dt>
+ <dd>通話が保留中の時に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onresuming" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onresuming</code></a></dt>
+ <dd>直前の保留から通話が再開される時に呼び出される関数。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onstatechange" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onstatechange</code></a></dt>
+ <dd><a href="/ja/docs/Web/API/TelephonyCall/state" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>通話状態</code></a> が変化した時に呼び出される関数。</dd>
+</dl>
+
+<h3 id="Obsolete_properties" name="Obsolete_properties">廃止されたプロパティ</h3>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/error" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.error</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>通話の接続成功時に返されるエラーを示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列。これは、エラーメッセージが返されると混乱するため廃止され、よりセマンティックな効果のある <a href="/ja/docs/Web/API/TelephonyCall/disconnectedReason" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.disconnectedReason</code></a> に置き換えられました。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/number" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.number</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>通話に対応する電話番号を示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列。Firefox OS 2.0 以降で <a href="/ja/docs/Web/API/TelephonyCall/id" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.id</code></a> に置き換えられました。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/secondNumber" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.secondNumber</code></a> <span class="inlineIndicator readOnly readOnlyInline" title="This value may not be changed.">読取専用 </span></dt>
+ <dd>CDMA ネットワークで通話中に着信があった場合の電話番号を示す <a href="/ja/docs/Web/API/DOMString" title="DOMString は、UTF-16 文字列です。JavaScript では UTF-16 文字列を用いるため、DOMString は直接 String に対応します。"><code>DOMString</code></a> 文字列。Firefox OS 2.0 以降で <a href="/ja/docs/Web/API/TelephonyCall/SecondId" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.SecondId</code></a> に置き換えられました。</dd>
+</dl>
+
+<h3 id="Obsolete_event_handlers" name="Obsolete_event_handlers">廃止されたイベントハンドラ</h3>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onerror" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onerror</code></a></dt>
+ <dd>エラーにより通話が成功しなかった時に呼び出される関数。これは、<a href="/ja/docs/Web/API/TelephonyCall/ondisconnected" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.ondisconnected</code></a> とよく似ていますが、セマンティック的により狭く役立たないため廃止されました。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/onincoming" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.onincoming</code></a></dt>
+ <dd>着信呼び出しが検出された時に呼び出される関数。</dd>
+</dl>
+
+<h2 id="Methods" name="Methods">メソッド</h2>
+
+<p><em><code>TelephonyCall</code> は、<a href="/ja/docs/Web/API/EventTarget" title="EventTarget は、イベントを受け取り、そのためのリスナーを持つ可能性があるオブジェクトにより実装されたインターフェースです。"><code>EventTarget</code></a> インターフェイスからのメソッドも継承します。</em></p>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/answer" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.answer()</code></a></dt>
+ <dd>着信呼び出しに応答します。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/hangUp" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.hangUp()</code></a></dt>
+ <dd>通話を終了します。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/hold" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.hold()</code></a></dt>
+ <dd>通話を保留にします。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall/resume" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall.resume()</code></a></dt>
+ <dd>直前に保留になっていた通話を再開します。</dd>
+</dl>
+
+<h2 id="Examples" name="Examples">例</h2>
+
+<pre class="brush: js">// Telephony object
+var tel = navigator.mozTelephony;
+
+// Place a call
+tel.dial("123456789").then(function(call) {
+ call.number;
+});
+
+// Receive a call
+tel.onincoming = function (e) {
+ var incomingCall = e.call;
+
+ // Get the id/number of the incoming call
+ console.log(incomingCall.id);
+
+ // Answer the call
+ incomingCall.answer();
+};</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a class="external" href="https://wiki.mozilla.org/WebAPI/WebTelephony" hreflang="en" lang="en" title="Web Telephonyの仕様書">Web Telephony</a></td>
+ <td><span class="spec-Draft">ドラフト</span></td>
+ <td>Draft</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>
+
+<p>明らかな理由により、サポートはモバイルブラウザが優先されます。</p>
+
+<div><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div></div>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>12.0 (12.0)</td>
+ <td>1.0.1</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ <tr>
+ <td><code>id</code> および <code>secondId</code></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>30.0 (30.0)</td>
+ <td>2.0</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ <tr>
+ <td><code>disconnectedReason</code></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>37.0 (37.0)</td>
+ <td>2.2</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/docs/Web/Guide/API/Telephony/Using_the_Web_Telephony_API">Web Telephony API の使用</a></li>
+ <li><a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a></li>
+ <li><a href="/ja/docs/Web/API/CallEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CallEvent</code></a></li>
+ <li><a href="/ja/docs/Web/API/Navigator/mozTelephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Navigator.mozTelephony</code></a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/architecture/index.html b/files/ja/archive/b2g_os/architecture/index.html
new file mode 100644
index 0000000000..e07d7b48ca
--- /dev/null
+++ b/files/ja/archive/b2g_os/architecture/index.html
@@ -0,0 +1,752 @@
+---
+title: B2G OS のアーキテクチャ
+slug: Archive/B2G_OS/Architecture
+tags:
+ - Architecture
+ - B2G OS
+ - Guide
+ - IPC
+ - IPDL
+translation_of: Archive/B2G_OS/Architecture
+---
+<div class="summary">
+<p><span class="seoSummary">この記事では、B2G OS プラットフォームの高水準層の概要、主要なコンセプトの紹介、そして高水準層のコンポーネントがどのように低水準層と対話するかを説明します。</span></p>
+</div>
+
+<div class="note">
+<p><strong>注記:</strong> B2G OS はまだプレリリース段階の製品であることを忘れないようにしてください。ここで説明するアーキテクチャは必ずしも最終的なものではなく、変更される場合があります。</p>
+</div>
+
+<h2 id="Firefox_OS_terminology" name="Firefox_OS_terminology">B2G OS の用語</h2>
+
+<p>B2G OS のドキュメントをさらに読み進める前に理解しておくべき用語がいくつかあります。</p>
+
+<dl>
+ <dt>B2G</dt>
+ <dd>Boot to Gecko の略語です。</dd>
+ <dt>Boot to Gecko</dt>
+ <dd>B2G OS オペレーティングシステムのエンジニアリングコードネームです。プロジェクトに正式な名称がつくまでの長い間この言葉が使われたため、これが B2G OS を指す言葉として使われるのをよく見るでしょう。</dd>
+ <dt>B2G OS</dt>
+ <dd>B2G OS は基本的に、最終リリース製品を製造するため <strong>Boot to Gecko</strong> に加えられた、Mozilla (および OEM パートナー) のブランディングとサポートサービスです。</dd>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/Gaia" title="Mozilla/Firefox_OS/Gaia">Gaia</a></dt>
+ <dd>B2G OS プラットフォームのユーザインタフェースです。B2G OS が起動してからスクリーンに描画されるものはすべて、Gaia 層で書かれています。Gaia はロックスクリーン、ホームスクリーン、そして現代的なスマートフォンに求められる標準的なアプリケーションを実装します。Gaia はすべて、HTML、CSS、JavaScript で実装されています。下層のオペレーティングシステムとの唯一のインタフェースはオープンな Web API であり、それらは Gecko 層で実装されています。サードパーティのアプリケーションも、Gaia 層と一緒にインストールできます。</dd>
+ <dt><a href="/ja/docs/Gecko" title="Accessibility/AT-APIs/Gecko">Gecko</a></dt>
+ <dd>これは、B2G OS のアプリケーションランタイムです。すなわち HTML、CSS、JavaScript という 3 つのオープン標準のすべてをサポートする層です。Gecko がサポートするすべてのオペレーティングシステムで、それらの API が良好に動作することを確実にします。つまり Gecko には、例えばネットワークスタック、グラフィックスタック、レイアウトエンジン、JavaScript 仮想マシン、ポーティング層を含みます。</dd>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/Gonk" title="Mozilla/Firefox_OS/Gonk">Gonk</a></dt>
+ <dd>Gonk は B2G OS プラットフォームの低水準のオペレーティングシステムであり、Linux カーネル (<a href="http://source.android.com/">Android Open Source Project</a> (AOSP) を基にしています) とユーザ空間の Hardware Abstraction Layer (HAL) で構成されます。カーネルといくつかのユーザ層のライブラリーは、一般的なオープンソースプロジェクトのものです: Linux、libusb、bluez などです。HAL の他の部分には、Android プロジェクトと共有しているものもあります: GPS、カメラなどです。Gonk はとてもシンプルな Linux ディストリビューションであると表せます。Gonk は Gecko の<strong>移植対象</strong>です。つまり OS X、Windows、Android に移植した Gecko があるように、Gonk に移植した Gecko があります。B2G OS プロジェクトは Gonk を完全に管理しているため、他のオペレーティングシステムでは Gecko に開放されていないインタフェースを開放することができます。例えば、Gonk では Gecko がテレフォニースタック全体やディスプレイのフレームバッファーへ直接アクセスできますが、他のオペレーティングシステムではこれらにアクセスできません。</dd>
+ <dt><a name="Jank">Jank</a></dt>
+ <dd>モバイルアプリの分野でよく使用されるこの用語は、アプリ内の遅い、あるいは非効率なコード処理による影響を指します。これは UI の更新を妨げ、遅延や応答性の悪さを引き起こします。Gaia のエンジニアは何としてもこのような状態を避けるために、さまざまな最適化手法を使用しています。</dd>
+</dl>
+
+<h2 id="Overall_architecture" name="Overall_architecture">アーキテクチャの全体像</h2>
+
+<p>以下の図は、プロプライエタリなプラットフォームと B2G OS のアーキテクチャを比較したものです。</p>
+
+<p><img alt="on the left is a native mobile architecture stack, on the right is the B2G OS architecture. they are similarm except that the native stack is all proprietary device functionality, and the B2G OS stack is all done with open source and web technologies." src="https://mdn.mozillademos.org/files/9487/general-architecture.png" style="display: block; height: 488px; margin: 0px auto; width: 997px;"></p>
+
+<p>B2G OS では、オペレーティングシステムとアプリケーション層の間のネイティブ API がありません。この統合された設計により、パフォーマンスやユーザのリッチなスマートフォン体験を犠牲にすることなく、プラットフォームのオーバーヘッドを軽減するとともにセキュリティを簡略化します。</p>
+
+<ol>
+ <li><a href="/ja/Firefox_OS/Platform/Gaia">Gaia</a> はデバイスの中心的な Web アプリおよびユーザインターフェイス層です。これは HTML5、CSS、JavaScript で記述されており、UI がハードウェアや Gecko の機能と対話できるようにするためのさまざまな API を公開しています。</li>
+ <li><a href="/ja/docs/Mozilla/Gecko">Gecko</a> は B2G OS の Web エンジンおよびプレゼンテーション層であり、Web コンテンツと下層のデバイスの間のインターフェイスを提供することにより、ハードウェアと HTML を接続します。Gecko は HTML5 のパースとレンダリングエンジン、セキュアな Web API を通してハードウェア機能へプログラムからアクセス、包括的なセキュリティフレームワーク、アップデート管理、その他のコアサービスといった機能を提供します。</li>
+ <li><a href="/ja/Firefox_OS/Platform/Gonk">Gonk</a> は B2G OS スタックのカーネルレベルのコンポーネントであり、Gecko と下層のハードウェアの間のインターフェイスとして働きます。Gonk は下層のハードウェアを制御して、ハードウェアの機能を Gecko に実装された Web API に公開します。Gonk はハードウェアレベルの要求を定めることによりモバイルデバイスを制御するため、内部で複雑かつ詳細な処理すべてを行う "ブラックボックス" であると考えることができます。</li>
+ <li>モバイルデバイスは、B2G OS を実行する携帯電話機器です。OEM がモバイルデバイスの供給について責任を持ちます。</li>
+</ol>
+
+<h2 id="Specific_Firefox_OS_architecture" name="Specific_Firefox_OS_architecture">B2G OS の詳細なアーキテクチャ</h2>
+
+<p><img alt="B2G OS Architecture" src="/files/4605/FirefoxOS.png" style="display: block; height: 915px; margin: 0px auto; width: 754px;"></p>
+
+<h2 id="Firefox_OS_bootup_procedure" name="Firefox_OS_bootup_procedure">B2G OS のブート手順</h2>
+
+<p>このセクションでは B2G OS デバイスのブートプロセスについて、どの部分がどのように関わるかを説明します。要約すると一般的なシステムの起動フローは、カーネル空間のブートローダーから始まりネイティブコードの init、B2G、ユーザ空間の Gecko、そしてシステムアプリ、ウィンドウマネージャー、Gecko 内のホームスクリーンアプリと進みます。これらの上で、他のアプリすべてを実行します。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/7491/bootup.png" style="display: block; height: 1979px; margin: 0px auto; width: 2112px;"></p>
+
+<h3 id="The_bootstrapping_process" name="The_bootstrapping_process">ブートストラッププロセス</h3>
+
+<p>B2G OS デバイスでまず電源を入れると、プライマリブートローダが実行されます。そこから主要なオペレーティングシステムを読み込むプロセスが、典型的な方法で進みます。これはチェイン内で順次、高水準ブートローダが次のローダを起動することの連鎖です。プロセスの最終段階で、実行は Linux カーネルに引き渡されます。</p>
+
+<p>ブートプロセスについて注意すべき点がいくつかあります:</p>
+
+<ul>
+ <li>ブートローダは通常、デバイスの起動中にユーザへ見せるものとしてスプラッシュスクリーンを始めに表示します。これは一般的に、ベンダーのロゴです。</li>
+ <li>ブートローダは、デバイスへイメージを書き込む機能を実装しています。機種によりそのプロトコルは異なります。ほとんどの電話機は <a href="http://android-dls.com/wiki/index.php?title=Fastboot" title="http://android-dls.com/wiki/index.php?title=Fastboot">fastboot プロトコル</a>を使用していますが、Samsung Galaxy S II は odin プロトコルを使用しています。</li>
+ <li>ブートストラッププロセスが終わるまでに、通常はモデムイメージが読み込まれてモデムプロセッサで実行されます。これがどのように行われるかはきわめてデバイス依存であり、独特な箇所になるでしょう。</li>
+</ul>
+
+<h3 id="The_Linux_kernel" name="The_Linux_kernel">Linux カーネル</h3>
+
+<p>Gonk で使用される Linux カーネルは、派生元である上流の Linux によく似ています (<a href="http://source.android.com/" title="http://source.android.com/">Android Open Source Project</a> に基づきます)。AOSP によって行われたが上流に反映されていない変更点もあります。加えて、時にベンダーはカーネルに変更を加えて、彼ら自身のスケジュールに基づいて上流に反映させます。もっとも、一般的には Linux カーネルに集積されていきます。</p>
+
+<p><a href="http://en.wikipedia.org/wiki/Linux_startup_process" title="http://en.wikipedia.org/wiki/Linux_startup_process">Linux のスタートアッププロセス</a>はインターネット上の他所で十分に文書化されていますので、この記事では扱いません。</p>
+
+<p>Linux カーネルはデバイスを起動して、必要不可欠なプロセスを実行します。これは <code>init.rc</code> や、それに後続して <code>b2g</code> (Gecko を含む、B2G OS の基本プロセス) および <code>rild</code> (さまざまなチップセットに固有であろう、テレフォニー関係のプロセス) などの必要なプロセスを起動するための <a href="https://github.com/mozilla-b2g/gonk-misc/blob/master/init.b2g.rc">init.b2g.rc</a> で定義されているプロセスを実行します。詳しくは後で説明します。プロセスの最終段階では、ほとんどの UNIX ライクなオペレーティングシステムと同様に、ユーザ空間の <code>init</code> プロセスが起動します。</p>
+
+<p><code>init</code> プロセスが起動すると、Linux カーネルがユーザ空間やハードウェアデバイスからのシステムコールや割り込みを制御します。多くのハードウェア機能は、<a href="http://en.wikipedia.org/wiki/Sysfs" title="http://en.wikipedia.org/wiki/Sysfs"><code>sysfs</code></a> を通してユーザ空間に開放されています。例えば、以下は Gecko でバッテリーの状態を読み出す<a href="https://github.com/cgjones/mozilla-central/blob/master/hal/gonk/GonkHal.cpp#L277" title="https://github.com/cgjones/mozilla-central/blob/master/hal/gonk/GonkHal.cpp#L277">コードスニペット</a>です:</p>
+
+<pre class="brush:cpp;">FILE *capacityFile = fopen("/sys/class/power_supply/battery/capacity", "r");
+double capacity = dom::battery::kDefaultLevel * 100;
+if (capacityFile) {
+ fscanf(capacityFile, "%lf", &amp;capacity);
+ fclose(capacityFile);
+}</pre>
+
+<h3 id="More_on_the_init_process" name="More_on_the_init_process">init プロセス</h3>
+
+<p>Gonk の <code>init</code> プロセスは、必要なファイルシステムのマウントやシステムサービスの起動を制御します。その後、プロセスマネージャとして働くために常駐します。これは他の UNIX ライクなオペレーティングシステムの init にとても似ています。init は、さまざまなサービスを起動するために行うべきことを示すコマンドで構成されるスクリプト (すなわち <code>init*.rc</code> ファイル) を実行します。B2G OS の <code>init.rc</code> は、典型的には B2G OS を起動するために必要なものを含むようパッチを当てた Android の <code>init.rc</code> であり、デバイスにより異なります。</p>
+
+<p><code>init</code> プロセスが制御する重要なタスクとして、<code>b2g</code> プロセスの起動があります。b2g は、B2G OS オペレーティングシステムの中核部分です。</p>
+
+<p><code>init.rc</code> で b2g を起動するコードは以下のようになります:</p>
+
+<pre>service b2g /system/bin/b2g.sh
+ class main
+ onrestart restart media</pre>
+
+<div class="note">
+<p><strong>注記:</strong> <code>init.rc</code> が Android のものとどれだけ違うかは、デバイスにより異なります。<code>init.b2g.rc</code> が単純に追加される場合もあれば、より多くのパッチが必要になる場合もあります。</p>
+</div>
+
+<h2 id="The_userspace_process_architecture" name="The_userspace_process_architecture">ユーザ空間プロセスのアーキテクチャ</h2>
+
+<p>ここで、B2G OS のさまざまなコンポーネントがどのように組み合わされていて、また互いに作用しあうかを高い水準で見ておくと役に立ちます。こちらの図は、B2G OS の基本的なユーザ空間プロセスを表しています。</p>
+
+<p><a href="/files/3849/B2G userspace architecture.svg"><img alt="Userspace diagram" src="/files/3849/B2G%20userspace%20architecture.svg" style="float: right; height: 491px; position: relative; width: 520px;"></a></p>
+
+<div class="note">
+<p><strong>注記:</strong> B2G OS は現在も開発中であるため、この図は変更される可能性があり、また完全に正確なものではないことに注意してください。</p>
+</div>
+
+<p><code>b2g</code> プロセスは、基本的なシステムプロセスです。これは高い権限で動作します。つまり、ほとんどのハードウェアデバイスにアクセスできます。<code>b2g</code> はモデムと通信したり、ディスプレイフレームバッファーに描画したり、GPS やカメラや他のハードウェア機能と対話したりします。内部的には、<code>b2g</code> は Gecko 層で動作します (<code>libxul.so</code> として実装されています)。Gecko 層の動作や <code>b2g</code> が Gecko とどのように通信するかについて、詳しくは <a href="#Gecko">Gecko</a> の章をご覧ください。</p>
+
+<h3 id="b2g" name="b2g">b2g</h3>
+
+<p><code>b2g</code> プロセスは、低権限の <strong>content プロセス</strong> を順番に起動するでしょう。これらのプロセスは、Web アプリケーションや他の Web コンテンツが読み込まれるところです。またこれらのプロセスは主要な Gecko のサーバプロセスと、<a href="/ja/docs/IPDL" title="IPDL">IPDL</a> というメッセージ伝送システムを通して通信します。</p>
+
+<p><code>b2g</code> プロセスは libxul を実行しており、これはデフォルトの設定を取得するために <code>b2g/app/b2g.js</code> を参照します。b2g は設定により示された HTML ファイルである <code>b2g/chrome/content/shell.html</code> を開きます。このファイルは <code>omni.ja</code> ファイル内に集積されています。<code>shell.html</code> には <code>b2g/chrome/content/shell.js</code> ファイルが含まれており、これは Gaia の <code>system</code> アプリを起動します。</p>
+
+<h3 id="rild" name="rild">rild</h3>
+
+<p><code>rild</code> プロセスは、モデムプロセッサへのインタフェースです。<code>rild</code> は <strong>Radio Interface Layer</strong> (RIL) を実装するデーモンです。これは、モデムハードウェアと対話するためにハードウェアベンダーによって実装されるプロプライエタリなコードの部分です。<code>rild</code> は、クライアントコードがモデムに結びつけられた UNIX ドメインソケットへ接続できるようにします。rild は <code>init</code> スクリプト内の以下のようなコードによって起動されます :</p>
+
+<pre>service ril-daemon /system/bin/rild
+ socket rild stream 660 root radio</pre>
+
+<h3 id="rilproxy" name="rilproxy">rilproxy</h3>
+
+<p>B2G OS では、<code>rild</code> のクライアントが <code>rilproxy</code> プロセスです。これは <code>rild</code> と <code>b2g</code> の間で単なる転送プロキシとして動作します。このプロキシは細部の実装として必要です。とても必要なものであるとだけ言っておきましょう。<a href="https://github.com/mozilla-b2g/rilproxy" title="https://github.com/mozilla-b2g/rilproxy"><code>rilproxy</code> のコードは GitHub にあります</a>。</p>
+
+<h3 id="mediaserver" name="mediaserver">mediaserver</h3>
+
+<p><a href="https://github.com/android/platform_frameworks_base/tree/ics-mr0-release/media/libmediaplayerservice" title="https://github.com/android/platform_frameworks_base/tree/ics-mr0-release/media/libmediaplayerservice"><code>mediaserver</code> プロセス</a>は、音声や動画の再生を制御します。Gecko は Android Remote Procedure Call (RPC) の仕組みを通して mediaserver と対話します。Gecko が再生可能なメディア (OGG Vorbis audio、OGG Theora video、<a href="http://www.webmproject.org/about/" title="http://www.webmproject.org/about/">WebM</a> video) は Gecko によってデコードされ、直接 <code>mediaserver</code> プロセスに送られます。他のメディアファイルは <code>libstagefright</code> によってデコードされます。libstagefright は、プロプライエタリなコーデックやハードウェアエンコーダにアクセスできます。</p>
+
+<div class="note">
+<p><strong>注記:</strong> <code>mediaserver</code> プロセスは、B2G OS の "一時的な" コンポーネントです。初期の開発作業を支援するために存在しており、いずれはなくなる予定です。ただし、おそらく早くても B2G OS 2.0 まではなくならないでしょう。</p>
+</div>
+
+<h3 id="netd" name="netd">netd</h3>
+
+<p><code>netd</code> プロセスは、ネットワークインタフェースの設定に使用されます。</p>
+
+<h3 id="wpa_supplicant" name="wpa_supplicant">wpa_supplicant</h3>
+
+<p><code>wpa_supplicant</code> プロセスは Wi-Fi アクセスポイントとの接続を制御する、標準的な UNIX スタイルのデーモンです。</p>
+
+<h3 id="dbus-daemon" name="dbus-daemon">dbus-daemon</h3>
+
+<p>dbus-daemon は <a href="http://www.freedesktop.org/wiki/Software/dbus" title="http://www.freedesktop.org/wiki/Software/dbus">D-Bus</a> を実装します。これは、B2G OS が Bluetooth 通信のために使用するメッセージバスシステムです。</p>
+
+<h2 id="Gecko" name="Gecko">Gecko</h2>
+
+<p><a href="/ja/docs/Gecko" title="Gecko">Gecko</a> は前述のとおり、B2G OS でユーザが見るものすべてを実装するために使用される Web 標準技術 (<a href="/ja/docs/HTML" title="HTML">HTML</a>、<a href="/ja/docs/CSS" title="CSS">CSS</a>、<a href="/ja/docs/JavaScript" title="JavaScript">JavaScript</a>) を実装したものです。また、電話機のハードウェアとの対話を制御します。HTML5 からハードウェアに接続する Web アプリは、Gecko に実装されたセキュアな Web API によって制御されます。 Web API は、下層のモバイルデバイスハードウェアの機能 (バッテリーやバイブレーションなど) やデバイスに保存されていたりデバイスで使用できるデータ (カレンダーや連絡先など) にプログラムからアクセスする機能を提供します。Web コンテンツは、HTML5 でアクセスできる Web API を使用します。</p>
+
+<p>アプリは、関連する HTML5 Web コンテンツの集合体で構成されます。B2G OS のモバイルデバイスで動作する Web アプリを構築するために開発者が行うことは、単なる Web コンテンツの組み立て、パッケージング、頒布です。この Web コンテンツは実行時に、Web ブラウザによって解釈、コンパイル、レンダリングされます。アプリについて詳しくは、<a href="/ja/Apps">アプリセンター</a>をご覧ください。</p>
+
+<div class="note">
+<p><strong>注記:</strong> <a href="http://dxr.mozilla.org">http://dxr.mozilla.org</a> を使用して Gecko のコードベースを検索できます。見栄えがよく、また良好な参照機能を提供しますが、限られたリポジトリでしか使用できません。あるいは、旧来の <a href="http://mxr.mozilla.org">http://mxr.mozilla.org</a> も使用できます。こちらはより多くの Mozilla プロジェクトを包含しています。</p>
+</div>
+
+<h3 id="Gecko_architecture_diagram" name="Gecko_architecture_diagram">Gecko のアーキテクチャ図</h3>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/5027/securityframework.png" style="height: 591px; width: 979px;"></p>
+
+<ul>
+ <li><strong>セキュリティフレームワーク</strong>に含まれるもの:
+
+ <ul>
+ <li><strong>Permission Manager</strong>: Web API の機能にアクセスするためのゲートウェイです。</li>
+ <li><strong>Access Control List</strong>: Web API の機能へアクセスするために必要な役割や許可設定のマトリックスです。</li>
+ <li><strong>Credential Validation</strong>: アプリやユーザの認証です。</li>
+ <li><strong>Permissions Store</strong>: Web API の機能へアクセスするために必要な特権のセットです。</li>
+ </ul>
+ </li>
+ <li><strong>Web API</strong>: ハードウェアの機能を Web コンテンツに公開する標準 API のセットです。下層のモバイルデバイスハードウェアの機能やデバイスに保存されていたりデバイスで使用できるデータへ、安全にプログラムからアクセスする機能を Web アプリに提供します。</li>
+ <li><strong>I/O</strong>: ハードウェアやデータストアへのインターフェイスです。</li>
+ <li><strong>Software Updates</strong>: システムソフトウェアやサードパーティーのアプリの更新を取得およびインストールします。</li>
+ <li><strong>Content Layout &amp; Rendering</strong>: Web コンテンツの解析・解釈・実行、およびコンテンツに付随する書式情報に従って整形したコンテンツをユーザに対して表示するエンジンです。</li>
+ <li><strong>b2g process</strong>: 携帯電話のハードウェア機能にアクセス可能な、高い特権を持ったシステムプロセスで実行される Gecko です。実行中のアプリは、b2g の子プロセスです。</li>
+</ul>
+
+<h3 id="Gecko_files_related_to_Firefox_OS" name="Gecko_files_related_to_Firefox_OS">B2G OS に関係する Gecko ファイル</h3>
+
+<h4 id="b2g_2" name="b2g_2">b2g/</h4>
+
+<p>b2g フォルダには、主要な B2G OS 関連の機能が入っています。</p>
+
+<h5 id="b2gchromecontent" name="b2gchromecontent">b2g/chrome/content</h5>
+
+<p>システムアプリ上で実行する JavaScript が入っています。</p>
+
+<h5 id="b2gchromecontentshell.html" name="b2gchromecontentshell.html">b2g/chrome/content/shell.html</h5>
+
+<p>Gaia へのエントリポイントである、システムアプリ向けの HTML です。<code>shell.html</code> は、<code>settings.js</code> および <code>shell.js</code> を読み込みます:</p>
+
+<pre class="brush: html">&lt;script type="application/javascript;version=1.8" src="chrome://browser/content/settings.js"&gt; &lt;/script&gt;
+&lt;script type="application/javascript;version=1.8" src="chrome://browser/content/shell.js"&gt; &lt;/script&gt;</pre>
+
+<p><code>settings.js</code> は、システムのデフォルトの設定パラメータを持っています。</p>
+
+<h5 id="b2gchromecontentshell.js" name="b2gchromecontentshell.js">b2g/chrome/content/shell.js</h5>
+
+<p><code>shell.js</code> は Gaia の <code>system</code> アプリが読み込む最初のスクリプトです。</p>
+
+<p><code>shell.js</code> はすべての必要なモジュールのインポート、重要なリスナの登録、Gaia と通信するための <code>sendCustomEvent</code> および <code>sendChromeEvent</code> の定義、そして webapp のインストールヘルパー (indexedDB クォータ、RemoteDebugger、キーボードヘルパー、スクリーンショットツール) の提供を行います。</p>
+
+<p>しかし <code>shell.js</code> でもっとも重要な機能は Gaia の <code>system</code> アプリを起動して、システム全体に関する管理処理を Gaia の <code>system</code> アプリに引き渡すことです。</p>
+
+<pre class="brush: js">let systemAppFrame =
+ document.createElementNS('http://www.w3.org/1999/xhtml', 'html:iframe');
+ ...
+ container.appendChild(systemAppFrame);</pre>
+
+<h5 id="b2gappb2g.js" name="b2gappb2g.js">b2g/app/b2g.js</h5>
+
+<p>このスクリプトはブラウザでの about:config や Gaia の pref.js のように、あらかじめ定義された設定を持っています。これらの設定内容は設定アプリで変更可能であり、また Gaia のビルドスクリプトで user.js による上書きも可能です。</p>
+
+<h4 id="domAPI" name="domAPI">dom/{API}</h4>
+
+<p>新たな API の実装 (post-b2g) は <code>dom/</code> に配置します。<code>navigator.cpp</code> など旧来の API は、<code>dom/base</code> に配置しています。</p>
+
+<h5 id="domapps" name="domapps">dom/apps</h5>
+
+<p><code>.jsm</code> が読み込まれます。これは <code>webapp.js</code> のような <code>.js</code> ファイルによる API 実装のインストールや <code>getSelf</code> などがあります。</p>
+
+<h5 id="domappsPermissionsTable.jsm" name="domappsPermissionsTable.jsm">dom/apps/PermissionsTable.jsm</h5>
+
+<p>すべての許可設定を <a href="http://mxr.mozilla.org/mozilla-central/source/dom/apps/PermissionsTable.jsm">PermissionsTable.jsm</a> で定義しています。</p>
+
+<h4 id="domwebidl" name="domwebidl">dom/webidl</h4>
+
+<p>WebIDL は、Web API の定義に使用する言語です。サポートする属性については <a href="/ja/docs/Mozilla/WebIDL_bindings">WebIDL_bindings</a> をご覧ください。</p>
+
+<h4 id="halgonk" name="halgonk">hal/gonk</h4>
+
+<p>このディレクトリには、Gonk のポーティング層に関するファイルが入っています。</p>
+
+<h4 id="Generated_files" name="Generated_files">Generated files</h4>
+
+<h5 id="modulelibprefsrcinitall.js" name="modulelibprefsrcinitall.js">module/libpref/src/init/all.js</h5>
+
+<p>すべての設定ファイルを包含します。</p>
+
+<h5 id="systemb2g_omni.ja_and_omni.js" name="systemb2g_omni.ja_and_omni.js">/system/b2g/ omni.ja および omni.js</h5>
+
+<p>デバイス内のリソース向けのスタイルパックを包含します。</p>
+
+<h3 id="Processing_input_events" name="Processing_input_events">入力イベントの処理</h3>
+
+<p>Gecko 内部のほとんどのアクションは、ユーザのアクションによって発生します。これらのアクションは入力イベント (ボタン押下、タッチスクリーンデバイスのタッチなど) で表されます。これらのイベントは、Gecko アプリケーションに対する主要な入口を表すために使用される Gecko のインタフェースである、<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIAppShell" title="">nsIAppShell</a></code> の <a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsAppShell.cpp" rel="custom">Gonk 実装</a>を通して Gecko に入力されます。すなわち、入力デバイスのドライバがユーザインタフェースへイベントを送信するために、Gecko のサブシステムに対応する <code>nsAppShell</code> オブジェクトのメソッドを呼び出します。</p>
+
+<p>例:</p>
+
+<pre class="brush:cpp;">void GeckoInputDispatcher::notifyKey(nsecs_t eventTime,
+ int32_t deviceId,
+ int32_t source,
+ uint32_t policyFlags,
+ int32_t action,
+ int32_t flags,
+ int32_t keyCode,
+ int32_t scanCode,
+ int32_t metaState,
+ nsecs_t downTime) {
+ UserInputData data;
+ data.timeMs = nanosecsToMillisecs(eventTime);
+ data.type = UserInputData::KEY_DATA;
+ data.action = action;
+ data.flags = flags;
+ data.metaState = metaState;
+ data.key.keyCode = keyCode;
+ data.key.scanCode = scanCode;
+ {
+ MutexAutoLock lock(mQueueLock);
+ mEventQueue.push(data);
+ }
+ gAppShell-&gt;NotifyNativeEvent();
+}</pre>
+
+<p>これらのイベントは、標準的な Linux の <code>input_event</code> システムから発生します。B2G OS では <a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/libui/InputReader.cpp" rel="custom">light abstraction layer</a> を使用します。これは、イベントのフィルタリングなど便利な機能を提供します。<a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/libui/EventHub.cpp" rel="custom">widget/gonk/libui/EventHub.cpp</a> で、入力イベントを生成するコードをご覧いただけます。</p>
+
+<p>イベントが Gecko に受け取られると、それらのイベントは <code><a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsAppShell.cpp" rel="custom">nsAppShell</a></code> によって DOM へ送られます:</p>
+
+<pre class="brush:cpp;">static nsEventStatus sendKeyEventWithMsg(uint32_t keyCode,
+ uint32_t msg,
+ uint64_t timeMs,
+ uint32_t flags) {
+ nsKeyEvent event(true, msg, NULL);
+ event.keyCode = keyCode;
+ event.location = nsIDOMKeyEvent::DOM_KEY_LOCATION_MOBILE;
+ event.time = timeMs;
+ event.flags |= flags;
+ return nsWindow::DispatchInputEvent(event);
+}
+</pre>
+
+<p>その後、イベントは Gecko 自身によって処理されるか、さらなる処理のために <a href="/ja/docs/DOM_Client_Object_Cross-Reference/DOM_Events" title="DOM_Client_Object_Cross-Reference/DOM_Events">DOM events</a> として Web アプリケーションに発行されます。</p>
+
+<h3 id="Graphics" name="Graphics">グラフィックス</h3>
+
+<p>ごく低水準な部分では、Gecko はハードウェアのフレームバッファーをラップする GL コンテキストの描画に <a href="http://www.khronos.org/opengles/2_X/" title="http://www.khronos.org/opengles/2_X/">OpenGL ES 2.0</a> を使用します。これは以下のようなコードにより、<code><a href="https://dxr.mozilla.org/mozilla-central/source/widget/gonk/nsWindow.cpp" rel="custom">nsWindow</a></code> の Gonk 実装によって行われます:</p>
+
+<pre class="brush:cpp;">gNativeWindow = new android::FramebufferNativeWindow();
+sGLContext = GLContextProvider::CreateForWindow(this);</pre>
+
+<p><code>FramebufferNativeWindow</code> クラスは Android からそのまま取り込んでいます。<a href="https://github.com/android/platform_frameworks_base/blob/ics-mr1-release/libs/ui/FramebufferNativeWindow.cpp" title="https://github.com/android/platform_frameworks_base/blob/ics-mr1-release/libs/ui/FramebufferNativeWindow.cpp"><code>FramebufferNativeWindow.cpp</code></a> をご覧ください。これはバッファーをフレームバッファーデバイスからメモリーに対応付ける目的でグラフィックドライバーへアクセスするために <strong>gralloc</strong> API を使用します。</p>
+
+<p>Gecko は描画されたコンテンツをスクリーンに合成するために、自身の<a href="/ja/docs/Gecko/Layers" title="Gecko/Layers">レイヤー</a>システムを使用します。要約すると、以下のようなことが行われます:</p>
+
+<ol>
+ <li>Gecko がページの個々の部分をメモリバッファーに描画します。これらのバッファーはシステムメモリーにある場合があります。あるいは、これらが Gecko のアドレス空間にマッピングされたテクスチャであることもあり、これは Gecko が直接ビデオメモリーへ描画します。これは一般に、<a href="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#83" title="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#201"><code>BasicThebesLayer::PaintThebes()</code></a> メソッドで行われます。</li>
+ <li>そして、Gecko はこれらすべてのテクスチャを OpenGL コマンドを使用してスクリーンに合成します。この合成処理は <a href="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/opengl/ThebesLayerOGL.cpp#124" title="http://mxr.mozilla.org/mozilla-central/source/gfx/layers/basic/BasicThebesLayer.cpp#201"><code>ThebesLayerOGL::RenderTo()</code></a> で行われます。</li>
+</ol>
+
+<p>Gecko が Web コンテンツのレンダリングをどのように制御するかの詳細は、本ドキュメントの範囲から外れます。</p>
+
+<h3 id="Hardware_Abstraction_Layer_(HAL)" name="Hardware_Abstraction_Layer_(HAL)">Hardware Abstraction Layer (HAL)</h3>
+
+<p>Gecko Hardware Abstraction Layer は、Gecko のポーティング層の一つです。これは、Gecko の高水準層が利用可能な C++ の API を使用して、複数のプラットフォームにまたがってシステムインタフェースへの低水準なアクセスを制御します。これらの API は Gecko HAL 自身の内部で、プラットフォームごとに実装されています。Gecko ではこの Hardware Abstraction Layer が、JavaScript に対して直接は公開されていません。この対話の部分は、Web API によって処理されます。</p>
+
+<p>高水準層から処理方式を見てみましょう。ユーザが電話機の機能 (電話をかける、Wi-Fi ネットワークにアクセスする、Bluetooth で接続するなど) を使用する要求を発すると、B2G OS のスタックの全階層がその要求の伝達に関わります。Gaia 層のアプリや Web コンテンツが Web API の呼び出し (HTML5 内の機能で実行されます) により、下層のデバイスへのアクセスを要求します。この Web API は Gecko に実装しています。Gecko は同様に、Gonk へ要求します。Gecko が発したひとつの要求は複合的な一連の操作を発生させることもあり、Gonk が携帯電話機内で操作の生成や制御を行います。</p>
+
+<h4 id="How_the_HAL_works" name="How_the_HAL_works">HAL の動作</h4>
+
+<p>例として <a href="/ja/docs/Web/API/Window/navigator/vibrate" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Vibration</code></a> API について考えてみましょう。この API 向けの Gecko HAL は <a href="https://dxr.mozilla.org/mozilla-central/source/hal/Hal.h" rel="custom">hal/Hal.h</a> で定義されています。本質的には (明快さのために、メソッドのシグネチャを単純化します)、以下の関数があります:</p>
+
+<pre>void Vibrate(const nsTArray&lt;uint32&gt; &amp;pattern);</pre>
+
+<p>これは、指定されたパターンに従ってデバイスのバイブレーション機能を起動するために Gecko のコードから呼び出される関数です。これに対応する関数として、実行中のバイブレーションを止める関数があります。このメソッドの Gonk 実装は <a href="https://dxr.mozilla.org/mozilla-central/source/hal/gonk/GonkHal.cpp" rel="custom">hal/gonk/GonkHal.cpp</a> にあります:</p>
+
+<pre class="brush:cpp;">void Vibrate(const nsTArray&lt;uint32_t&gt; &amp;pattern) {
+ EnsureVibratorThreadInitialized();
+ sVibratorRunnable-&gt;Vibrate(pattern);
+}
+</pre>
+
+<p>このコードはデバイスのバイブレーションを開始するためのリクエストを、別のスレッドに送信します。そのスレッドは、<code>VibratorRunnable::Run()</code> で実装されています。このスレッドのメインループは以下のようになります:</p>
+
+<pre class="brush:cpp;">while (!mShuttingDown) {
+ if (mIndex &lt; mPattern.Length()) {
+ uint32_t duration = mPattern[mIndex];
+ if (mIndex % 2 == 0) {
+ vibrator_on(duration);
+ }
+ mIndex++;
+ mMonitor.Wait(PR_MillisecondsToInterval(duration));
+ }
+ else {
+ mMonitor.Wait();
+ }
+}
+</pre>
+
+<p><code>vibrator_on()</code> はバイブレーション装置を起動する、Gonk HAL の API です。内部では、このメソッドは <code>sysfs</code> を使用してカーネルオブジェクトに値を書き込むことにより、カーネルドライバーへメッセージを送信します。</p>
+
+<h4 id="Fallback_HAL_API_implementations" name="Fallback_HAL_API_implementations">代替の HAL API 実装</h4>
+
+<p>Gecko HAL の API は、すべてのプラットフォームにわたってサポートされています。バイブレーション装置へのインタフェースを公開しないプラットフォーム (デスクトップコンピュータなど) 向けに Gecko がビルドされたときは、HAL API の代替実装が使用されます。バイブレーションでは、これは <a href="https://dxr.mozilla.org/mozilla-central/source/hal/fallback/FallbackVibration.cpp" rel="custom">hal/fallback/FallbackVibration.cpp</a> に実装されています。</p>
+
+<pre class="brush:cpp;">void Vibrate(const nsTArray&lt;uint32_t&gt; &amp;pattern) {
+}</pre>
+
+<h4 id="Sandbox_implementations" name="Sandbox_implementations">サンドボックスの実装</h4>
+
+<p>ほとんどの Web コンテンツは低い権限の content プロセスで動作するため、これらのプロセスが (例えば) バイブレーション装置を起動・停止できるのに必要な権限を持っていると考えることはできません。加えて、潜在的な競合状態を制御するための中心的な場所が必要です。Gecko HAL ではこれを、HAL の "サンドボックス" 実装により実現しました。このサンドボックス実装は単純に、content プロセスから発生されたリクエストの代理となって "Gecko server" プロセスに転送します。代理のリクエストは IPDL を使用して送信されます。</p>
+
+<p>バイブレーションの場合、これは <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/SandboxHal.cpp" rel="custom">hal/sandbox/SandboxHal.cpp</a> で実装されている <code>Vibrate()</code> 関数で制御されます:</p>
+
+<pre class="brush:cpp;">void Vibrate(const nsTArray&lt;uint32_t&gt;&amp; pattern, const WindowIdentifier &amp;id) {
+ AutoInfallibleTArray&lt;uint32_t, 8&gt; p(pattern);
+
+ WindowIdentifier newID(id);
+ newID.AppendProcessID();
+ Hal()-&gt;SendVibrate(p, newID.AsArray(), GetTabChildFrom(newID.GetWindow()));
+}</pre>
+
+<p>これは <code>PHal</code> インタフェースで定義されたメッセージを送信します。また <code>PHal</code> インタフェースは <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/PHal.ipdl" rel="custom">hal/sandbox/PHal.ipdl</a> で、IPDL を用いて記述されています。このメソッドは、おおむね以下のように記述されています:</p>
+
+<pre>Vibrate(uint32_t[] pattern);</pre>
+
+<p>このメッセージの受信側は <a href="https://dxr.mozilla.org/mozilla-central/source/hal/sandbox/SandboxHal.cpp" rel="custom">hal/sandbox/SandboxHal.cpp</a> にある <code>HalParent::RecvVibrate()</code> メソッドであり、以下のようなものです:</p>
+
+<pre class="brush:cpp;">virtual bool RecvVibrate(const InfallibleTArray&lt;unsigned int&gt;&amp; pattern,
+ const InfallibleTArray&lt;uint64_t&gt; &amp;id,
+ PBrowserParent *browserParent) MOZ_OVERRIDE {
+
+ hal::Vibrate(pattern, newID);
+ return true;
+}</pre>
+
+<p>ここでは、説明に関係ない詳細部分を省略しています。それでも、メッセージが content プロセスから Gecko を通して Gonk へ、そして <code>Vibrate()</code> の Gonk HAL 実装、最終的にバイブレーション機能のドライバまでどのように進むかを示しています。</p>
+
+<h3 id="DOM_APIs" name="DOM_APIs">DOM API</h3>
+
+<p><strong>DOM インタフェース</strong> は、本質的には Web コンテンツが Gecko と通信する方法です。実際はさらに複雑であり、もし詳細に興味があるのでしたら <a href="/ja/docs/DOM/About_the_Document_Object_Model" title="DOM/About_the_Document_Object_Model">DOM について</a>のドキュメントを読むとよいでしょう。DOM インタフェースは <a href="/ja/docs/XPIDL" title="XPIDL">IDL</a> を使用して定義されます。IDL は JavaScript と C++ との間の他言語関数インタフェース (FFI) とオブジェクトモデル (OM) で構成されます。</p>
+
+<p>Vibration API は IDL インタフェースを通して Web コンテンツに公開されており、それは <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/interfaces/base/nsIDOMNavigator.idl" rel="custom">nsIDOMNavigator.idl</a>:</code> で提供されます。</p>
+
+<pre>[implicit_jscontext] void mozVibrate(in jsval aPattern);</pre>
+
+<p><a href="/ja/docs/SpiderMonkey/JSAPI_Reference/Jsval" title="SpiderMonkey/JSAPI_Reference/JSVAL_IS_OBJECT"><code>jsval</code></a> 引数は、<code>mozVibrate()</code> (これは未確定の Vibration 仕様に対する、私たちのベンダ接頭辞付きの実装です) が任意の JavaScript 値を入力として受け入れることを示します。IDL コンパイラである <a href="/ja/docs/XPIDL/xpidl" title="XPIDL/xpidl"><code>xpidl</code></a> は、のちに <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/base/Navigator.cpp" rel="custom">Navigator.cpp</a></code> の <code>Navigator</code> クラスによって実装される C++ のインタフェースを生成します。</p>
+
+<pre class="brush:cpp;">NS_IMETHODIMP Navigator::MozVibrate(const jsval&amp; aPattern, JSContext* cx) {
+ // ...
+ hal::Vibrate(pattern);
+ return NS_OK;
+}</pre>
+
+<p>このメソッドにはご覧いただいているものより多くのコードが含まれていますが、ここでの説明内容に対しては重要でないものです。ポイントは <code>hal::Vibrate()</code> の呼び出しが、制御を DOM から Gecko HAL に移していることです。ここから前の章で説明した HAL 実装に入り、デバイスドライバまで処理が進んでいきます。これに加えて、DOM 実装は実行しているプラットフォームが何か (Gonk、Windows、OS X など) はまったく気にしません。また、コードが content プロセスで実行しているか Gecko サーバプロセスで実行しているかも気にしません。これらの細部は、システムの低水準層が対処するために切り離されています。</p>
+
+<p>Vibration API はとてもシンプルな API であり、例としてよいものです。<a href="/ja/docs/API/WebSMS" title="API/WebSMS">SMS API</a> は content プロセスとサーバーとの接続に自身の "remoting" 層を使用する、より複雑な API の例になります。</p>
+
+<h2 id="Radio_Interface_Layer_(RIL)" name="Radio_Interface_Layer_(RIL)">Radio Interface Layer (RIL)</h2>
+
+<p>RIL は <a href="#The_userspace_process_architecture">The userspace process architecture</a> の章でも触れました。本章では、この層のさまざまな部品がどのように作用しあうかをもう少し詳しく見ていきます。</p>
+
+<p>RIL に関係する主要コンポーネントは以下の通りです:</p>
+
+<dl>
+ <dt><code>rild</code></dt>
+ <dd>プロプライエタリなモデムのファームウェアと対話するデーモンです。</dd>
+ <dt><code>rilproxy</code></dt>
+ <dd><code>rild</code> と Gecko の間でメッセージを中継するデーモンです (これは <code>b2g</code> プロセス内に実装されています)。これは <code>rild</code> と直接対話しようとするときに発生するパーミッションの問題を克服するものです。この問題が発生する理由は、<code>rild</code> は <code>radio</code> グループ内でのみ通信が可能であるためです。</dd>
+ <dt><code>b2g</code></dt>
+ <dd><strong>chrome プロセス</strong>としても知られるこのプロセスは、Gecko を実装します。そのうち Radio Interface Layer に関係する部分は、<a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">dom/system/gonk/ril_worker.js</a> です。これは <code>rilproxy</code> を通して <code>rild</code> と対話するワーカースレッドや radio state machine、主に <code>ril_worker.js</code> と Gecko content プロセスを含む他の Gecko コンポーネントとの間でメッセージ交換を行うメインスレッドの <a href="/ja/docs/XPCOM" title="XPCOM">XPCOM</a> サービスである <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> インタフェースを実装します。</dd>
+ <dt>Gecko の content プロセス</dt>
+ <dd>Gecko の content プロセスにおいて <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRILContentHelper" title="">nsIRILContentHelper</a></code> インタフェース は、<a href="/ja/docs/API/WebTelephony" title="API/WebTelephony">Telephony</a> API や <a href="/ja/docs/API/WebSMS" title="API/WebSMS">SMS</a> API といった部分の DOM を実装するコードが radio interface と対話できるようにする XPCOM サービスを提供するものであり、chrome プロセス内にあります。</dd>
+</dl>
+
+<h3 id="Example_Communicating_from_rild_to_the_DOM" name="Example_Communicating_from_rild_to_the_DOM">例: rild から DOM への通信</h3>
+
+<p>システムの低水準層が DOM コードとどのように通信するかを見ていきましょう。モデムは着信を受けると、独自の方法を使用して <code>rild</code> にそれを通知します。すると <code>rild</code> は、"オープン" なプロトコルに従ってクライアント向けのメッセージを用意します。これは <a href="https://github.com/mozilla-b2g/android-hardware-ril/blob/master/include/telephony/ril.h" title="https://github.com/mozilla-b2g/android-hardware-ril/blob/master/include/telephony/ril.h"><code>ril.h</code></a> に記述されています。着信の場合は <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code> メッセージが生成されて、<code>rild</code> が <code>rilproxy</code> へ送信します。</p>
+
+<p><a href="https://github.com/mozilla-b2g/rilproxy/blob/master/src/rilproxy.c" title="https://github.com/mozilla-b2g/rilproxy/blob/master/src/rilproxy.c"><code>rilproxy.c</code></a> で実装されている <code>rilproxy</code> は自身のメインループ内でそのメッセージを受け取ります。ループでは以下のようなコードを使用して、<code>rild</code> との接続に問い合わせを行います:</p>
+
+<pre class="brush:cpp;">ret = read(rilproxy_rw, data, 1024);
+
+if(ret &gt; 0) {
+ writeToSocket(rild_rw, data, ret);
+}</pre>
+
+<p><code>rild</code> からメッセージを受け取ると、そのメッセージは <code>rilproxy</code> と Gecko を接続するソケットを通じて Gecko へ転送されます。Gecko は転送されたメッセージを <a href="https://dxr.mozilla.org/mozilla-central/source/ipc/ril/Ril.cpp" rel="custom">IPC スレッド</a>で受け取ります:</p>
+
+<pre class="brush:cpp;">int ret = read(fd, mIncoming-&gt;Data, 1024);
+// ... handle errors ...
+mIncoming-&gt;mSize = ret;
+sConsumer-&gt;MessageReceived(mIncoming.forget());
+</pre>
+
+<p>これらのメッセージを消費するのは <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/SystemWorkerManager.cpp" rel="custom">SystemWorkerManager</a> であり、これはメッセージを再パッケージ化して、RIL ステートマシンを実装する <code><a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">ril_worker.js</a></code> スレッドに配布します。これは <code>RILReceiver::MessageReceived()</code> メソッドで行われます:</p>
+
+<pre class="brush:cpp;">virtual void MessageReceived(RilRawData *aMessage) {
+ nsRefPtr&lt;DispatchRILEvent&gt; dre(new DispatchRILEvent(aMessage));
+ mDispatcher-&gt;PostTask(dre);
+}</pre>
+
+<p>そのスレッドに渡されたタスクは次に、JavaScript で実装されている <code>onRILMessage()</code> 関数を呼び出します。これには、JavaScript の API 関数である <code><a href="/ja/docs/SpiderMonkey/JSAPI_Reference/JS_CallFunctionName" title="SpiderMonkey/JSAPI_Reference/JS_CallFunctionName">JS_CallFunctionName</a>()</code> を使用します:</p>
+
+<pre>return JS_CallFunctionName(aCx, obj, "onRILMessage", NS_ARRAY_LENGTH(argv),
+ argv, argv);</pre>
+
+<p><code>onRILMessage()</code> は <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/ril_worker.js" rel="custom">dom/system/gonk/ril_worker.js</a> で実装されており、メッセージバイトを処理して小分けします。小分けされたものはすべて、それぞれの適切なハンドラメソッドへ配られます:</p>
+
+<pre class="brush:js;">handleParcel: function handleParcel(request_type, length) {
+ let method = this[request_type];
+ if (typeof method == "function") {
+ if (DEBUG) debug("Handling parcel as " + method.name);
+ method.call(this, length);
+ }
+}
+</pre>
+
+<p>このコードはオブジェクトからリクエストタイプを取得して、それが JavaScript コードで関数として定義されているかを確かめて、それからメソッドを呼び出すように動作します。ril_worker.js ではメソッドの各リクエストタイプにリクエストタイプと同じ名前を与えていますので、この処理はとてもシンプルです。</p>
+
+<p>今回の例である <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code> では、以下のハンドラーが呼び出されます:</p>
+
+<pre class="brush:js;">RIL[UNSOLICITED_RESPONSE_CALL_STATE_CHANGED] = function UNSOLICITED_RESPONSE_CALL_STATE_CHANGED() {
+ this.getCurrentCalls();
+};</pre>
+
+<p>前出のコードで見たように通話の状態が変化したことの通知を受けたときは、ステートマシンが <code>getCurrentCall()</code> メソッドを呼び出すことで現在の通話の状態を取得します:</p>
+
+<pre class="brush:js;">getCurrentCalls: function getCurrentCalls() {
+ Buf.simpleRequest(REQUEST_GET_CURRENT_CALLS);
+}</pre>
+
+<p>これは現在アクティブなすべての通話の状態を問い合わせるために、<code>rild</code> へリクエストを送ります。リクエストは <code>RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED</code> メッセージがたどったものと似た経路を、逆方向に戻っていきます (すなわち、<code>ril_worker.js</code> から <code>SystemWorkerManager</code>、<code>Ril.cpp</code>、<code>rilproxy</code>、そして <code>rild</code> のソケットへ向かいます)。同様に <code>rild</code> は同じ経路で応答を返して、最終的に <code>ril_worker.js</code> の <code>REQUEST_GET_CURRENT_CALLS</code> メッセージ用ハンドラへたどり着きます。そして、双方向の通信が始まります。</p>
+
+<p>それからは通話の状態が処理されて、以前の状態と比較されます。状態が変化した場合は、ril_worker.js がメインスレッドの <code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> サービスに通知します:</p>
+
+<pre class="brush:js;">_handleChangedCallState: function _handleChangedCallState(changedCall) {
+ let message = {type: "callStateChange",
+ call: changedCall};
+ this.sendDOMMessage(message);
+}</pre>
+
+<p><code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRadioInterfaceLayer" title="">nsIRadioInterfaceLayer</a></code> は <a href="https://dxr.mozilla.org/mozilla-central/source/dom/system/gonk/RadioInterfaceLayer.js" rel="custom">dom/system/gonk/RadioInterfaceLayer.js</a> に実装されており、メッセージはこれの <code>onmessage()</code> メソッドが受け取ります:</p>
+
+<pre class="brush:js;"> onmessage: function onmessage(event) {
+ let message = event.data;
+ debug("Received message from worker: " + JSON.stringify(message));
+ switch (message.type) {
+ case "callStateChange":
+ // This one will handle its own notifications.
+ this.handleCallStateChange(message.call);
+ break;
+ ...
+</pre>
+
+<p>ここで実際に行っていることは、Parent Process Message Manager (PPMM) を使用した、content プロセスへのメッセージ配送です:</p>
+
+<pre class="brush:js;">handleCallStateChange: function handleCallStateChange(call) {
+ [some internal state updating]
+ ppmm.sendAsyncMessage("RIL:CallStateChanged", call);
+}</pre>
+
+<p>content プロセスではメッセージを Child Process Message Manager (CPMM) から、<code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIRILContentHelper" title="">nsIRILContentHelper</a></code> サービスの <code>receiveMessage()</code> で受け取ります:</p>
+
+<pre class="brush:js;">receiveMessage: function receiveMessage(msg) {
+ let request;
+ debug("Received message '" + msg.name + "': " + JSON.stringify(msg.json));
+ switch (msg.name) {
+ case "RIL:CallStateChanged":
+ this._deliverTelephonyCallback("callStateChanged",
+ [msg.json.callIndex, msg.json.state,
+ msg.json.number, msg.json.isActive]);
+ break;</pre>
+
+<p>これは、登録済みであるすべてのテレフォニーコールバックオブジェクトの <code><a href="https://developer.mozilla.org/ja/docs/XPCOM_Interface_Reference/nsIRILTelephonyCallback#callStateChanged()">nsIRILTelephonyCallback.callStateChanged()</a></code> メソッドを順々に呼び出します。<a href="/ja/docs/Web/API/Window/navigator/mozTelephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>window.navigator.mozTelephony</code></a> API にアクセスするすべての Web アプリケーションに、既存の call オブジェクトの状態の変化あるいは新たな <code>incoming</code> call イベントの発生といったイベントを Web アプリケーション内の JavaScript へ配送する、コールバックオブジェクトのようなものが登録されています。</p>
+
+<pre class="brush:cpp;">NS_IMETHODIMP Telephony::CallStateChanged(PRUint32 aCallIndex, PRUint16 aCallState,
+ const nsAString&amp; aNumber, bool aIsActive) {
+ [...]
+
+ if (modifiedCall) {
+ // Change state.
+ modifiedCall-&gt;ChangeState(aCallState);
+
+ // See if this should replace our current active call.
+ if (aIsActive) {
+ mActiveCall = modifiedCall;
+ }
+
+ return NS_OK;
+ }
+
+ nsRefPtr&lt;TelephonyCall&gt; call =
+ TelephonyCall::Create(this, aNumber, aCallState, aCallIndex);
+ nsRefPtr&lt;CallEvent&gt; event = CallEvent::Create(call);
+ nsresult rv = event-&gt;Dispatch(ToIDOMEventTarget(), NS_LITERAL_STRING("incoming"));
+ NS_ENSURE_SUCCESS(rv, rv);
+ return NS_OK;
+}</pre>
+
+<p>アプリケーションはこれらのイベントを受け取って、自身のユーザインタフェースなどを更新できます:</p>
+
+<pre class="brush:js;">handleEvent: function fm_handleEvent(evt) {
+ switch (evt.call.state) {
+ case 'connected':
+ this.connected();
+ break;
+ case 'disconnected':
+ this.disconnected();
+ break;
+ default:
+ break;
+ }
+}</pre>
+
+<p>高度な例として、<a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/communications/dialer/js/dialer.js" title="https://github.com/mozilla-b2g/gaia/blob/master/apps/communications/dialer/js/dialer.js">ダイヤラーアプリケーションの <code>handleEvent()</code></a> をご覧ください。</p>
+
+<h3 id="3G_data" name="3G_data">3G データ</h3>
+
+<p>RIL メッセージに、携帯電話サービスの "データ通信" を開始するものがあります。これは、モデムのデータ通信モードを有効にします。このデータ通信は、通常のインタフェースで設定可能な Linux カーネルの <a href="https://ja.wikipedia.org/wiki/Point-to-Point Protocol" title="Point-to-Point Protocol">Point-to-Point Protocol</a> (PPP) インタフェースデバイスを生成および起動します。</p>
+
+<div class="note">
+<p><strong>注記:</strong> この章は記述が必要です。</p>
+</div>
+
+<h3 id="Related_DOM_APIs" name="Related_DOM_APIs">関連 DOM API</h3>
+
+<p>ここでは、RIL 通信に関連する DOM API を紹介します:</p>
+
+<ul>
+ <li><a href="/ja/docs/API/WebTelephony/Introduction_to_WebTelephony" title="API/WebTelephony/Introduction_to_WebTelephony">Telephony API</a></li>
+ <li><a href="/ja/docs/API/WebSMS/Introduction_to_WebSMS" title="API/WebSMS/Introduction_to_WebSMS">SMS API</a></li>
+ <li>Mobile Connection API</li>
+</ul>
+
+<h2 id="WiFi" name="WiFi">WiFi</h2>
+
+<p>B2G OS の WiFi バックエンドは、単にほとんどの処理で <code>wpa_supplicant</code> を使用します。つまり、バックエンドの主な役割は単にサプリカントの管理や、WiFi ドライバーの読み込みやネットワークインタフェースの有効化・無効化といった付加的な作業になります。つまりバックエンドは、サプリカントの状態を追跡するステートによるステートマシンになります。</p>
+
+<div class="note">
+<p><strong>注記:</strong> WiFi で発生する興味深い事象のほとんどは、<code>wpa_supplicant</code> プロセスで起こりうる状態の変化に深く依存しています。</p>
+</div>
+
+<p>WiFi コンポーネントの実装は、2 つのファイルに分かれています:</p>
+
+<dl>
+ <dt><a href="https://dxr.mozilla.org/mozilla-central/source/dom/wifi/DOMWifiManager.js" rel="custom">dom/wifi/DOMWifiManager.js</a></dt>
+ <dd><code><a href="/ja/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIWifi.idl" title="">nsIWifi.idl</a></code> で定義されており、Web content に公開する API を実装します。</dd>
+ <dt><a href="https://dxr.mozilla.org/mozilla-central/source/dom/wifi/WifiWorker.js" rel="custom">dom/wifi/WifiWorker.js</a></dt>
+ <dd>ステートマシンと、サプリカントを操作するコードを実装します。</dd>
+</dl>
+
+<p>これら 2 つのファイルは互いに<a href="/ja/docs/The_message_manager" title="The_message_manager">メッセージマネージャ</a>を使用して通信します。バックエンドは "associate" などのアクションを求めるメッセージを受け入れて、アクションが完了したときに応答メッセージを返します。</p>
+
+<p>DOM 側は状態の変化や情報の更新を示すさまざまなメッセージと同様に、応答メッセージを受け入れます。</p>
+
+<div class="note">
+<p><strong>注記:</strong> どの同期 DOM API も、パイプの API 側にデータをキャッシュするよう実装されています。可能であれば同期メッセージは避けてください。</p>
+</div>
+
+<h3 id="WifiWorker.js" name="WifiWorker.js">WifiWorker.js</h3>
+
+<p>このファイルでは、WiFi インタフェースの背後にある主要なロジックを実装しています。これは chrome プロセス (マルチプロセスビルド) で実行され、SystemWorkerManager によってインスタンス化されます。このファイルはおおむね 2 つのセクションに分けられます: 大きな無名関数と <code>WifiWorker</code> (およびそのプロトタイプ) です。無形関数は最終的に、サプリカントへの接続やスキャン結果が利用可能になったといったイベントの通知を含むローカル API を提供することで、<code>WifiManager</code> になります。通常これには小さなロジックが含まれ、要求された情報への応答やサプリカントとの接続の細部を管理するのと合わせて唯一の利用者がそのアクションを制御できるようにします。</p>
+
+<p><code>WifiWorker</code> オブジェクトは、<code>WifiManager</code> とDOM の間にあります。これはイベントに反応して、それらを DOM に転送します。同様に DOM からの要求を受け取って、対応するアクションをサプリカントで実行します。また、サプリカントの状態に関する情報や次に何を行うべきかの管理も行います。</p>
+
+<h3 id="DOMWifiManager.js" name="DOMWifiManager.js">DOMWifiManager.js</h3>
+
+<p>これは DOM API を実装しており、メッセージを呼び出し元と実際の WiFi worker との間でやり取りします。これに関係する、とても小さなロジックがあります。</p>
+
+<div class="note">
+<p><strong>注記:</strong> chrome プロセスへの同期メッセージを避けるため、WiFi Manager は受け取ったメッセージに基づいて状態をキャッシュすることが必要です。</p>
+</div>
+
+<p>同期メッセージが 1 つあり、これは現在のサプリカントの状態を取得するために DOM API がインスタンス化されたときに送信されます。</p>
+
+<h3 id="DHCP" name="DHCP">DHCP</h3>
+
+<p>DHCP および DNS は標準的な Linux の DHCP クライアントである <code>dhcpcd</code> によって制御されます。しかし、これはネットワーク接続が失われたときに対応できません。このため、B2G OS はワイヤレスネットワークに接続するたびに <code>dhcpcd</code> を停止および再起動します。</p>
+
+<p><code>dhcpcd</code> はデフォルトルートの設定も担います。DNS サーバーについてカーネルに伝達するためには Network Manager を呼び出します。</p>
+
+<h2 id="Network_Manager" name="Network_Manager">Network Manager</h2>
+
+<p>Network Manager は 3G データ通信や WiFi コンポーネントによって開かれたネットワークインタフェースの設定を行います。</p>
+
+<div class="note">
+<p><strong>注記:</strong> この章は記述が必要です。</p>
+</div>
+
+<h2 id="Processes_and_threads" name="Processes_and_threads">プロセスとスレッド</h2>
+
+<p>B2G OS はすべてのアプリケーションスレッドの実装に POSIX スレッドを使用しており、それには各アプリケーションのメインスレッドだけでなく Web worker やヘルパースレッドも含まれます。プロセスやスレッドの優先度付けに Control groups を使用していることから、Linux カーネル の Completely Fair Scheduler に依存しています。プロセスの状態に応じて、異なる Control group を割り当てています。現在は、5 つの Control group に対応する 6 つのプライオリティレベルがあります:</p>
+
+<table class="standard-table">
+ <caption>プロセスのプライオリティレベル</caption>
+ <thead>
+ <tr>
+ <th scope="col">プライオリティ</th>
+ <th scope="col">Control group</th>
+ <th scope="col">用途</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>MASTER</code></td>
+ <td> </td>
+ <td>メイン b2g プロセス</td>
+ </tr>
+ <tr>
+ <td><code>FOREGROUND_HIGH</code></td>
+ <td><code>apps/critical</code></td>
+ <td><code>cpu</code> または <code>highpriority</code> の Wakelock を保持する重要なアプリケーション。現在は時計や通信のアプリケーション向けに予約されています。</td>
+ </tr>
+ <tr>
+ </tr>
+ <tr>
+ <td><code>FOREGROUND</code></td>
+ <td><code>apps</code></td>
+ <td>フォアグラウンドのアプリケーション</td>
+ </tr>
+ <tr>
+ <td><code>FOREGROUND_KEYBOARD</code></td>
+ <td><code>apps</code></td>
+ <td>キーボードアプリケーション</td>
+ </tr>
+ <tr>
+ <td><code>BACKGROUND_PERCEIVABLE</code></td>
+ <td><code>apps/bg_perceivable</code></td>
+ <td>音声を再生している、あるいは <code>cpu</code> または <code>highpriority</code> の Wakelock を保持しており、少なくともシステムメッセージハンドラを登録しているアプリケーション</td>
+ </tr>
+ <tr>
+ <td><code>BACKGROUND</code></td>
+ <td><code>apps/bg_non_interactive</code></td>
+ <td>バックグラウンドで実行している、上記以外のアプリケーション</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>同じ Control group を共有するレベルがありますが、これは現在、<a href="/ja/Firefox_OS/Platform/Out_of_memory_management_on_Firefox_OS">Out of Memory Killer</a> による扱われ方の違いをレベルの違いとしているためです。すべてのプライオリティは、設定によりビルド時に調節できます。関係する項目は <a href="http://hg.mozilla.org/mozilla-central/file/54e8c6492dc4/b2g/app/b2g.js#l610"><code>b2g/app/b2g.js</code></a> ファイルにあります。</p>
+
+<p>現在は以下の Control group を使用しています:</p>
+
+<table class="standard-table">
+ <caption>Control group</caption>
+ <thead>
+ <tr>
+ <th scope="col">パス</th>
+ <th scope="col">CPU 割り当て</th>
+ <th scope="col">説明</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td> </td>
+ <td>全 CPU 時間の 50%</td>
+ <td>メイン b2g プロセスやシステムデーモン向けに予約している、ルート Control group</td>
+ </tr>
+ <tr>
+ <td><code>apps</code></td>
+ <td>全 CPU 時間の 50%</td>
+ <td>一般のアプリケーション</td>
+ </tr>
+ <tr>
+ <td><code>apps/critical</code></td>
+ <td><code>apps</code> の 95%</td>
+ <td>重要なアプリケーション</td>
+ </tr>
+ <tr>
+ <td><code>apps/bg_perceivable</code></td>
+ <td><code>apps</code> の 10%</td>
+ <td>知覚可能なバックグラウンドアプリケーション</td>
+ </tr>
+ <tr>
+ <td><code>apps/bg_non_interactive</code></td>
+ <td><code>apps</code> の 5%</td>
+ <td>バックグラウンドアプリケーション</td>
+ </tr>
+ </tbody>
+</table>
+
+<div class="note">
+<p><strong>注記</strong>: Out of Memory Killer の詳細情報および B2G OS が低メモリ状態にどう対処するかについては、<a href="/ja/Firefox_OS/Platform/Out_of_memory_management_on_Firefox_OS">B2G OSの低メモリ管理</a>をご覧ください。</p>
+</div>
+
+<p>プロセス内ではメインスレッドがプロセスの "nice 値" を継承する一方、Web Worker のスレッドは 1 段階大きな "nice 値" が与えられますので低いプライオリティで実行されます。この措置は、CPU 負荷が高い worker がメインスレッドの実行を過度に遅くさせないために行います。現在、アプリケーションのスレッドはすべて、同じ Control group に割り当てます。プロセスのプライオリティは、アプリケーションがバックグラウンドやフォアグラウンドに変わる、新たなアプリケーションを起動する、既存のアプリケーションが CPU Wakelock を取得するなど、主要なイベントが発生するたびに変更されます。</p>
+
+<div class="note">
+<p><strong>注記:</strong> 現在 ICS デバイスの cgroups サポートは、カーネルのバグにより破損しています。</p>
+</div>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/gaia_ui_tests_run_tests/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/gaia_ui_tests_run_tests/index.html
new file mode 100644
index 0000000000..488d7af933
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/gaia_ui_tests_run_tests/index.html
@@ -0,0 +1,356 @@
+---
+title: 'Gaia UI Tests: Running Tests'
+slug: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Gaia_UI_Tests_Run_Tests
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Guide
+ - Testing
+ - gaia-ui-test
+ - gaiatest
+translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Gaia_UI_Tests_Run_Tests
+---
+<div><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section></div>
+
+<div class="summary">
+<p><span class="seoSummary">この記事は、実際のFireFox OS 端末やB2Gデスクトップ、Gaia 自身内部にあるものに合わせた、Gaia UI テストの実行の仕方・流れの詳細を配信してます。Gaia プロジェクトは、コミット毎の継続的インテグレーションとプルリクエストテストをする為に、<a href="https://treeherder.mozilla.org/">Treeherder</a> を使用しています。</span></p>
+</div>
+
+<p>Gaia UI テスト は、実際の端末やエミュレーター、<a href="https://developer.mozilla.org/en-US/Firefox_OS/Using_the_B2G_desktop_client">B2G Desktop </a>クライアントで実行する性能をもって開発されています。もっとずっと簡単な方法は、B2G デスクトップに対して実行させることです。あなたがお使いのFirefox OS のバージョンと対して実行させる為に、Gaia の正しいブランチを選ばないといけないことを、忘れないで下さい。</p>
+
+<h2 id="sect1"> </h2>
+
+<h2 id="B2G_デスクトップ上でテスト">B2G デスクトップ上でテスト</h2>
+
+<p>B2G クラインアントは、次のようなものです。:デスクトップから楽にFirefox OS上でwebアプリケーションのテスト実行に使える、B2Gのデスクトップ・バージョンです。もし、このテストに詳しくなければ、<a href="https://developer.mozilla.org/en-US/Firefox_OS/Using_the_B2G_desktop_client">B2G デスクトップ・クライアント・テストの使用</a>をお読み下さい。この項目では、B2GデスクトップでのUI テストの仕方を教えています。</p>
+
+<div class="note">
+<p>ショートカット:手作業でのPCの環境設定が嫌でしたら、<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Automated_testing/MozITP">MozITP</a>を使用できます。このツール・セットは自動で、仮想マシンのUbuntu と、任意のタイミングで1クリックで実物のデバイスやMulet 上でのテストを開始できる、gaia UI テスト環境を準備・設定してくれます。</p>
+</div>
+
+<div>
+<h3 id="sect2"> </h3>
+
+<h3 id="前提条件">前提条件</h3>
+
+<p> ●デスクトップ版B2G をビルドして下さい。 ご自分のPCか仮想マシンのディレクトリに、<a href="http://nightly.mozilla.org/">こちら</a>(試用版を含む)をダウンロードするか<a href="https://developer.mozilla.org/en-US/Firefox_OS/Using_the_B2G_desktop_client#Building_the_desktop_client">自身でコンパイル</a>し、mozconfig ファイルに、<code>ENABLE_MARIONETTE=1</code> この1行を追加して下さい。</p>
+
+<p>●<a href="https://github.com/mozilla-b2g/gaia/">Gaia Github repository</a> がクローン(コピー)を生成し、確認します。ここでプロフィールを生成する必要があります。<code>プロフィールの生成をしている間、DEBUG=1 で通過していけないことを、注意して下さい。</code>Gaia プロフィールのデバッグの使用は、Gaia UI テストからB2G デスクトップ・インスタンスへ接続への失敗の原因となります。</p>
+
+<p>● <code>testvars.json ファイル で以下を確認して下さい。</code></p>
+
+<p><a href="#Configuring_test_variables">Configuring test variables</a></p>
+
+<p>実物のデバイスが使用できず、電話レベル機能が必要ない場合、デスクトップ B2G クライアントは、テスト開発に理想的です。テストの実行が速く、入手しやすく、MacやWindows、Linux で行えます!</p>
+
+<h3 id="テストの実行">テストの実行</h3>
+
+<p>新しいテストの実行を確認して見ていきましょう。自分達の変更点が即拾い上げられるように、私達は、Gaia のリポジトリーから直接、gaiatest の作業tree内のバージョンをインストールしています。あなたがクローンを生成したGaiaのバージョンで、<code>gaia/tests/python/gaia-ui-tests</code>  へ移動し、下記の設定のコマンドを実行して下さい。</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">python setup.py develop</code></pre>
+
+<p>これは、仮想環境内で実行されない時、権限の拒否によるエラーを与えることがあります。その場合では、まだインストールされていないなら <code>virtualenv</code> と <code>virtualenvwrapper</code> をインストールします。</p>
+
+<pre>pip install virtualenv
+pip install virtualenvwrapper (perhaps need to use sudo here)
+export WORKON_HOME=~/Envs
+source /usr/local/bin/virtualenvwrapper.sh
+<code class="java plain">echo </code><code class="java string">"source /usr/local/bin/virtualenvwrapper.sh"</code> <code class="java plain">&gt;&gt; .bash (rc or _profile)</code></pre>
+
+<p>それから、仮想環境を作って入って下さい。</p>
+
+<pre><code>mkvirtualenv gaia-ui-test</code></pre>
+
+<p>私達がテストを始める場合、Marionette経由で <code>gaiatest</code> はB2Gデスクトップを起動できます。これをするには、B2GバイナリーファイルとB2Gプロファイルへのパスを渡しておく必要があります。下記の例では <code>$HOME</code> 変数に <code>b2g</code> バイナリーと b2g プロファイルを含めています。これは単に、B2Gデスクトップをダウンロード後に、zip展開した場所です。全てのテストを実行するコマンドは下記の通り:</p>
+</div>
+
+<pre class="brush: bash">gaiatest --binary=$HOME/b2g/b2g-bin --profile=$HOME/b2g/gaia/profile --testvars=testvars.json --restart --type=b2g ./gaiatest/tests/functional/manifest.ini
+</pre>
+
+<p>B2G デスクトップに互換性のないテスト — 例えば電話をかけたりSMS送信したりするもの — はテスト実行から自動的に省かれます。</p>
+
+<p>コマンドライン上でファイルを直接呼んでテスト実行できます:</p>
+
+<pre class="brush: bash">gaiatest --binary=$HOME/b2g/b2g-bin --profile=$HOME/b2g/gaia/profile --testvars=testvars.json --restart ./gaiatest/tests/functional/clock/test_clock_set_alarm.py
+</pre>
+
+<h2 id="Firefox_OS_デバイスの上でのテスト">Firefox OS デバイスの上でのテスト</h2>
+
+<p><span style="line-height: 1.5;">実際のFirefox OSデバイス上でのテストは、より複雑です。しかし、テストの中で実際のデバイス上でAPIにアクセスする(+ etc...)ため、より正確な結果を得る事ができます。全てのデバイスAPIや、ハードウェア機能といったものへアクセスできます。しなしながら、Firefox OS の実端末を持っていない場合や、使っている機能が実際のハードウェアを必要としない場合は、エミュレータ内で一般機能をテストすることもできます。</span></p>
+
+<div class="note">
+<p>If you don't want to setup the environment manually. You can try <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Automated_testing/MozITP">MozITP</a>, it will automatically setup a pre-configured Ubuntu VM and Gaia UI Test environment, so you can start testing on real device or simulator in one-click.</p>
+</div>
+
+<p><font size="5"><span style="letter-spacing: -0.5px; line-height: 24px;">前提条件</span></font></p>
+
+<div>
+<ul>
+ <li><a href="/en-US/Firefox_OS/Debugging/Installing_ADB">Android Debug Bridge</a> がPCにインストールされていること、<a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev rules configured</a> が済んでいること</li>
+ <li>Marionetteが有効になっているビルドのソフトがフラッシュされた、Firefox OSデバイス</li>
+ <li>あなたのFirefox OSデバイスにフラッシュされたソフトをビルドした際、cloneしてcheck outしたものと同じブランチの、gaiaレポジトリ (<a href="https://github.com/mozilla-b2g/gaia/">Gaia Github repository</a>) </li>
+ <li><a href="#testvars">testvars.json ファイル</a>  (詳しくは、他の関連セクションで説明されています)</li>
+</ul>
+</div>
+
+<h3 id="テストを実行する">テストを実行する</h3>
+
+<p>The gaiatest package is needed to run the tests. We need to install this for the branch that we want to run the tests on. Navigate to the <code>gaia/tests/python/gaia-ui-tests/</code> directory and install gaiatest with this command:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">python setup.py develop</code></pre>
+
+<div class="note">
+<p><strong>Note</strong>: Before you start to run the test, read through <a href="http://gaiatest.readthedocs.org/en/latest/testrunner.html#risks" title="https://developer.mozilla.org/en-US/docs/Gaia_Test_Runner#Risks">this warning</a> in order to acknowledge that running gaia-ui-tests on a device may cause data to be deleted from the device!</p>
+</div>
+
+<div class="note">
+<p><strong>Debug Firefox OS builds: </strong>Firefox OS builds built with DEBUG=1 will need a greater timeout than the default (20 seconds). Try adding to the command line --timeout 60000 or higher, depending upon the speed of the device.</p>
+</div>
+
+<p>Marionette on the device awaits commands on port 2828. We need to forward our local port to the remote port on the device using adb. Run the following command:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">adb forward tcp:2828 tcp:2828</code></pre>
+
+<p>Please be reminded that you'll need to start your emulator before the command, if you are not running on a real Firefox OS device.</p>
+
+<p>You can use the following command to execute all the gaia-ui-tests:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">gaiatest --address=localhost:2828 --testvars=&lt;TESTVARS_FILE&gt; --restart --type=b2g gaiatest/tests/functional/manifest.ini</code></pre>
+
+<p>Or use the following if you want to run a single test (substituting the last part for the actual test you want to run):</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">gaiatest --address=localhost:2828 --testvars=&lt;TESTVARS_FILE&gt; --restart gaiatest/tests/functional/clock/test_clock_create_new_alarm.py</code></pre>
+
+<p>After the test, you will see all the pass/fail results and stacktraces for each file.</p>
+
+<h2 id="Gecko_とGaia_開発者向けの_Treeherder_を用いてテストを行う">Gecko とGaia 開発者向けの Treeherder を用いてテストを行う</h2>
+
+<p>In this section we will focus upon replicating a Treeherder test locally. Before testing locally with a Treeherder configuration, you need to be aware that it builds a Gaia profile separately. The profile that comes packaged with the Treeherder build or rel-eng build is NOT the same Gaia profile that Treeherder uses.</p>
+
+<div>
+<h3 id="前提条件_2">前提条件</h3>
+
+<ul>
+ <li>A B2G desktop build. You can either <a href="http://nightly.mozilla.org/">download</a> it (including from a Try push) and unpack to a directory on your computer or virtual machine or <a href="https://developer.mozilla.org/en-US/Firefox_OS/Using_the_B2G_desktop_client#Building_the_desktop_client">compile it yourself</a>, with the addition of <code>ENABLE_MARIONETTE=1</code> in your mozconfig.</li>
+ <li>The <a href="https://github.com/mozilla-b2g/gaia/">Gaia Github repository</a> checked out (for making the Gaia profile, and installing gaiatest and the test files).</li>
+ <li>A <code>testvars.json</code> file; see <a href="#Configuring_test_variables">Configuring test variables</a>.</li>
+</ul>
+</div>
+
+<h3 id="Treeherder_設定を使って_Gaia_プロファイルを作成する">Treeherder 設定を使って Gaia プロファイルを作成する</h3>
+
+<p>Before building a profile we need to check the environment variables that were used to build the profile. Searching in the "brief log" of the Gu test run, find this command block:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">Using env: {'DEBUG': '0',
+ 'DESKTOP': '0',
+ 'DESKTOP_SHIMS': '0',
+ 'NOFTU': '0'}</code></pre>
+
+<p>These settings can drastically change the way desktop B2G behaves. It is very important to match Treeherder's settings.</p>
+
+<p>The next step is to checkout the git commit that matches the hg commit that Treeherder ran with. You can also find the hg commit in the "brief log" of the Treeherder run but you will need to correlate that with the git commit yourself.</p>
+
+<p>The gaia test repository includes a <code>make</code> script for building a Gaia profile. Navigate to the Gaia repo that you have cloned locally, and build the profile using the environment variables we found on Treeherder:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">DEBUG=0 DESKTOP=0 DESKTOP_SHIMS=0 NOFTU=0 make</code></pre>
+
+<h3 id="テストを実行する_2">テストを実行する</h3>
+
+<p>Using the same git commit that Treeherder used to run the test, go to the <code>gaia/tests/python/gaia-ui-tests</code> directory and install gaiatest using the following command:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">python setup.py develop</code></pre>
+
+<p>Now that you have built the Gaia profile, the only significant difference to running these tests is that you must direct gaiatest to the binary location and profile location.</p>
+
+<p>Inside the <code>gaia-ui-tests</code> directory, run the below command, with the following substitutions made:</p>
+
+<ul>
+ <li><code>$BINARY_PATH</code>: The path to the <code>b2g-bin</code> file in the directory you have built or unpacked desktop B2G to.</li>
+ <li><code>$PROFILE_PATH</code>: The path to your locally build Gaia profile. If built from the Gaia repository it will be <code>~/gaia/profile</code>.</li>
+</ul>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">gaiatest --binary $BINARY_PATH/b2g/b2g-bin --profile $PROFILE_PATH/profile --restart --testvars testvars.json gaiatest/tests/manifest.ini --type=b2g</code></pre>
+
+<div class="note">
+<p><strong>Note</strong>: There is no need to forward port 2828 unless you have set the Marionette server to use a different default port.</p>
+</div>
+
+<div class="warning">
+<p><strong>Important</strong>: Try to keep your mouse cursor clear of the b2g window so that pointer events do not pollute the test run.</p>
+</div>
+
+<h3 id="入り組んだ_Treeherder_ジョブの中から_HTML_レポートを見つける">入り組んだ Treeherder ジョブの中から HTML レポートを見つける</h3>
+
+<p>All Treeherder jobs (both pass and fail) have an HTML report output generated and stored.</p>
+
+<ol>
+ <li>For the commit and <em>Gip</em> job, click the chunk of interest (e.g., f1, f2).</li>
+ <li>In the status bar at the bottom of the screen find the section titled: <strong><label>artifact uploaded</label></strong> <span> <span class="ng-binding ng-scope">output.html</span></span>.</li>
+ <li>Click link to view the report.</li>
+</ol>
+
+<h2 id="既に実行済みのデスクトップ_B2G_バイナリをテストする">既に実行済みのデスクトップ B2G バイナリをテストする</h2>
+
+<p>In this section we will look at running the tests against an already running Desktop B2G binary with modified source code.</p>
+
+<div>
+<h3 id="前提条件_3">前提条件</h3>
+
+<ul>
+ <li>A B2G desktop build with your Gecko changes. You can either <a href="http://nightly.mozilla.org/">download</a> it (including from a Try push) and unpack to a directory on your computer or virtual machine or <a href="https://developer.mozilla.org/en-US/Firefox_OS/Using_the_B2G_desktop_client#Building_the_desktop_client">compile it yourself</a>, with the addition of <code>ENABLE_MARIONETTE=1</code> in your mozconfig.</li>
+ <li>Your debugger of choice attached to the B2G binary.</li>
+ <li>The <a href="https://github.com/mozilla-b2g/gaia/">Gaia Github repository</a> checked out (for installing gaiatest and the test files).</li>
+ <li>A <code>testvars.json</code> file; see <a href="#Configuring_test_variables">Configuring test variables</a>.</li>
+</ul>
+</div>
+
+<h3 id="テストを実行する_3">テストを実行する</h3>
+
+<p>Running tests against an existing b2g process is quite easy — you've already gone through the hard parts to build B2G!</p>
+
+<p>If you have not already installed gaiatest then do so now by going to <code>gaia/tests/python/gaia-ui-tests</code> and running the following:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">python setup.py develop</code></pre>
+
+<p>Once you have started the b2g binary process and attached your debugger you need to direct gaiatest to the port using the <code>--address</code> command. Do not use <code>--binary</code> or <code>--profile</code>, otherwise gaiatest will just send commands directly to the port without attempting to start or close the binary.</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">gaiatest --testvars testvars.json gaiatest/tests/functional/test_that_is_being_debugged.py</code></pre>
+
+<div class="note">
+<p><strong>Note</strong>: We have omitted the <code>--restart</code> command too. As gaiatest does not attempt to stop or start the binary, some data from your test run may be left behind in Firefox OS databases or even in the DOM. It is your responsibility to reset B2G back to a basic state before trying to run the test for a second time.</p>
+</div>
+
+<h2 id="テスト変数を設定する">テスト変数を設定する</h2>
+
+<p>You can customize variables used during the test using a <code>testvars.json</code> file. The gaia-ui-tests will wipe the databases on your phone in order to give the test a clean profile to run against. Gaiatest contains protection against running and wiping your device's data. Please read <a href="https://developer.mozilla.org/en-US/docs/Gaia_Test_Runner#Risks" title="https://developer.mozilla.org/en-US/docs/Gaia_Test_Runner#Risks">the warning</a> before you set up your test variables file.</p>
+
+<p>We use the <code>--testvars</code> option to pass in local variables, particularly those that cannot be checked into the repository. For example in gaia-ui-tests these variables can be your private login credentials, phone number, or details of your WiFi connection.</p>
+
+<p>To use it, copy <code>testvars_template.json</code> to a different filename but add it into <code>.gitignore</code> so you don't check it into your repository.</p>
+
+<p>When running your tests add the argument: <code>--testvars=(filename).json</code></p>
+
+<h3 id="(端末用の)_testvars.json_を使って_WiFi_設定する方法">(端末用の) testvars.json  を使って WiFi 設定する方法</h3>
+
+<p>By setting the WiFi key in <code>testvars.json</code> you can configure the Firefox OS Settings database with your WiFi configuration. Then the test cases can use your WiFi connection.</p>
+
+<p>No WiFi authentication:</p>
+
+<pre><code class="brush: bash">"wifi": { "ssid": "MyNetwork"} </code></pre>
+
+<p>WEP authentication:</p>
+
+<pre><code>"wifi": { "ssid": "MyNetwork", "keyManagement": "WEP", "wep": "MyPassword" } </code></pre>
+
+<p>WPA-PSK authentication:</p>
+
+<pre><code>"wifi": { "ssid": "MyNetwork", "keyManagement": "WPA-PSK", "psk": "MyPassword" } </code></pre>
+
+<div class="note">
+<p><strong>Note:</strong> Due to <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=775499" title="FIXED: [Wifi] Support subject_match to WPA-EAP Enterprise networks">バグ 775499</a>, WiFi connections via WPA-EAP are not possible at this time.</p>
+</div>
+
+<h2 id="トラブルシューティング">トラブルシューティング</h2>
+
+<p>この節では、いくつかのよくあるエラーメッセージを、潜在的な解決策を挙げつつ解説します。</p>
+
+<h3 id="テスト開始前によくある問題">テスト開始前によくある問題</h3>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col" style="text-align: center;"><strong>エラーメッセージ</strong></th>
+ <th scope="col" style="text-align: center;">対応策</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>error: [Errno 111] Connection refused</td>
+ <td>
+ <p>"adb forward tcp:2828 tcp:2828" コマンドを再発行する<br>
+ <br>
+ B2G プロセスが実行されていない</p>
+ </td>
+ </tr>
+ <tr>
+ <td>Element ... not visible before timeout</td>
+ <td>テストするアプリにて、要素(element)が表示されている事を確認する</td>
+ </tr>
+ <tr>
+ <td>TimeoutException: Condition timed out</td>
+ <td>アプリの条件が、期待しているのと同じである事を確認する</td>
+ </tr>
+ <tr>
+ <td>marionette.errors.MarionetteException: localhost:2828 is unavailable.</td>
+ <td>何者か、よくあるのが `adb forward` コマンドがポートをブロックしている。`adb kill-server` で解決するか、アプリを停止することでポートは開放される</td>
+ </tr>
+ <tr>
+ <td>ImportError: No module named bluetooth</td>
+ <td>
+ <p>コマンド内で、 <code>--type=b2g</code> を<br>
+ <code>--type=b2g-bluetooth</code><br>
+ に置き換える、あるいは pybluez Python bluetooth パッケージをインストールする</p>
+ </td>
+ </tr>
+ <tr>
+ <td>OSError: [Errno 2] No such file or directory: '~/moz/gaia/profile'</td>
+ <td>コマンドラインにて、 $HOME のつもりで ~ を使っていないかどうか確認する</td>
+ </tr>
+ </tbody>
+</table>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/index.html
new file mode 100644
index 0000000000..430bef3bb9
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/index.html
@@ -0,0 +1,73 @@
+---
+title: Gaia UI テストの導入
+slug: Archive/B2G_OS/Automated_testing/gaia-ui-tests
+tags:
+ - Build documentation
+ - Firefox OS
+ - Gaia
+ - Guide
+ - Mobile
+ - Testing
+ - TopicStub
+ - gaia-ui-test
+ - gaiatest
+translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests
+---
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_1_Marionette_Firefox_OS_start">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p>Gaia-ui-tests は、Gaia (Firefox OSのUI) を隅から隅までUIテスト実行するMozillaのテストスイートです。全てのテストはPythonで書かれ、Firefox OSのAPI操作に使う JavaScript もいくらか混じっています。このチュートリアル記事では、テストを書いて実行する環境のセットアップ方法を説明します。</p>
+</div>
+
+<p>Gaia-ui-tests は <strong>Gaiatest</strong>という、<a href="/docs/Mozilla/QA/Marionette" title="https://developer.mozilla.org/en-US/docs/Marionette">Marionette</a> あたりを元にしたPythonパッケージを使っています。 Gaiatest はHTML ロケータや、Marionette 呼び出しや、(相互コミュニケーションと機能用の)API呼び出しを一緒にラップすろように設計されています。Marionette は、<a href="http://docs.seleniumhq.org/projects/webdriver/" title="http://docs.seleniumhq.org/projects/webdriver/">Selenium WebDriver</a> (ブラウザ自動化のプログラミングインターフェイス) 用に開発されたW3C標準に基いています。WebDriver と page/app オブジェクトを以前使った事がある場合、Marionette と gaiatest を使うのは楽に感じるでしょう。</p>
+
+<h2 id="Gaia_UI_を開始する">Gaia UI を開始する</h2>
+
+<p>Gaia/Firefox OS の自動テストを開始するのに熱心な人のために、何もない所から自身のテストを書き始めるのを助けるチュートリアル集を用意しています。このチュートリアルをいったん終えてしまうと、Mozillaのテスト貢献者を始めるための、テストや、Firefox OS や、Marionette に対する充分な知識が得られるでしょう。<strong>貢献者になりたい場合は、このチュートリアルを完了しておくことを強く推奨します。</strong></p>
+
+<dl>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_1_Marionette_Firefox_OS_start">パート 1: Marionette と Firefox OS をはじめよう</a></dt>
+ <dd>この記事には、テスト実行を開始するためにインストールが必要となるツール、たとえば B2G デスクトップ、Python、Marionette が載っています。</dd>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_2_Marionette_Firefox_OS_interactions">パート 2: Marionette を使って Firefox OS と基本的なやりとりをする</a></dt>
+ <dd>Marionette 経由で Firefox OS を操作するために使う基本コマンドをざっと見ます。</dd>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_3_Reusable_tests">パート 3: コードを再利用可能テストに更新する</a></dt>
+ <dd>まだまだ行こう、この記事では基本的なコマンドをPythonファイル内のシンプルなテストに組み上げて、単一エントリーから全てを実行できるようにします。</dd>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_4_Reusing_commands_Firefox_OS_setup">パート 4: Firefox OS をセットアップする再利用コマンド</a></dt>
+ <dd>ここではコマンドをPythonメソッドに変えて再利用しやすくするのを見て行きます。</dd>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_5_Introducing_a_test_runner">パート 5: テストランナーを導入する</a></dt>
+ <dd>テストランナーは優秀なテストスイートの中心的機能で、これにより複数のテストの実行やレポートや結果の集約ができます。この記事ではPythonのユニットテストランナーの基本を探検します。</dd>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_6_Marionette_By_class">パート 6: クラスによって、タプルと Marionette を使う</a></dt>
+ <dd>ここでは、更にコードの重複を削減する方法を説明します、それにはタプル内の繰り返しのロケーターを保管して Marionetteの <code>By</code> クラスの文法でシンプルにします。</dd>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_7_Writing_your_own_tests">パート 7: 自分自身のテストを書く</a></dt>
+ <dd>いま基本は備わっています、そして自分自身のテストを書く時です! ここでは作業を簡単にする推奨ツールの予定や、手で書いてみるいくつかのテストをお勧めします。</dd>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_8_Using_a_base_class">パート 8: ベースクラスを使用する</a></dt>
+ <dd>この状態では、テストファイルは全てのテストランナーコードを含んでいます。当面は問題ないですが、テストファイルの実行を始めるとすぐに、多くの複製ができるでしょう。テストランナーコードを別々のPythonクラスに分けて抽象化する事で、この問題を解決してみます。</dd>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_9_app_objects">パート 9: アプリオブジェクトの複製を抑える</a></dt>
+ <dd>コードのメンテナンス性についての最終改良として、この記事では特定のFirefox OSアプリとのインタラクションをPythonアプリオブジェクトに抽象化するという抽象化を探検します。</dd>
+</dl>
+
+<h2 id="上級トピック">上級トピック</h2>
+
+<p>テストの実行と記述をものにしたら、もっと複雑・先進的な作業に移りたくなるでしょう、例えば gaia-ui-tests 全体のテストスイートを実行したり、テスト結果としてpower drawをログ出力したり。</p>
+
+<dl>
+ <dt><a href="/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Gaia_UI_Tests_Run_Tests" title="Gaia UI Tests Run Tests">gaia-ui-tests を実行する</a></dt>
+ <dd>Firefox OS の実端末や<a href="/en-US/Firefox_OS/Using_the_B2G_desktop_client">B2G Desktop</a> に対して、いろいろな設定にて、gaia-ui-tests を一通り実行するガイド。</dd>
+</dl>
+
+<h2 id="こちらも見よ">こちらも見よ</h2>
+
+<p><a href="https://github.com/mozilla-b2g/gaia/tree/master/tests/python/gaia-ui-tests">Gaia-ui-tests main repository</a></p>
+
+<h2 id="質問コメント関心事"><span class="mw-headline" id="Questions.2FComments.2FConcerns">質問/コメント/関心事</span></h2>
+
+<p>このプロジェクトははるかに初期の段階なので、あなたのフィールドバックはとても感謝されます:</p>
+
+<ul>
+ <li><a href="http://mailto:_gaia-ui-automation@mozilla.org">gaia-ui-automation@mozilla.org</a> のMLにメールを送って下さい。</li>
+ <li>あるいは、<a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a> の #fxosqa、#fxos-automation、#moztpeqa といったチャンネルで我々を見つけて下さい。</li>
+</ul>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 308px; left: 98px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_1_marionette_firefox_os_start/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_1_marionette_firefox_os_start/index.html
new file mode 100644
index 0000000000..4cf4177291
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_1_marionette_firefox_os_start/index.html
@@ -0,0 +1,191 @@
+---
+title: 'パート 1: Marionette と Firefox OS を開始する'
+slug: >-
+ Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_1_Marionette_Firefox_OS_start
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Python
+ - gaia-ui-test
+ - tests
+translation_of: >-
+ Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_1_Marionette_Firefox_OS_start
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests" style="float: left;">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_2_Marionette_Firefox_OS_interactions">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">このチュートリアルシリーズは、<a href="/docs/Mozilla/QA/Marionette">Marionette</a>(お使いのコンピュータ上で実行される自動化パッケージ)を使用してFirefox OSの自動UIテストを記述し、実行することが軌道に乗ることを目指します。Marionette はGeckoベースのプラットフォームでテストを実行するコマンドを発行します。この特定の記事では、テスト実行を開始する前に行う必要がある設定を一通り行います。</span></p>
+</div>
+
+<p>チュートリアルシリーズでは自動テストの概念を一通り見て、またFirefox OS(かなり有用な<a href="/Firefox_OS/Using_the_B2G_desktop_client">B2G Desktop</a>テストツール含みます)とMarionetteとの動作を紹介します。 時折、独自の解決策を模索することを奨励するための課題が含まれます。</p>
+
+<div class="note">
+<p><strong>注意</strong>: チュートリアルでは、Mozilla製品に固有のものではありません; 例えば、HTML5のアプリを開発している場合は、テストフレームワークを構築するために、このチュートリアルを使用することができます。</p>
+</div>
+
+<h2 id="このチュートリアルに対するソフトウェア要求">このチュートリアルに対するソフトウェア要求</h2>
+
+<p>チュートリアルで以下のソフトウェアをインストールして、使用します。:</p>
+
+<ul>
+ <li>Python 2.7</li>
+ <li>pip installer</li>
+ <li>A text editor or IDE to write code in</li>
+ <li>The Boot2Gecko desktop client (Firefox OS)</li>
+ <li>The Marionette client (WebDriver client for Firefox OS)</li>
+</ul>
+
+<h2 id="Python_と_pip">Python と pip</h2>
+
+<p>Linuxのような一部のオペレーティングシステムはプリインストールのPythonが付属します。 Pythonのをインストールする前に、すでにそれがインストールされていないことを確認してください。コマンドラインまたは端末から、こう実行してください:</p>
+
+<pre class="brush: bash">python --version</pre>
+
+<p>Pythonのの2.6.xまたは2.7.xのすべてのバージョンは、このチュートリアルのための申し分ありません。Python2.7がインストールされていない場合は、<a href="https://www.python.org/download/releases/2.7.6/">Python release site</a>でインストーラを見つけることができます。</p>
+
+<p>Pip はPythonのツールをインストールするために使用され、Marionetteをインストールするにはこれが必要です。端末またはコマンドラインに<code> pip と</code>入力することで、pip がインストールされているかどうか確認することができます。ピップをインストールするには、<a href="http://pip.readthedocs.org/en/latest/installing.html">pip documentation</a>での指示に従ってください。</p>
+
+<h2 id="B2G_Desktop">B2G Desktop</h2>
+
+<p>B2Gデスクトップクライアントを使用すると、Gaia (Firefox OSの UI) と、デスクトップまたはラップトップコンピュータ上のFirefoxのOSアプリを実行することができます。 デスクトップクライアントにはいくつかの制限があります — それはカメラ、バッテリー、などのデバイスのハードウェアをエミュレートしていません — しかし、それはこのチュートリアルでの目的にとっては完璧でしょう。次にこれをインストールしましょう。</p>
+
+<p><a href="http://nightly.mozilla.org/">Firefox Nightly site</a>から最新B2Gデスクトップをダウンロードしてください。(一番下の Desktop Boot2Gecko を見てください) B2Gデスクトップをダウンロードしたら、コンピュータ上のフォルダに内容を抽出します。FirefoxのOSシミュレータを起動するには、お使いのOSに適切な<strong> b2g </strong>スクリプトファイルを実行します。:</p>
+
+<ul>
+ <li><strong>Linux</strong>: それを抽出したフォルダに移動し、こう実行します <code>./b2g</code></li>
+ <li><strong>Mac</strong>: アプリケーションフォルダにB2G.appをドラッグアンドドロップし、そこから実行します。</li>
+ <li><strong>Windows</strong>: zipファイルを抽出したディレクトリ内からb2g.exeを実行します。</li>
+</ul>
+
+<p>アプリケーションが起動したら、このようなウィンドウが表示されるはずです:</p>
+
+<p><img alt="A welcome screen for Firefox OS - says welcome in multiple languages" src="https://mdn.mozillademos.org/files/7207/b2g-start-screen.png" style="display: block; height: 509px; margin: 0px auto; width: 322px;"></p>
+
+<p>Firefox OSのホームスクリーンに到達するまで、初回の使用上の手順に従ってください。次の非常に有用なキーボードコマンドを使って、携帯電話のハードウェアボタンをエミュレートできることに注意してください。(例えば、 ホームを押すと、スリープからの電話を復帰します。)</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="row">
+ <p> </p>
+ </th>
+ <th scope="col">
+ <p>Windows/Linux キーボード</p>
+ </th>
+ <th scope="col">
+ <p>Mac OS キーボード</p>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th scope="row">
+ <p>ホームボタン</p>
+ </th>
+ <td>
+ <p>Home</p>
+ </td>
+ <td>
+ <p>Fn+左矢印</p>
+ </td>
+ </tr>
+ <tr style="height: 0px;">
+ <th scope="row">
+ <p>電源ボタン</p>
+ </th>
+ <td>
+ <p>End</p>
+ </td>
+ <td>
+ <p>Fn+右矢印</p>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row">
+ <p>音量 +/-</p>
+ </th>
+ <td>
+ <p>Page up/page down</p>
+ </td>
+ <td>
+ <p>Fn+ 上/下 矢印</p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<p>この時点では、B2Gデスクトップを開いたまま残すことができ、側にウィンドウを移動します。次に、Marionetteがインストールされると作業完了です。</p>
+
+<h2 id="Marionette">Marionette</h2>
+
+<p>Marionetteは、2つの部分から構成されています。つまりクライアント (ラップトップ上で操作するもの) とサーバ (Firefox OS内で操作するもの)です。操り人形師のように、Marionette サーバで直接Firefox OSを制御できます。</p>
+
+<p><img alt="marionette architecture showing marionette server inside Firefox OS and marionette client on its own outside" src="https://mdn.mozillademos.org/files/7223/marionette-basic-diagram.png" style="display: block; height: 186px; margin: 0px auto; width: 352px;"></p>
+
+<p>いまはデスクトップB2Gクライアントを使用しているので、Marionetteサーバがプリインストールされています(実デバイス用のFirefox OSのエンジニアリング構成のビルドを使用している場合も同様です)。 ただしFirefoxのOSを制御する前に、ローカルコンピュータ上にMarionetteのクライアントをインストールする必要があります。これは、ターミナルで次のコマンドを実行することによって行われます:</p>
+
+<pre class="brush: bash">pip install marionette_client</pre>
+
+<p>今のところここまでです。セットアップ済みで、発進の準備ができています!</p>
+
+<p> </p>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 1308px; left: 106px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_2_marionette_firefox_os_interactions/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_2_marionette_firefox_os_interactions/index.html
new file mode 100644
index 0000000000..712caed611
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_2_marionette_firefox_os_interactions/index.html
@@ -0,0 +1,177 @@
+---
+title: 'パート 2: Marionette を使って Firefox OS と基本的なやりとりをする'
+slug: >-
+ Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_2_Marionette_Firefox_OS_interactions
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Python
+ - gaia-ui-tests
+ - tests
+translation_of: >-
+ Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_2_Marionette_Firefox_OS_interactions
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_1_Marionette_Firefox_OS_start" style="float: left;">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_3_Reusable_tests">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">チュートリアルのパート2では、Firefox OSのリモート制御を可能にするいくつかの簡単なMarionetteのコマンドを始めましょう。完全なテスト記述はカバーしていませんが、テストを書くときに使用する基本的なコードの特徴を教えてくれます。パート3では、このコードを実際のテストに進化させるように進行します。</span></p>
+</div>
+
+<h2 id="Firefox_OSをスタートアップ">Firefox OSをスタートアップ</h2>
+
+<p>これらのテストを書くとき、Firefox OSをすでに実行し、コマンドを受信する準備をしている必要があります:</p>
+
+<ol>
+ <li>デスクトップB2Gを起動します</li>
+ <li><em>Settings App &gt; Screen lock &gt; uncheck Lock screen</em>を使用して、ロックスクリーンを無効にします。</li>
+ <li><em>Settings App &gt; Display &gt; Screen timeout</em> の設定を <em>never </em>に変更することによって、画面のタイムアウト/スリープモードを無効にします</li>
+ <li>我々のテストコマンドを待つために、横側にウィンドウを移動させます</li>
+</ol>
+
+<h2 id="Marionetteを発射">Marionetteを発射</h2>
+
+<p>今、Pythonコンソールを起動します: 単にターミナルウィンドウに移動して、<code>python</code>コマンドを発行します。</p>
+
+<p>ここからは、Firefox OSの内部のMarionetteのサーバにコマンドを送信することができます。以下のコマンドの多くを発行した後、あなたは、Firefox OSの応答が表示されるはずです。Pythonのコンソールでは、必要なコードを含むMarionetteライブラリをインポートするために、次のコマンドを入力します:</p>
+
+<pre class="brush: bash">from marionette import Marionette</pre>
+
+<p>今、Marionetteがクライアントからのコマンドを受信する準備をするような、Marionetteセッションを開始するよう、次の2行を実行してください。:</p>
+
+<pre class="brush: bash">marionette = Marionette()
+marionette.start_session()</pre>
+
+<p>上述したように、ロック画面を無効にしなかった場合は、このコマンドを使用して、プログラムで画面のロックを解除できます:</p>
+
+<pre class="brush: bash">marionette.execute_script('window.wrappedJSObject.lockScreen.unlock();')</pre>
+
+<h2 id="FirefoxのOS内部の別のフレームへのアクセス">FirefoxのOS内部の別のフレームへのアクセス</h2>
+
+<p>FirefoxのOSでのWebアプリは、色々なiFrameで動作します。別々のフレームにてWebアプリを実行すると、それらにセキュリティのための別個のコンテナと、(Windowのような)視覚管理も提供します。これはアプリが実行されるサンドボックスであるように考えることができます。Marionetteは、一度にフレームの1つで動作することができます。Marionetteを、対話をしようとしているフレームに切り替える必要があります。</p>
+
+<p>トップフレームはまた、System アプリです。すべてのアプリケーションとそれらのフレームは、System アプリの子です。新しいMarionette セッションはSystem のフレームで起動しますが、テストを開始するために、ホーム画面を見つけてそこに切り替える必要があります</p>
+
+<p>iFrameを見つけるために、何とかしてそれを識別する必要があります。Marionette がwebdriverのAPIに基づいているため、要素を見つけるために同じ戦略を使用していますので、webdriverがウェブ要素を識別するのに使用する戦略のいずれかを、簡単に使用することができます。<a href="http://www.w3.org/TR/webdriver/#element-location-strategies">element location strategies</a>で詳細をご覧ください。</p>
+
+<p>このケースでは、ホームスクリーンのiFrameを選択するために、CSSセレクタ<code>div.homescreen iframe</code> を使用します。<code>つまりfind_element()</code>関数は、その2番目の引数としてこれを取り、検索を実行するのにどの選択機構を使うかを決める第1引数を取ります。変数にこの結果を格納し、これを引数として<code>switch_to_frame()</code>関数を実行します。ここで、以下の2つのコマンドを試してみてください:</p>
+
+<pre class="brush: bash"># Switch context to the homescreen iframe and tap on the Contacts app icon
+home_frame = marionette.find_element('css selector', 'div.homescreen iframe')
+marionette.switch_to_frame(home_frame)</pre>
+
+<div class="note">
+<p><strong>注意</strong>: さらに読んでおくのや、フレーム切り替えを説明する図は, <a href="https://blog.mozilla.org/webqa/2013/02/13/part-2-ui-testing-on-firefox-os-working-with-iframes/">Working with iFrames</a>をご覧ください。</p>
+</div>
+
+<h2 id="アプリケーションの開始">アプリケーションの開始</h2>
+
+<p>OKです。今、アイコンを確認できるホームスクリーンアプリにいて、<code>tap()</code>関数と<code>find_element()</code>関数をの組み合わせて使用し、そのアイコンをタップすることができます。</p>
+
+<pre class="brush: bash"><code>contacts_icon = marionette.find_element('xpath', "</code><code>//div[@class='icon']//span[contains(text(),'Contacts')]")</code>
+contacts_icon.tap()</pre>
+
+<p>すべてがうまく行っている場合、ここで連絡先アプリを開いて見えるようにする必要がありますが、前にホームスクリーンで行ったように、対話するためには、まだ連絡先アプリのフレームに切り替える必要があります。:</p>
+
+<pre class="brush: bash"># First, we need to switch context back to the System frame
+marionette.switch_to_frame()
+
+# Now, switch context to the contacts app frame
+contacts_frame = marionette.find_element('css selector', "iframe[data-url*='contacts']")
+marionette.switch_to_frame(contacts_frame)</pre>
+
+<p>フレーム切り替えは<code>True</code>を返すべきです。これができた場合、素晴らしい。これは連絡先アプリのコンテキスト内に入っていて、これを使用し始める準備ができていることを意味します。</p>
+
+<h2 id="アプリを操作する">アプリを操作する</h2>
+
+<p>次のステップでは、典型的なテストのタスクを実行します — 、新しい連絡先を作成し、それに名前を入力し、それを保存します。最初に、追加の連絡先ボタンをタップします:</p>
+
+<pre class="brush: bash"># Tap [+] to add a new Contact
+marionette.find_element('id', 'add-contact-button').tap()</pre>
+
+<p>今度は、次の2つのコマンドを使用して連絡先の名前を追加してみましょう(<code>send_keys()</code>は要素に値を挿入するために使用されます):</p>
+
+<pre class="brush: bash">marionette.find_element('id', 'givenName').send_keys('Foo')
+# Add the contact's surname
+marionette.find_element('id', 'familyName').send_keys('Bar')</pre>
+
+<p>今、連絡先を保存するために<em>Done</em>ボタンをタップしましょう:</p>
+
+<pre class="brush: bash"><code class="language-html">marionette.find_element('id', 'save-button').tap()</code></pre>
+
+<p>今、連絡先アプリの内部に入力した新しい連絡先が表示されます。そうなっていれば、素晴らしいです!</p>
+
+<div class="note">
+<p><strong>注意</strong>: そうなっていない場合、連絡先アプリをリセットか停止して、Firefox OSでホームスクリーンの裏にナビゲートし、タスクを再実行してみてください。</p>
+</div>
+
+<h2 id="Marionetteセッションを閉じます">Marionetteセッションを閉じます</h2>
+
+<p>最後に、次のコマンドを発行して、Marionetteセッションを終了する必要があります:</p>
+
+<pre class="brush: bash">marionette.delete_session()</pre>
+
+<p>これはかなりうまくいきましたが、テストを実行しようとするたびにPythonのコンソールに入力を始めることはできません。第3部では、テストを実行するたびに再利用できるように、Pythonのファイル内にこのスクリプトをコンパイルします。我々はテストに合格したか失敗したかを区別できるように、アサーションも追加します。</p>
+
+<div class="note">
+<p><strong>注意</strong>: Marionetteコマンドを記述する場合、必要となるロケータを把握するには、アプリの基本的なHTML構造にアクセスすることが極めて重要であるということが、確実にわかるでしょう。<a href="https://developer.mozilla.org/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_7_Writing_your_own_tests#Resources">Part 7: Writing your own tests</a>では、これについて役立つ有用なリソースを提供しています。</p>
+</div>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_3_reusable_tests/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_3_reusable_tests/index.html
new file mode 100644
index 0000000000..18a417120a
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_3_reusable_tests/index.html
@@ -0,0 +1,183 @@
+---
+title: 'パート 3: コードを再利用可能テストに更新する'
+slug: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_3_Reusable_tests
+translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_3_Reusable_tests
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_2_Marionette_Firefox_OS_interactions" style="float: left;">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_4_Reusing_commands_Firefox_OS_setup">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">パート2では、Marionetteのクライアントコマンドを使用するとFirefox OSの制御が簡単にできることを学びましたが、Pythonのコンソールにそれらを入力するのは、遅くて退屈です。テスト自動化の重要な利点は、それが自律的に実行できることです。すべてのコードをPythonのファイルにコマンドを置き、次に一度にすべてを実行することができるように、このパートでそれを行う方法を学習します。</span></p>
+</div>
+
+<h2 id="テストケースの要約">テストケースの要約</h2>
+
+<p>連絡先アプリを開き、新しい連絡先を追加する - パート2では、こんな典型的なテストケースを実行する手順をたどってきました:</p>
+
+<ol>
+ <li>Firefox OSのロックを解除 (オプション; 第2部では、手動でロック画面をオフにしました。それゆえ、以下のコードでこれを含みません。)</li>
+ <li>連絡先アプリに切り替え</li>
+ <li>新しい連絡先の追加アイコンをタップします</li>
+ <li>連絡先の名前を入力</li>
+ <li>タップして完了</li>
+ <li>しばらく待って、連絡先が存在していることを確認します</li>
+</ol>
+
+<h2 id="Pythonのファイルに我々のテストを置きます">Pythonのファイルに我々のテストを置きます</h2>
+
+<p>Pythonのファイルにこれらのステップをすべて入れた場合、それを再利用し、はるかに素早く実行できます。あなたに都合の良いディレクトリを選んで、そこに <code>test_add_contact.py </code>と呼ばれる新しいテキストファイルを作成します。</p>
+
+<p>以下に示すように、このファイルにパート2で見たコマンドを入力します。良い習慣であるため、Pythonのクラス構造を使用し、チュートリアルの今後のステップでの良い基盤を作ります。</p>
+
+<pre class="brush: python">import time
+from marionette import Marionette
+
+class TestContacts:
+
+    def __init__(self):
+        self.test_add_contacts()
+
+    def test_add_contacts(self):
+        # Create the client for this session. Assuming you're using the default port on a Marionette instance running locally
+        self.marionette = Marionette()
+        self.marionette.start_session()
+
+        # Switch context to the homescreen iframe and tap on the contacts icon
+        time.sleep(2)
+        home_frame = self.marionette.find_element('css selector', 'div.homescreen iframe')
+        self.marionette.switch_to_frame(home_frame)
+        contacts_icon = self.marionette.find_element('xpath', "//div[@class='icon']//span[contains(text(),'Contacts')]")
+        contacts_icon.tap()
+
+        # Switch context back to the base frame
+        self.marionette.switch_to_frame()
+        time.sleep(2)
+
+        # Switch context to the contacts app
+        contacts_frame = self.marionette.find_element('css selector', "iframe[data-url*='contacts']")
+        self.marionette.switch_to_frame(contacts_frame)
+
+        # Tap [+] to add a new Contact
+        self.marionette.find_element('id', 'add-contact-button').tap()
+        time.sleep(2)
+
+        # Type name into the fields
+        self.marionette.find_element('id', 'givenName').send_keys('John')
+        self.marionette.find_element('id', 'familyName').send_keys('Doe')
+
+        # Tap done
+        self.marionette.find_element('id', 'save-button').tap()
+        time.sleep(2)
+
+        # Close the Marionette session now that the test is finished
+        self.marionette.delete_session()
+
+if __name__ == '__main__':
+    TestContacts()
+</pre>
+
+<div class="note">
+<p><strong>注意</strong>: コード内で、パート2でカバーしていないと気づく1つの追加事項は、Python <code>time.sleep()</code>関数です— これは、次の行に継続する前に、一定時間スクリプトを停止します (秒単位で定義) 。ユーザが手動でボタンをタップすることなどや、FirefoxのOSが結果のアクションを完了するのを待つことをシミュレートする必要があるため、自動テストにこれらの行を追加しました。遅延なしにこのスクリプトを実行した場合は、 Pythonはすべてを瞬時に完了し、Firefox OSが追いつくことができないために、おそらくテストは失敗となるだろう。</p>
+</div>
+
+<p>今、ターミナルでテストが保存されているディレクトリに移動し、次のコマンドを実行して、テストを実行することができます:</p>
+
+<pre class="brush: bash">python test_add_contact.py</pre>
+
+<div class="note">
+<p><strong>注意</strong>: Pythonのインデントルールに注意してください。 コピーして貼り付けた後は、コードを実行するためにすべてを正しくインデントする必要があるかもしれません。これに関連するエラーが発生した場合は、すべてのインデントレベルはタブで区切られていることを確認します。</p>
+</div>
+
+<div class="note">
+<p><strong>注意</strong>: また、上記のコードを使用して挿入された名前はは"John Doe"であることがわかります。パート2での"Foo Bar"という名前と違います。コードが正常に実行し、別の連絡先を追加するように、我々はこうしました。 同じ名前の連絡先を追加しようとする場合、Firefox OSでは重複する連絡先についての警告が表示されます。現時点では、テストの実行を繰り返す最善の方法は、FirefoxのOSのインターフェースに入り、毎回実行する前に、手動で連絡先を削除することです。</p>
+</div>
+
+<h2 id="アサーションを追加する">アサーションを追加する</h2>
+
+<p>自動テストに重要となり、我々のテストにまだ欠落している一点は、アサーションです — Firefox OSが望む状態に達しているかどうか (つまりテストが成功したかどうか)、というレポートまたは指標となるもの。新しい連絡先がアプリ内に存在するかどうかを確認するためにいくつかのコードを追加することでこれをやります。<br>
+  <br>
+ <code># Close the Marionette session...</code>行の直前に、このコードに追加し、クラスの他の行と同じレベルにインデントされていることを確認します:</p>
+
+<pre class="brush: python"># Now let's find the contact item and get its text
+contact_name = self.marionette.find_element('css selector', 'li.contact-item:not([data-group$="ice"]) p').text
+assert contact_name == 'John Doe'</pre>
+
+<p>古い連絡先を削除し、次のようにテストを再実行してみてください:</p>
+
+<pre class="brush: bash">python test_add_contact.py</pre>
+
+<p>全てがうまく実行できらた素晴らしい、今度は機能テストがあります!</p>
+
+<div class="note">
+<p><strong>注意</strong>: アサーションが失敗した場合は、以前の'Foo Bar'の連絡先はもう存在していないことを確認してください。アサートの前にCSSセレクタは、実際には、リスト内の最初の連絡先を拾っています。(アサートを呼ぶ前に<code> print "Contact name: %s" % contact_name</code> と呼ぶことで、見ることができます。).</p>
+</div>
+
+<div class="note">
+<p><strong>注意</strong>: アサーションは現在何もしないように見えますが、<a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_5_Introducing_a_test_runner">Part 5: Introducing a test runner</a>で紹介されているように、テストランナーを使用し始めるときアサーションはとても重要です。unittestのようなテストランナーは、アサーションを使ってテストが正常か完了したかどうかを確認し、次にこれらのテストの結果 (OK or FAIL)を返します。</p>
+</div>
+
+<h2 id="タイミングに関する注意">タイミングに関する注意</h2>
+
+<p>自動テストを書く時に、対処するのが最も困難なことの一つは、タイミングです。Firefox OSが最後の一つを完了する前に、テストが次のステップに移行するなら、失敗を得る可能性が高いです。<br>
+  <br>
+ 上述したように、サンプルコードではこの問題を解決するために<code>time.sleep(x)</code>コマンドを追加しました。しかしながら、<code>time.sleep(x)</code>を使用することは良い方法ではありません。ハードコードされた設定時間を使用すると、テスト実行に長すぎたり、長さが足りなかったりする可能性があります。後者は最悪のケースであります; それは、偽陰性のテスト結果 (実際にアプリは完全に機能するが、テストが期待するより少し遅く振る舞う時に、失敗とレポートされるテストの意味) を生じます。</p>
+
+<p>次のパートでは、テストの特定部分を抽象化して、独立したPythonの関数にするよう進行します。そして、<code>sleep() </code>関数を、適切な動的待機で置き換えます。</p>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 3277px; left: 463px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_4_reusing_commands_firefox_os_setup/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_4_reusing_commands_firefox_os_setup/index.html
new file mode 100644
index 0000000000..36d6e22400
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_4_reusing_commands_firefox_os_setup/index.html
@@ -0,0 +1,160 @@
+---
+title: 'パート 4: Firefox OS をセットアップする再利用コマンド'
+slug: >-
+ Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_4_Reusing_commands_Firefox_OS_setup
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Python
+ - Testing
+ - gaia-ui-tests
+translation_of: >-
+ Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_4_Reusing_commands_Firefox_OS_setup
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_3_Reusable_tests" style="float: left;">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_5_Introducing_a_test_runner">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">パート2とパート3では、動作するテストを理解しました。しかし、テストを実行する前にその状態をリセットしたい場合(例えば、開いているアプリケーションを停止する)、これを手動で行う必要があったでしょう。それは少し退屈なので、再び自動化する必要があります!この部分では、再利用できる独立したPythonのメソッドに少しのコードを発生せることによって、もっと自動化する方法を見ていきます。</span></p>
+</div>
+
+<h2 id="自動的に状態をリセット">自動的に状態をリセット</h2>
+
+<p>典型的なテストの実行開始時に、おそらくFirefox OSのロック画面を解除し、すべての実行中のアプリケーションを強制終了することを望みます。それでは、これを行う方法を見てみましょう。</p>
+
+<h3 id="ロック画面の解除">ロック画面の解除</h3>
+
+<p>先に進む前に、まだ行っていない場合 <em>Settings App &gt; Screen lock &gt; Lock screen</em> で再びロック画面を有効にします。</p>
+
+<p>ちょうどクラス内の場所で、あなたの <code>test_add_contact.py</code> ファイルに次のPythonのメソッドを追加します。:</p>
+
+<pre class="brush: python">def unlock_screen(self):
+ self.marionette.execute_script('window.wrappedJSObject.lockScreen.unlock();')</pre>
+
+<p>呼び出された時、このメソッドは現在のFirefox OSのロックを解除します。 今度は <code>self.marionette.start_session()</code> 行の下に、下記の行を追加することで、テスト内でこれを呼びましょう。:</p>
+
+<pre class="brush: python"># Unlock the screen
+self.unlock_screen()</pre>
+
+<h3 id="開いているすべてのアプリケーションの停止">開いているすべてのアプリケーションの停止</h3>
+
+<p>今、実行時に開いているすべてのアプリケーションを停止するために、私たちのコードにメソッドを追加します。これは下記のように見えます。:</p>
+
+<pre class="brush: python">    def kill_all(self):
+        self.marionette.switch_to_frame()
+        self.marionette.execute_async_script("""
+             // Kills all running apps, except the homescreen.
+             function killAll() {
+               let manager = window.wrappedJSObject.appWindowManager;
+
+               let apps = manager.getApps();
+               for (let id in apps) {
+                 let origin = apps[id].origin;
+                 if (origin.indexOf('verticalhome') == -1) {
+                   manager.kill(origin);
+                 }
+               }
+             };
+             killAll();
+             // return true so execute_async_script knows the script is complete
+             marionetteScriptFinished(true);
+            """)</pre>
+
+<p>直前のセクションで追加した <code>unlock_screen</code> メソッドの直後にこれを追加します。</p>
+
+<p>次に、テストの残りの部分と一緒にこれを実行するには、下記を追加します。つまり <code>self.unlock_screen()</code> 行の直後に追加します。:</p>
+
+<pre class="brush: python"># kill all open apps
+self.kill_all()</pre>
+
+<p>今、最後にテスト実行した後に連絡先アプリを開いたままにしておき、また再度テストを実行しようとする前にロック画面に戻してみてください。画面のロックが解除されることに加えて、テストが再実行される前に、開いている連絡先アプリが自動的に停止されます。だから、その状態は、今実行しているテストには影響しません。これは、テスト実行の長期間の信頼性のために重要です。</p>
+
+<p>再び数回テストを実行し、すべて動作するのとFirefox OSが正しくリセットされているかどうかを確認します。</p>
+
+<h2 id="ダイナミックウェイト">ダイナミックウェイト</h2>
+
+<p>パート3ではダイナミックウェイトの重要性を述べました。Marionetteには下記のような一般的な構文を使用した、WebDriver/Selenium2のようなウェイトがあります。:</p>
+
+<pre class="brush: python">from marionette_driver import Wait
+
+# Wait until element is displayed
+Wait(self.marionette).until(lambda m: m.find_element('id', 'element_id').is_displayed())</pre>
+
+<p>指定された要素が表示されるまで、このコードはウェイトします。この時点で、対話する準備が整ったと分かります。テストでこのコード構成を使用してみましょう。</p>
+
+<p>まず第一に、既存のインポート行の直後に、ウェイトインポート行を含めます:</p>
+
+<pre class="brush: python">from marionette_driver import Wait</pre>
+
+<p>今、コンタクトフレームが表示されるまで待機する <code>Wait()</code> メソッドで、連絡先アイコンをタップした後の2つ目の <code>time.sleep(2)</code> 関数(<code>self.marionette.switch_to_frame()</code> 行の直後)を、置き換えることができます。:</p>
+
+<pre class="brush: python">Wait(self.marionette).until(lambda m: m.find_element('css selector', "iframe[data-url*='contacts']").is_displayed())</pre>
+
+<p>新しい連絡先の作成を開始する + 記号をタップするとき、<em>Add contact</em> フォームが完全に表示されるまでスライドされるのを待ちたいです。<em>Done</em> (保存) ボタンは次にタップが必要となるもので、このため、継続する前に所定の位置にスライドされるのを待つでしょう。3つ目の <code>time.sleep(2)</code> 関数を、次の行で置き換えます。:</p>
+
+<pre class="brush: python">Wait(self.marionette).until(lambda m: m.find_element('id', 'save-button').location['y']== 0)</pre>
+
+<p>この例では、<em>Done</em> ボタンが画面の上部に到達するのを待ちます。アニメーション化されたときに、要素は複数のポイントに表示されます。しかし、その最終的な静止位置は、待つための最も安全なものです。</p>
+
+<p>また、要素が表示され"ない"のを待つこともできます。<em>Done</em>をタップした後で、残りのコードを実行する前に、同様な <code>Wait()</code> メソッドにnotをつけて使用し、<em>Done</em>ボタンが隠されるのを待ちます。4つ目と最終の <code>time.sleep(2)</code> 関数を、下記で置換します。:</p>
+
+<pre class="brush: python">Wait(self.marionette).until(lambda m: not m.find_element('id', 'save-button').is_displayed())</pre>
+
+<p>テストがOKに動作している場合には、素晴らしいです!テストのモジュール性と信頼性を向上させました。パート5では、テストを実行するためのテストランナーの使い方ご紹介します。</p>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_5_introducing_a_test_runner/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_5_introducing_a_test_runner/index.html
new file mode 100644
index 0000000000..4ce156330b
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_5_introducing_a_test_runner/index.html
@@ -0,0 +1,243 @@
+---
+title: 'パート 5: テストランナーを導入する'
+slug: >-
+ Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_5_Introducing_a_test_runner
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Python
+ - gaia-ui-tests
+ - tests
+translation_of: >-
+ Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_5_Introducing_a_test_runner
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_4_Reusing_commands_Firefox_OS_setup" style="float: left;">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_6_Marionette_By_class">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">すべては、ここまでうまく進んでいます。しかし、まだ1つのテストのみを扱っています。実世界の大きなWebアプリケーションをテストする時には、数十または数百のテストケースである場合があり、それぞれを手動で実行することは絶対にしたくありません。このようなシナリオでは、我々は私たちのためにテストを見つけて実行するテストランナーを使用する必要があります。この記事ではただそれだけについて見ていきます。</span></p>
+</div>
+
+<h2 id="テストランナー">テストランナー</h2>
+
+<p>テストランナーは、実際のテストフレームワークのための良好な基礎を提供します。テストランナーがテスト、属性を含むタグのテスト (アノテーション)を実行するように設計されて、レポートおよび他の機能を提供します。利用可能な多くのPythonのテストランナーがあります。しかし、この場合、効果的なシンプルで、PythonでパッケージされているようにPythonの独自の <strong>unittest</strong> を使います。</p>
+
+<p>一般的には3つの標準のセクションにテストを分割します。テストランナーのセットアップのための典型的な<code>setUp()</code>、tests、<code>tearDown()</code><br>
+  <br>
+ <code>setUp()</code> と <code>tearDown()</code> メソッドはすべてのテストのために自動的に実行されて、それぞれ下記を含んでいます:</p>
+
+<ul>
+ <li>画面ロックを解除し開いているアプリケーションを停止するといった、テストを実行する前に必要なセットアップの手順。</li>
+ <li>Marionetteセッションを閉じるといった、テスト後に実行に必要なクールダウンの手順。</li>
+</ul>
+
+<p>セットアップのテスト部分では、実際のテストのために実行したい任意のコードです。第2-4部分の上に構築されたテストにこれを適用する方法を見てみましょう。</p>
+
+<h2 id="ユニットテストとtest_add_contact.pyの実行">ユニットテストとtest_add_contact.pyの実行</h2>
+
+<p>最初のインポートのユニットテストに必要なユニットテストを使用するには、他のインポート行の下に次を追加してください。:</p>
+
+<pre class="brush: python">import unittest</pre>
+
+<p>次に、テストランナーを作成する必要があります。これを行うために、 <code>unittest.Testcase</code> クラスから <code>TestContacts</code> クラス継承を行います。つまり、<code>class</code> 行を下記に更新してください。:</p>
+
+<pre class="brush: python">class TestContacts(unittest.TestCase):</pre>
+
+<p>また、次のものを削除する必要があります:</p>
+
+<pre class="brush: python">    def __init__(self):
+        self.test_add_contacts()</pre>
+
+<p>テストを初期化すると、代わりにユニットテストによって処理されますので、自分自身を処理する必要はありません。あなたのコードの下で、次のものを置き換えて:</p>
+
+<pre class="brush: python">if __name__ == '__main__':
+    TestContacts()</pre>
+
+<p>下記を用います。:</p>
+
+<pre class="brush: python">if __name__ == '__main__':
+    unittest.main()</pre>
+
+<p>次に、<code>TestContacts</code> クラス内部に <code>setUp(self):</code> メソッドを生成する必要があります。そして、次の手順を実施します。:</p>
+
+<ol>
+ <li>Marionetteをインスタンス化し、Marionetteセッションを開始します</li>
+ <li>画面ロックを解除します</li>
+ <li>開いているすべてのアプリケーションを強制終了します</li>
+ <li>連絡先アプリをロードします</li>
+</ol>
+
+<p>このメソッドは、以下のようになります。<code>test_add_contacts</code> で既にある同一の行を削除する必要があります。</p>
+
+<pre class="brush: python">    def setUp(self):
+         # Create the client for this session. Assuming you're using the default port on a Marionette instance running locally
+        self.marionette = Marionette()
+        self.marionette.start_session()
+
+        # Unlock the screen
+        self.unlock_screen()
+
+        # kill all open apps
+        self.kill_all()
+
+        # Switch context to the homescreen iframe
+        time.sleep(2)
+        home_frame = self.marionette.find_element('css selector', 'div.homescreen iframe')
+        self.marionette.switch_to_frame(home_frame)</pre>
+
+<p>今の<code>tearDown(self):</code>メソッドを作成します。ここにMarionetteセッションを閉じるためのコードを追加する必要があります。メソッドは次のようになります。:</p>
+
+<pre class="brush: python">    def tearDown(self):
+        # Close the Marionette session now that the test is finished
+        self.marionette.delete_session()
+</pre>
+
+<p>ここでも、<code>test_add_contacts</code> から同じ行を削除することを忘れないでください。</p>
+
+<p>今、前にしたとおりにテストを実行してみてください。これで、パスと失敗のレポートを取得することを確認できます。これは、ユニットテストやpy.testなどのテストランナーを使用する利点の一つです。</p>
+
+<div class="note">
+<p><strong>注意</strong>: あなたが動けなくなる場合は、インターネットのまわりのユニットテスト使用するガイドがたくさんあります。<a href="http://selenium-python.readthedocs.org/en/latest/getting-started.html">http://selenium-python.readthedocs.org/en/latest/getting-started.html</a> と <a href="http://assertselenium.com/2013/10/07/getting-started-with-python-webdriver/">http://assertselenium.com/2013/10/07/getting-started-with-python-webdriver/</a> をお勧めします。Pythonとwebdriverをするためのものであるが、これらはまだ関連しています。</p>
+</div>
+
+<h2 id="参照コード">参照コード</h2>
+
+<p>参考のため、この段階での私たちの最終的なコードは次のようになります:</p>
+
+<pre class="brush: python">import time
+from marionette import Marionette
+from marionette_driver import Wait
+import unittest
+
+
+class TestContacts(unittest.TestCase):
+
+    def unlock_screen(self):
+        self.marionette.execute_script('window.wrappedJSObject.lockScreen.unlock();')
+
+    def kill_all(self):
+        self.marionette.switch_to_frame()
+        self.marionette.execute_async_script("""
+             // Kills all running apps, except the homescreen.
+             function killAll() {
+               let manager = window.wrappedJSObject.AppWindowManager;
+
+               let apps = manager.getApps();
+               for (let id in apps) {
+                 let origin = apps[id].origin;
+                 if (origin.indexOf('verticalhome') == -1) {
+                   manager.kill(origin);
+                 }
+               }
+             };
+             killAll();
+             // return true so execute_async_script knows the script is complete
+             marionetteScriptFinished(true);
+            """)
+
+    def setUp(self):
+         # Create the client for this session. Assuming you're using the default port on a Marionette instance running locally
+        self.marionette = Marionette()
+        self.marionette.start_session()
+
+        # Unlock the screen
+        self.unlock_screen()
+
+        # kill all open apps
+        self.kill_all()
+
+        # Switch context to the homescreen iframe and tap on the contacts icon
+        time.sleep(2)
+        home_frame = self.marionette.find_element('css selector', 'div.homescreen iframe')
+        self.marionette.switch_to_frame(home_frame)
+
+
+    def test_add_contacts(self):
+        <code>contacts_icon = self.marionette.find_element('xpath', "</code><code>//div[@class='icon']//span[contains(text(),'Contacts')]")</code>
+        contacts_icon.tap()
+
+        # Switch context back to the base frame
+        self.marionette.switch_to_frame()
+        Wait(self.marionette).until(lambda m: m.find_element('css selector', "iframe[data-url*='contacts']").is_displayed())
+
+        # Switch context to the contacts app
+        contacts_frame = self.marionette.find_element('css selector', "iframe[data-url*='contacts']")
+        self.marionette.switch_to_frame(contacts_frame)
+
+        # Tap [+] to add a new Contact
+        self.marionette.find_element('id', 'add-contact-button').tap()
+        Wait(self.marionette).until(lambda m: m.find_element('id', 'save-button').location['y']== 0)
+
+        # Type name into the fields
+        self.marionette.find_element('id', 'givenName').send_keys('John')
+        self.marionette.find_element('id', 'familyName').send_keys('Doe')
+
+        # Tap done
+        self.marionette.find_element('id', 'save-button').tap()
+        Wait(self.marionette).until(lambda m: not m.find_element('id', 'save-button').is_displayed())
+
+    def tearDown(self):
+        # Close the Marionette session now that the test is finished
+        self.marionette.delete_session()
+
+if __name__ == '__main__':
+    unittest.main()
+
+</pre>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_6_marionette_by_class/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_6_marionette_by_class/index.html
new file mode 100644
index 0000000000..32b7aa2bfd
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_6_marionette_by_class/index.html
@@ -0,0 +1,132 @@
+---
+title: 'パート 6: クラスによって、タプルと Marionette を使う'
+slug: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_6_Marionette_By_class
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Python
+ - Testing
+ - gaia-ui-tests
+translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_6_Marionette_By_class
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_5_Introducing_a_test_runner" style="float: left;">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_7_Writing_your_own_tests">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">コードでは、これまで、特定の要素を見つけるために多くのロケータを使用しています。アプリケーション(iFrames)やアプリケーションの特定の部分であるかどうか。今まで、結果として、直接インラインロケータを書いて、コードを複製しています。さらに状況を改善するためには、再利用できるように、Pythonのタプル変数にこのロケータを抽象化することをお勧めします。この記事では、どのようにお見せしましょう。</span></p>
+</div>
+
+<h2 id="タプル、およびクラスによるMarionette">タプル、およびクラスによるMarionette</h2>
+
+<p>例として、連絡先アプリiFrameを見つけるために使用しているロケータを考えてください。:</p>
+
+<pre class="brush: python">'css selector', "iframe[data-url*='contacts']"</pre>
+
+<p>表示されるようにフレームを待っているときと切り替えるときの両方でこのロケータを使用します。簡単に物事を行うために、変数でこれを保存することができます。(また<code>By</code>をインポートする必要があります。):</p>
+
+<pre class="brush: python">from marionette import By
+
+_contacts_frame_locator = (By.CSS_SELECTOR, "iframe[data-url*='contacts']")</pre>
+
+<p>Marionette <code>By</code> クラスは、<code>id</code>やCSSセレクタなどのように位置決め技術へのアクセスへのショートカットを提供します。前のように、セレクタを使用して要素を取得し、次にCSSのタプル変数に格納します。HTML(とロケータ)が変化した場合、2つの場所で変更を行うよりも、一度変数を更新する方が簡単です。このタプルを使用するには、そのような<code>find_element()</code>メソッドでそれを含みます。:</p>
+
+<pre class="brush: python">self.marionette.find_element(*self._contacts_frame_locator)</pre>
+
+<div class="note">
+<p><strong>注意</strong>: <code>*</code> — これに関連して — Pythonコードは、引数リストを開梱するためのものです; それは<code>find_element()</code>に渡る必要がある2つの引数に元のタプルを分割しています。詳細および例について、Pythonのドキュメントで<a href="http://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists">Unpacking argument lists</a>をご覧ください。</p>
+</div>
+
+<p>他のタプルの例、それは、<code>id</code> 属性によって探し出しますが、以下のとおりであります:</p>
+
+<pre class="brush: python">_add_contact_button_locator = (By.ID, 'add-contact-button')</pre>
+
+<h2 id="連絡先のテストでタプルとByを使用">連絡先のテストでタプルとByを使用</h2>
+
+<p>今では、テストのうち、ロケータを共有することができる <code>TestContacts</code> クラスのスコープにロケータを移動させることにより、<code>test_add_contact.py</code> のテストケースで重複を減らすための時間です。2,3のロケータを代入する方法を示し、その後、読者の演習として残りの部分を残しておきます。</p>
+
+<p>まず第一に、コードの先頭に次のように置くことによって、<code>By</code> をインポートすることを確認する必要があります。:</p>
+
+<pre class="brush: python">from marionette import By</pre>
+
+<p>今、<code>TestContacts</code>クラスの一番上にタプルを追加することができます。ちょうど<code>class TestContacts(unittest.TestCase):</code>行の下に次の行を追加します。:</p>
+
+<pre class="brush: python">_contacts_frame_locator = (By.CSS_SELECTOR, "iframe[data-url*='contacts']")
+_save_button_locator = (By.ID, "save-button")
+</pre>
+
+<p>今、コードを通過し、すべてのインスタンスを置き換えることができます</p>
+
+<pre class="brush: python">find_element('id', 'save-button')</pre>
+
+<p>with</p>
+
+<pre class="brush: python">find_element(*self._save_button_locator)</pre>
+
+<p>and all instances of</p>
+
+<pre class="brush: python">find_element('css selector', "iframe[data-url*='contacts']")</pre>
+
+<p>with</p>
+
+<pre class="brush: python">find_element(*self._contacts_frame_locator)</pre>
+
+<p>そして、それは今のところこれだけです。既にあってもこの単純な例では、このコードの再利用のメリットを確認できるようになることを確信しています。この手法では、同じロケータが5、10または20回使用することを有することができる、より複雑なテストを書くために開始するように、特に有効になり始めます。<br>
+ <br>
+  </p>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_7_writing_your_own_tests/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_7_writing_your_own_tests/index.html
new file mode 100644
index 0000000000..d1d2a3551f
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_7_writing_your_own_tests/index.html
@@ -0,0 +1,122 @@
+---
+title: 'パート 7: 自分自身のテストを書く'
+slug: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_7_Writing_your_own_tests
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Python
+ - gaia-ui-tests
+ - tests
+translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_7_Writing_your_own_tests
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_6_Marionette_By_class" style="float: left;">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_8_Using_a_base_class">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">これまでのところ、すばやく設定し、実行してフォローするのに十分な手順に沿って、FirefoxのOS上で、独自の自動テストを書き始めるために必要なツールや情報のほとんどを与えてくれました。この部分では、いくつかのリソースやアイデアをご提供し、人出がいらないつもりで、次に自身の方法を作るために奨励しています。ここでは、独自のテストを書くの方に移動を開始します - お楽しみください!</span></p>
+</div>
+
+<h2 id="リソース">リソース</h2>
+
+<p>自身のユニットテストを構築するために開始するように次のリソースが有用であろう。</p>
+
+<ul>
+ <li><a href="/Firefox_OS/Using_the_App_Manager">Firefox OS App Manager</a>はデバイス上で、またはシミュレータでの直接Gaiaのデバッグをするための素晴らしいツールです。これは、アクセスして要素を操作するために使用するロケーターを見つけるために下にあるコードを検査するための良い方法です。</li>
+ <li>より限定されたが、より低いオーバーヘッド検査機構として、<code>print self.marionette.page_source</code> コマンドを使用して、コンソールへのHTMLソースをダンプすることができます。</li>
+ <li>別のオプションは、<a href="https://github.com/mozilla-b2g/gaia/tree/master/apps">Gaia Git repo</a>で生のHTMLを見ることです。</li>
+ <li>Marionetteのコマンドの詳細については、<a href="https://marionette_client.readthedocs.org/en/latest/">Marionette docs</a>をご覧ください。</li>
+</ul>
+
+<h2 id="新規および変更されたテストのためのアイデア">新規および変更されたテストのためのアイデア</h2>
+
+<p>このセクションでは、始めるためにいくつかのアイデアを提供します。</p>
+
+<h3 id="test_add_contact.pyの変更">test_add_contact.pyの変更</h3>
+
+<p>すでに動作してきたテストを修正してみましょう:</p>
+
+<ol>
+ <li>テスト接点には一意の名前を毎回持っていることを確認します。</li>
+ <li><code>setUp()</code> ステップにおけるすべての連絡先を削除します。</li>
+ <li>ロック解除前に画面を復帰。</li>
+</ol>
+
+<p>今度は、別のテストメソッドの追加しましょう。これは、それが名前の最初に<code>test_</code>を持っている限り好きなものを呼び出すことができます。このテストでは、次の操作を行う必要があります。:</p>
+
+<ol>
+ <li>オープンコンタクト。</li>
+ <li>最初のテストで作成されたものと異なる名前で連絡先を作成します。</li>
+ <li>編集モードで連絡先を再入力します。</li>
+ <li><em>Company</em>を追加します。</li>
+ <li><em>Done</em>をタップします。</li>
+ <li>会社が表示されていることを主張しています。</li>
+</ol>
+
+<p>テストファイルを実行すると、今、両方のテストが実行されます。今、テスト自動化の強度に近づいています — 自動的に一連のテストを実行し、結果を報告する機能!</p>
+
+<h3 id="いくつかの新しいテストのアイデア">いくつかの新しいテストのアイデア</h3>
+
+<ul>
+ <li>連絡先を作成します。連絡先を編集し、名前を変更します。名前の変更が画面に反映されるべきです。</li>
+ <li>それが好きなようにそれを追加するためのコンタクトと 'star'を作成します。メイン画面には、* (スター) カテゴリの下に表示されているはずです。</li>
+ <li>電話番号と連絡先を作成します。連絡先のレコードを開いて、「メッセージ」アイコンをタップした後、メッセージアプリは、受信者フィールドに、連絡先で開く必要があります。</li>
+</ul>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_8_using_a_base_class/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_8_using_a_base_class/index.html
new file mode 100644
index 0000000000..af37d37b4e
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_8_using_a_base_class/index.html
@@ -0,0 +1,153 @@
+---
+title: 'パート 8: ベースクラスを使用する'
+slug: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_8_Using_a_base_class
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Python
+ - gaia-ui-tests
+ - tests
+translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_8_Using_a_base_class
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_7_Writing_your_own_tests" style="float: left;">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_9_app_objects">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">今、おそらく、進捗状況についてのかなり良く感じている複数のテストを持っています。しかし、さらなるコード効率を向上させる他の方法があります — これまでに、各テストファイルにおいて <code>setUp()</code> と <code>tearDown()</code> メソッドが含まれるように持っていたことがあります。 このシリーズで見てきた現在のコンストラクトで行きます。数十のテストを持っている場合、それはコードの重複がたくさんです! この記事では、<code>TestBase</code> クラスのすべてのテストに共通な<code>setUp()</code>/<code>tearDown()</code> コードを配置する方法を見てみましょう。これは、各個々のテストファイルにインポートすることができます。</span></p>
+</div>
+
+<h2 id="test_base.py">test_base.py</h2>
+
+<p>開始するには、既存のテストケースと同じディレクトリに <code>test_base.py</code> と呼ばれる新しいファイルを作成します。</p>
+
+<p>次に、<code>setUp()</code> と <code>tearDown()</code> メソッドを含む<code>TestBase</code> クラスに加えて、ファイルに共通の設定(<code>unittest</code>, <code>Marionette</code> and <code>time</code>)に関連するあなたの大切な書類を移動します。そして、共通ヘルパー関数(<code>unlock_screen()</code> のような)と関連付けられています。 ファイルには、次のようになります:</p>
+
+<pre class="brush: python">import time
+import unittest
+from marionette import Marionette
+
+
+class TestBase(unittest.TestCase):
+
+    def unlock_screen(self):
+        self.marionette.execute_script('window.wrappedJSObject.lockScreen.unlock();')
+
+    def kill_all(self):
+        self.marionette.switch_to_frame()
+        self.marionette.execute_async_script("""
+             // Kills all running apps, except the homescreen.
+             function killAll() {
+               let manager = window.wrappedJSObject.AppWindowManager;
+
+               let apps = manager.getApps();
+               for (let id in apps) {
+                 let origin = apps[id].origin;
+                 if (origin.indexOf('verticalhome') == -1) {
+                   manager.kill(origin);
+                 }
+               }
+             };
+             killAll();
+             // return true so execute_async_script knows the script is complete
+             marionetteScriptFinished(true);
+            """)
+
+    def setUp(self):
+         # Create the client for this session. Assuming you're using the default port on a Marionette instance running locally
+        self.marionette = Marionette()
+        self.marionette.start_session()
+
+        # Unlock the screen
+        self.unlock_screen()
+
+        # kill all open apps
+        self.kill_all()
+
+        # Switch context to the homescreen iframe and tap on the contacts icon
+        time.sleep(2)
+        home_frame = self.marionette.find_element('css selector', 'div.homescreen iframe')
+        self.marionette.switch_to_frame(home_frame)
+
+
+    def tearDown(self):
+        # Close the Marionette session now that the test is finished
+        self.marionette.delete_session()
+</pre>
+
+<h2 id="テストファイルの更新">テストファイルの更新</h2>
+
+<p>作成された <code>test_base.py</code> ファイルを使用して、<code>TestBase</code>をテストファイルにインポートする必要があります。そして、テストクラスは、<code>TestBase</code>クラスを拡張するために変更される必要があります。:</p>
+
+<pre class="brush: python">import unittest
+from marionette import Wait
+from marionette import By
+from test_base import TestBase
+
+class TestContacts(TestBase):
+
+ def test(self):
+ # Tests in here
+
+if __name__ == '__main__':
+ unittest.main()</pre>
+
+<p>もう一度テストファイルを実行してみてください。</p>
+
+<p>今は多くのように見えないかもしれないが、あなたは数十または数百のテストがある場合、これは実際に重複したコードの多くを保存します。</p>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_9_app_objects/index.html b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_9_app_objects/index.html
new file mode 100644
index 0000000000..00dc7f472e
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia-ui-tests/part_9_app_objects/index.html
@@ -0,0 +1,141 @@
+---
+title: 'パート 9: アプリオブジェクトの複製を抑える'
+slug: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_9_app_objects
+tags:
+ - Automation
+ - Firefox OS
+ - Gaia
+ - Python
+ - app objects
+ - gaia-ui-tests
+ - tests
+translation_of: Archive/B2G_OS/Automated_testing/gaia-ui-tests/Part_9_app_objects
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Part_8_Using_a_base_class" style="float: left;">« 前のページ</a><br></p>
+</div><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">自動テストでは、多くの場合、抽象コードに <code>app</code> のオブジェクトを使用します。これは、コードとロケータの重複を減らすことができます。コードの共通部分を変更する必要がある場合、むしろ10または20テストファイルでそれを変更することよりも、単一の <code>app</code> のオブジェクトに変更することができます。この記事では、<code>app</code> のオブジェクトを使用する方法の基礎を提供します。</span></p>
+</div>
+
+<h2 id="アプリオブジェクト_入門">アプリオブジェクト: 入門</h2>
+
+<p><code>app</code> オブジェクトは、メソッド、ページ上のアクションを表すプロパティを含むPythonのクラスです。理論的な例では、これらを使用する方法を見てみましょう。</p>
+
+<h3 id="homepage.py">homepage.py</h3>
+
+<p>下記はいくつかの含まれている擬似コードとともに、ホームページのアプリのために使用する場合があるフレームです。</p>
+
+<pre class="brush: python">class Homepage:
+ __init__(self, marionette):
+ # Marionette is passed in so that the object can use it
+ self.marionette = marionette
+
+ def switch_to_homepage_frame(self):
+ # Code for switching to System then to Homepage frame
+
+ def tap_contacts_icon(self):
+ # Code to tap the icon
+ # Switch to Contacts frame
+ # Now we return the Contacts app object as it has focus
+ from contacts import Contacts
+ return Contacts(self.marionette)</pre>
+
+<h3 id="contacts.py">contacts.py</h3>
+
+<p>そしてここでいくつかの擬似コードで再度、連絡先アプリに使用するかもしれないものです。</p>
+
+<pre class="brush: python">class Contacts:
+ _new_contact_button = (By.ID, ‘id’)
+
+ def tap_new_contact(self):
+ # Tap new contact icon
+ # Wait for event
+
+ def type_given_name(self, name_string):
+ # element.send_keys(name_string)</pre>
+
+<h3 id="test_contacts.py"><strong>test_contacts.py</strong></h3>
+
+<p>これはテストのコンテキストでどのように機能するかを理解するために、下記は<code>Homepage</code> のクラスを利用した迅速なサンプルです。:</p>
+
+<pre class="brush: python">from homepage import Homepage
+
+def test_add_contact(self):
+ homepage = Homepage(self.marionette)
+ homepage.switch_to_homepage_frame()
+
+contacts = homepage.tap_contacts_icon()
+contacts.tap_new_contact()</pre>
+
+<h2 id="テストを更新">テストを更新</h2>
+
+<p>ここからは、新しいアプリケーションのオブジェクトシステムを使用するようにテストのすべてのファイルを更新するために挑戦したいと思います。</p>
+
+<p>これは困難な作業であり、Pythonのクラス構造に慣れていない場合は、参照とコードサンプルのためのいくつかの書籍を参照する必要があります。</p>
+
+<p>完了したら、理想的には、テストファイル間の明確な分離を持っています:</p>
+
+<ol>
+ <li><code>TestBase</code>は、<code>setUp()</code> と <code>tearDown()</code> メソッドを含みます。</li>
+ <li><code>app</code> オブジェクトはページの相互作用とロケータが含まれています</li>
+ <li>テストファイルは、単にテスト手順が含まれます。</li>
+</ol>
+
+<p>がんばろう!</p>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia_performance_tests/index.html b/files/ja/archive/b2g_os/automated_testing/gaia_performance_tests/index.html
new file mode 100644
index 0000000000..e6e132cf33
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia_performance_tests/index.html
@@ -0,0 +1,201 @@
+---
+title: Gaia パフォーマンステスト
+slug: Archive/B2G_OS/Automated_testing/Gaia_performance_tests
+tags:
+ - Apps
+ - B2G
+ - Firefox OS
+ - QA
+translation_of: Archive/B2G_OS/Automated_testing/Gaia_performance_tests
+---
+<div class="summary">
+<h4 id="この記事ではGaiaのパフォーマンステスト実行に関する情報を、新規テストを作る方法と共に提供します。"><span class="seoSummary">この記事ではGaiaのパフォーマンステスト実行に関する情報を、新規テストを作る方法と共に提供します。</span></h4>
+</div>
+
+<div class="warning">
+<p><strong>記:</strong> <code>test-perf</code> の使用と Datazilla は非推奨です。Gaia に関するパフォーマンステストの最新リソースは、<a href="https://developer.mozilla.org/ja/Firefox_OS/Automated_testing/Raptor">Raptor</a> を見て下さい。</p>
+</div>
+
+<h2 id="テストを実行する">テストを実行する</h2>
+
+<p>テストは<a href="https://datazilla.mozilla.org/b2g/" title="https://datazilla.mozilla.org/b2g/">Datazilla</a>の通常の基礎の上で実行します; しかしながら、自分自身でも実行できます。このためには、<a href="/en-US/docs/Marionette" title="/en-US/docs/Marionette">Marionette</a> が有効でリモートデバッグが<strong>無効な</strong>エンジニアリングビルドが必要です。 この方法の詳細情報は、<a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Build_System_Primer#Customizing_the_preferences" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Build_System_Primer#Customizing_the_preferences">Gaia ビルドシステム入門の、設定カスタマイズ</a> を見て下さい。</p>
+
+<h3 id="テストの要求事項">テストの要求事項</h3>
+
+<p>2013/12/6 から <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=915156" title="FIXED: Port the performance testing framework to the new marionette runner">バグ 915156</a> が落ち着いたため、<code>make test-perf</code> はホスト上でテストを実行するのに Node.js が必要です。関連モジュールは <code>npm</code> で自動インストールされるでしょう。</p>
+
+<p>テストを実行する前に、実行ホストを調整する必要があります。実行ホストは<a href="/en-US/Firefox_OS/Using_the_B2G_desktop_client">B2G デスクトップ</a> や、端末上で (実際または仮想の — <a href="/en-US/Firefox_OS/Using_the_B2G_emulators">emulator</a>のように) テストを実行させるモジュールです。デフォルトではB2G デスクトップ内で実行して、これはパフォーマンスと深くは関連しません。実行ホストを調整するには、単にGaiaの最上位ディレクトリにある <code>local.mk</code> ファイルを編集して(存在しない場合は作成します)、次の行を加えます:</p>
+
+<pre class="brush: bash">MARIONETTE_RUNNER_HOST=marionette-device-host</pre>
+
+<p>これで端末の実行ホストを使えます。デフォルト値は<code>marionette-b2gdesktop-host</code> です。</p>
+
+<p>もう一つは次のようにします:</p>
+
+<pre class="brush: bash">MARIONETTE_RUNNER_HOST=marionette-device-host make test-perf </pre>
+
+<div class="note">
+<p><strong>記:</strong> 1つより多い端末が接続されている場合、<code>ANDROID_SERIAL環境変数をセットしなければなりません。</code>どの値を使うかを知るには、<code>adb devices</code> を見ます。<a href="/en-US/Firefox_OS/Platform/Gaia/Hacking">更新済の Gaia バージョンを実行している</a>のを確認します。</p>
+</div>
+
+<h3 id="出力">出力</h3>
+
+<p>By default the test output the data in JSON format. By default it is output to <code>stdout</code> and might be mixed with error message from other commands like <code>npm</code>. This is not a very good idea for automation. So you can redirect this JSON output to a file. Just define <code>MOZPERFOUT</code> for the host runner, either on the command line as an option or in the <code>local.mk</code> file as shown above.</p>
+
+<pre class="brush: bash">MOZPERFOUT=myfile.json</pre>
+
+<p>There is a "spec" reporter that allow reporting the output in a more human readable format. To use it, set the environment as follow:</p>
+
+<pre class="brush: bash">REPORTER=ConsoleMozPerf</pre>
+
+<p>This will make the test output something easier to read. Not easier to parse. There is no real syntax.</p>
+
+<p>For now, any other value will use the JSON reporter.</p>
+
+<div class="note">
+<p><strong>Note:</strong> <code>MOZPERFOUT</code> will be honoured whichever reporter you select.</p>
+</div>
+
+<h3 id="全てのテストを実行する">全てのテストを実行する</h3>
+
+<p>In general you can run these tests on 1.4 and upwards from Gaia master. 1.3 might no longer be able to handle the test runs. There is an exception for 1.3t (Tarako). since <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1006064" title="FIXED: Port make test-perf to 1.3T">バグ 1006064</a> landed, if you want to run the tests against Tarako (1.3t), you should run it from the Gaia 1.3t. From 2.0 and onwards, we consider that you should run the test from the same Gaia tree.</p>
+
+<p>To run all the tests, use the following command:</p>
+
+<pre class="brush: bash">make test-perf</pre>
+
+<div class="note">
+<p><strong>Note</strong>: Since early August 2014 (currently only on master) the b2g process is restarted after each test, not after each test run, to improve the reliability of the tests (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1027232" title="FIXED: We should restart b2g before each app tests">バグ 1027232</a>). If you want to disable this, set the <code>RESTART_B2G</code> environment variable to "0" when running the tests.</p>
+</div>
+
+<h3 id="特定アプリのテストを実行する">特定アプリのテストを実行する</h3>
+
+<p>This is done by naming the app you want to run the tests for,  in the <code>APP</code> variable, for example:</p>
+
+<pre class="brush: bash">APP=browser make test-perf</pre>
+
+<h3 id="一連のアプリのテストを実行する">一連のアプリのテストを実行する</h3>
+
+<p>You can also specify a set of apps, inside the <code>APPS</code> variable, to run the tests against a specific set:</p>
+
+<pre class="brush: bash">APPS="browser communications/contacts" make test-perf</pre>
+
+<h3 id="実行数の設定">実行数の設定</h3>
+
+<p>By default, each test is run five times. You can change that by setting the value of <code>RUNS</code> before running the tests. For example, to run each test three times you'd use this option:</p>
+
+<pre class="brush: bash">RUNS=3 make test-perf</pre>
+
+<h3 id="既知の問題">既知の問題</h3>
+
+<p>When running test on Buri/Hamachi (Alcatel one touch fire), you get:</p>
+
+<pre>Not enough fields given the number of keys.</pre>
+
+<p>You can safely ignore the warning. It is just that <code>b2g-info</code> on the device is too old as it comes from 1.2 and we only change Gecko and Gaia on these.</p>
+
+<h2 id="新規テストを書く">新規テストを書く</h2>
+
+<p>With the details of running the test suite out the way, let's now look at how you can write your own performance tests for Gaia.</p>
+
+<h3 id="スタートアップイベントのテスト">スタートアップイベントのテスト</h3>
+
+<p>We have setup a standard for app startup events. If you want to test the app startup, please follow the <a href="https://developer.mozilla.org/en-US/Apps/Build/Performance/Firefox_OS_app_responsiveness_guidelines">responsiveness guidelines</a>. The <code>startup_event_test.js</code> test will drive it. Make sure to whitelist your app in <code>/tests/performance/config.json</code>, by adding it to the list specified by <code>mozLaunch</code>.</p>
+
+<div class="note">
+<p><strong>Note:</strong> This is only implemented in v2.0 and later. If your code uses <code>startup-path-done</code> events then it is using the deprecated style and should be updated.</p>
+</div>
+
+<p>If you want to measure intermediate launch stages that are not part of the reponsiveness standard, you can dispatch these using the method described below. Dispatching performance events is all you need, they will be collected automatically.</p>
+
+<h3 id="他のイベントに基づくテスト">他のイベントに基づくテスト</h3>
+
+<p>Now if you want to test specific features in your app you can do so by sending events. The test will be in two part. The instrumentation part that lives in the app itself, and the control part that will use marionette to control the app to perform actions.</p>
+
+<h4 id="Instrumentation">Instrumentation</h4>
+
+<p>To record the events, all you have to do is dispatch them.</p>
+
+<p>First, include our helper in your app:</p>
+
+<pre class="brush: html">&lt;script src="/shared/js/performance_testing_helper.js"&gt;&lt;/script&gt;
+</pre>
+
+<div class="note">
+<p><strong>Note</strong>: The use of module loaders like RequireJS or Alameda, are perfectly acceptable provided it is loaded before any performance events are triggered.</p>
+</div>
+
+<p>You need to be cautious and make sure you adjust the <a href="/en-US/Firefox_OS/Platform/Automated_testing/Gaia_unit_tests">unit tests</a> so that the <code>PerformaceTestingHelper</code> is either loaded or shimmed. A simple shim is to put this in the unit test source file:</p>
+
+<pre class="brush: js">var PerformanceTestingHelper = {
+  dispatch: function() { }
+};
+</pre>
+
+<p>The Travis CI jobs we run out of Github will error if you don't do that properly.</p>
+
+<p>Having done that, you can use the helper to dispatch events when it seems appropriate to do so. First you should dispatch a start event. It is important as the '<code>start</code>' event is sent when we register the listeners, so for your feature you likely want to do this much later. So choose where the feature start and add the proper event dispatch.</p>
+
+<pre class="brush: js">PerformanceTestingHelper.dispatch('my-feature-start');
+</pre>
+
+<p>When you're ready to stop collecting data and to report the numbers, you need to send the <code>my-feature-done</code> event, also called the last event, to tell the helper to finish:</p>
+
+<pre class="brush: js">PerformanceTestingHelper.dispatch('my-feature-done');</pre>
+
+<p>Also you might want to send intermediate events as appropriate.</p>
+
+<div class="note">
+<p><strong>Note:</strong> Here we use "my-feature-" as a prefix for the performance event. This is just an example. Please use an obvious name and try to use it consistently.</p>
+</div>
+
+<h4 id="アプリをコントロールする">アプリをコントロールする</h4>
+
+<p>The second part is writing JavaScript to the test framework to perform the test. The filename must end with <code>_test.js</code> and live in <code>apps/&lt;myapp&gt;/test/performance/</code>.</p>
+
+<p>It is a lot like a marionette integration test (based on mocha), but with a few twists: in the <code>setup()</code> function you must inject the helper atom that is being used to collect the performance events.</p>
+
+<pre class="brush: js">PerformanceHelper.injectHelperAtom(client);</pre>
+
+<p>You must pass a <code>lastEvent</code> parameter to the <code>PerformanceHelper</code> constructor. This will be the last event on which to wait to test your feature.</p>
+
+<p>When calling <code>performanceHelper.reportRunDurations()</code> toward the end you must pass the name of the start event you dispatched, otherwise the measurement will be from the start, ie when we inject the helper atom. An easy to figure out the error is if you see the start event in the results. And in that case you'll the the startup events as well as these will be dispatched too.</p>
+
+<div class="note">
+<p><strong>Note:</strong> You should study existing tests to get a become more familiar with the process.</p>
+</div>
+
+<h3 id="メモリの統計情報を集める">メモリの統計情報を集める</h3>
+
+<p>You can collect the memory usage for both the b2g process and the current app. Just do</p>
+
+<pre class="brush: js">var memUsage = performanceHelper.getMemoryUsage(app);</pre>
+
+<p><code>app</code> is the application object. <code>memusage</code> will contain several objects enumerating the memory statistics.</p>
+
+<h2 id="非エンジニアリング端末でテスト実行する">非エンジニアリング端末でテスト実行する</h2>
+
+<p>If you don't have an engineering build on your phone you'll have to do some additional steps:</p>
+
+<ol>
+ <li>Clone B2G, and build with <code>./config.sh DEVICE-NAME</code> (e.g. <code>./config.sh keon</code>)</li>
+ <li>Build the Gecko part via <code>./build.sh gecko</code></li>
+ <li>Connect the phone and flash gecko via <code>./flash.sh gecko</code></li>
+ <li>Clone Gaia, and create a file <code>build/custom-prefs.js</code> with content <code>user_pref("marionette.defaultPrefs.enabled", true);</code></li>
+ <li>Enable <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Remote_debugging">Remote Debugging</a> on the phone and run <code>make reset-gaia</code> to reset the phone (or <code>make install-gaia</code> if you trust yourself)</li>
+ <li>Disable Remote Debugging and verify that everything is OK by running <code>adb devices</code>. The device should show up.</li>
+ <li>Now running a perf test should work. Verify via <code>RUNS=1 APP=browser make test-perf</code></li>
+</ol>
+
+<h2 id="バグ登録する">バグ登録する</h2>
+
+<p>Please <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">file bugs in Bugzilla</a>, product "Firefox OS", component "Gaia::PerformanceTest".</p>
+
+<h2 id="参考情報">参考情報</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Marionette" title="/en-US/docs/Marionette">Marionette</a></li>
+ <li><a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing">Testing Firefox OS</a></li>
+</ul>
+
+<div style="background-color: transparent; color: #000000; position: absolute; top: 189px; left: 180px; padding: 0px; border-radius: 2px;" id="divLookup"><img></div>
diff --git a/files/ja/archive/b2g_os/automated_testing/gaia_unit_tests/index.html b/files/ja/archive/b2g_os/automated_testing/gaia_unit_tests/index.html
new file mode 100644
index 0000000000..67e236098f
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/gaia_unit_tests/index.html
@@ -0,0 +1,119 @@
+---
+title: Gaiaユニットテスト
+slug: Archive/B2G_OS/Automated_testing/Gaia_unit_tests
+translation_of: Archive/B2G_OS/Automated_testing/Gaia_unit_tests
+---
+<div class="summary">
+ <p>Gaia/B2Gソースコードの一部として、GaiaとB2Gの異なる側面をテストするために、さまざまなユニットテストが使用可能になった。この記事ではこれらにアクセスする方法について解説します。</p>
+</div>
+<div class="note">
+ <p><strong>注意</strong>: このドキュメントではあなたがGaiaとB2Gを動かす方法を理解していると仮定しています。Gaiaの開発を開始するには<a href="/ja/Firefox_OS/Developing_Gaia">Gaiaの開発</a>を見てください。</p>
+</div>
+<h2 id="ユニットテストを実行する">ユニットテストを実行する</h2>
+<p><a href="/ja/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client">B2Gデスクトップ</a>か<a href="http://nightly.mozilla.org/">Firefox Nightly</a>でユニットテストを実行することができます。また最新の<a href="https://github.com/mozilla-b2g/gaia/">Gaiaリポジトリ</a>が必要です。ほとんどの機能のために<a class="external" href="http://nodejs.org/" title="http://nodejs.org/">Node.js</a>と<a class="external" href="http://npmjs.org/" title="http://npmjs.org/">NPM</a>がインストールされている必要があります。</p>
+<div class="note">
+ <p><strong>注意</strong>: もし以下のコマンドがtest-agentの依存関係をインストール中に暗号に関するエラーで失敗したら、Node.js/NPMのバージョンが古すぎることに起因しているかもしれません。新しいバージョンをインストールし<code>node_modules/test-agent</code>フォルダを削除するために<a href="https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager">パッケージマネージャによってNode.jsをインストールする</a>を読んでください。</p>
+</div>
+<p>Gaiaリポジトリにはテストの実行が簡単になるように便利な<code>bin/gaia-test</code>スクリプトが同梱されます。</p>
+<div class="note">
+ <p><strong>注意してください:</strong>このスクリプトは<code>profile-debug</code>のユニットテストに適したプロファイルを生成します。すでにこのディレクトリに別のプロファイルがある場合それを上書きします。<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=980496">Bug 980496</a>ではこれをコンフィグ可能にすることを目指しています。</p>
+</div>
+<h3 id="Firefoxでテストランナーを起動する">Firefoxでテストランナーを起動する</h3>
+<p>テストサーバとPATHから見つかるデフォルトのFirefoxを起動します:</p>
+<pre class="brush: bash">bin/gaia-test</pre>
+<h4 id="Firefoxのバイナリを選択する">Firefoxのバイナリを選択する</h4>
+<p>FIREFOX環境変数にFirefoxバイナリのパスをexportすることができる。例えばOS Xの場合:</p>
+<pre class="brush: bash">export FIREFOX=/Applications/FirefoxNightly.app/Contents/MacOS/firefox</pre>
+<p>或いは、bin/gaia-testへの引数として渡すこともできます:</p>
+<pre class="brush: bash">bin/gaia-test &lt;gaia directory&gt; &lt;firefox path&gt;</pre>
+<h3 id="B2Gデスクトップでテストランナーを起動する">B2Gデスクトップでテストランナーを起動する</h3>
+<p>ダウンロードとB2Gデスクトップの起動:</p>
+<pre class="brush: bash">bin/gaia-test -d</pre>
+<h3 id="Webインターフェイスからのテスト実行">Webインターフェイスからのテスト実行</h3>
+<p>特定のテストと<em>Execute</em>ボタンをシンプルにクリックすることでできます。</p>
+<h3 id="コマンドラインからのテスト実行">コマンドラインからのテスト実行</h3>
+<p>以下のコマンドでWebSocketサーバを実行し、B2G Desktop/Firefox Nightlyでテストエージェントアプリを実行します:</p>
+<pre>make test-agent-test
+</pre>
+<p>If you only want to run one app's tests you can specify which via the <code>APP</code> env variable:</p>
+<pre>make test-agent-test APP=calendar
+</pre>
+<p>また必要に応じてテスト出力を整形するための<a class="external" href="http://visionmedia.github.com/mocha/#reporters" title="http://visionmedia.github.com/mocha/#reporters">レポータ</a>を提供することができます:</p>
+<pre>make REPORTER=List test-agent-test
+</pre>
+<div class="note">
+ <strong>注意:</strong>現在Docをサポートしていないので、全てのリポータが動くわけではありません。</div>
+<h3 id="Run_the_tests_as_you_save">Run the tests as you save</h3>
+<p>When the server is running, the tests for a file are run automatically when a file is saved or even just touched:</p>
+<ul>
+ <li>When you save a test file, the test file itself is run</li>
+ <li>When you save another file, it finds a matching file in the <code>test/unit</code> directory, by suffixing the file name with <code>_test.js</code>.</li>
+</ul>
+<div class="note">
+ <p><strong>Note: </strong>It watches only existing files so if you create a new file, you have to restart the agent.</p>
+</div>
+<h3 id="Running_tests_like_TBPL_does">Running tests like TBPL does</h3>
+<p>Gaia unit tests in TBPL are run using a separate runner; this explains how to use it.  Please consult the <a href="/en-US/docs/Python/Virtualenv" title="/en-US/docs/Python/Virtualenv">virtualenv</a> docs if you're not familiar with using a Python virtualenv.</p>
+<pre class="brush: bash">virtualenv venv
+source venv/bin/activate
+cd $GAIA/tests/python/gaia-unit-tests
+python setup.py develop
+cd gaia_unit_test
+python main.py --binary /path/to/b2g/desktop/build --profile /path/to/gaia/profile
+</pre>
+<div class="note">
+ <p><strong>Note</strong>: When specifying the path to the B2G desktop build, you should specify the path to <code>b2g-bin</code>, if it exists, otherwise use <code>b2g</code>.</p>
+</div>
+<p>The Gaia profile must be made using the following:</p>
+<pre class="brush: bash">NO_LOCK_SCREEN=1 DEBUG=1 DESKTOP=0 make</pre>
+<p>By default, this profile will be generated in <code>$GAIA/profile-debug</code>. <code>bin/gaia-test</code> generates the same profile so you don't need to regenerate it if you already run <code>gaia-test</code>.</p>
+<h3 id="Disabling_a_gaia_unit_test_in_TBPL">Disabling a gaia unit test in TBPL</h3>
+<p>TBPL uses a blacklist to exclude certain gaia unit tests from being run.  To prevent a test from running in TBPL, add its path to <a href="https://github.com/mozilla-b2g/gaia/blob/master/tests/python/gaia-unit-tests/gaia_unit_test/disabled.json">https://github.com/mozilla-b2g/gaia/blob/master/tests/python/gaia-unit-tests/gaia_unit_test/disabled.json</a>.</p>
+<h2 id="Setting_up_your_Gaia_app">Setting up your Gaia app</h2>
+<p>Although this guide should help make things easier, the best way to learn how to write, set up, and run tests is currently still to look at the source code; in particular, take a look at the <a class="link-https" href="https://github.com/lightsofapollo/gaia/tree/master/apps/gallery/test" title="https://github.com/lightsofapollo/gaia/tree/master/apps/gallery/test">gallery tests</a>.</p>
+<h3 id="Loading_your_own_test_files" style="line-height: 24px; font-size: 1.71428571428571rem;">Loading your own test files</h3>
+<div class="note">
+ <p><strong>Note</strong>: This is an advanced and entirely optional technique. If test-agent's native test loader is working for your application and your test style, and you don't want to use your own test files, this section is not for you!</p>
+</div>
+<p>Test-agent loads your test files in an environment where they have access to mocha (among other bits of global state). One important test-agent global is <code>require</code>, which allows your test file to load a dependency (application code for instance). Sometimes, particularly if your application files expect to be loaded in a way that's different from test-agent's <code>require</code>, it can be useful to override test-agent's test file loader. You can do so in the following manner:</p>
+<pre class="brush: js" style="font-size: 14px;">// setup.js
+
+testAgentRuntime.testLoader = function(path) {
+ // We're going to return a promise to represent
+ // the loading state of the test file at this path.
+ return new Promise((accept, reject) =&gt; {
+ // Load the parameter test file and resolve (or reject) appropriately
+ // ...
+ });
+};</pre>
+<h2 id="Using_mocks">Using mocks</h2>
+<p>TBD</p>
+<h2 id="Advanced_what_does_the_script_do">Advanced: what does the script do?</h2>
+<h3 id="Generating_a_profile">Generating a profile</h3>
+<p>You need a profile that is generated by this command:</p>
+<pre class="brush: bash">NO_LOCK_SCREEN=1 DEBUG=1 DESKTOP=0 make
+</pre>
+<p>This generates a debug profile in <code>gaia/profile-debug</code>, overriding a previous profile if you already have one.</p>
+<ul>
+ <li><code>DEBUG=1</code> enables the <em>httpd.js</em> extension that makes it possible to directly use the files from the <code>apps/</code> directory.</li>
+ <li><code>NO_LOCK_SCREEN=1</code> disables the lock screen, which is necessary in B2G Desktop because it's not possible to unlock it using the mouse.</li>
+ <li><code>DESKTOP=0</code> disables the other addons we normally use in DEBUG mode to run Gaia in Firefox.</li>
+</ul>
+<h3 id="Launch_the_WebSocket_server">Launch the WebSocket server</h3>
+<p>Test agent (the test runner) ships with a built in WebSocket server that lets you remotely message the browser or device to queue a test run. Often you will want to develop with time saving features like a file watcher that will run your tests when a test file or implementation changes. To take advantage of these features you need to start the server:</p>
+<pre class="brush: bash">make test-agent-server
+</pre>
+<p>Using the WebSocket server provides other tools such as a command line reporter for test results (watch the terminal you ran the command from), a Growl reporter, syntax error notifications, and more.</p>
+<p>The agent also watches for modifications in files, and automatically runs the associated tests. It runs when you save the test or if you save the tested file (we use the convention where the test filename is the tested filename with <code>_test</code> appended,<code> </code>see below for more examples). It watches only existing files so if you create a new file, you have to restart the agent.</p>
+<h3 id="Running_unit_tests_with_Firefox_Nightly">Running unit tests with Firefox Nightly</h3>
+<p>You can launch Gaia in Firefox Nightly with the following commands:</p>
+<pre class="brush: bash">cd &lt;path to gaia&gt;
+&lt;path to nightly&gt;/firefox --no-remote -profile &lt;path to gaia&gt;/profile-debug/ http://test-agent.gaiamobile.org:8080/</pre>
+<div class="note">
+ <p><strong>Note</strong>: In OS X, The profile path should be absolute path</p>
+</div>
+<p>You can use Firebug or the integrated debugger to debug the tests; use the <code>debugger</code> keyword to break in the debugger.</p>
+<h3 id="Running_unit_tests_with_B2G_Desktop">Running unit tests with B2G Desktop</h3>
+<p>Launch Gaia and start the "Test Agent" app. From the Test gent app you can select tests to run from the UI.</p>
+<h2 id="Advanced_how_does_the_test-agent_work">Advanced: how does the test-agent work?</h2>
+<p>The Test Agent lives in<a href="https://github.com/mozilla-b2g/js-test-agent"> its own Github repository</a>. You can have look there to understand how it works under the hood.</p>
diff --git a/files/ja/archive/b2g_os/automated_testing/index.html b/files/ja/archive/b2g_os/automated_testing/index.html
new file mode 100644
index 0000000000..0ab927239b
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/index.html
@@ -0,0 +1,97 @@
+---
+title: Firefox OSの自動テスト
+slug: Archive/B2G_OS/Automated_testing
+tags:
+ - Automated testing
+ - QA
+ - Testing
+translation_of: Archive/B2G_OS/Automated_testing
+---
+<p></p>
+
+<div class="summary">
+<p>Firefox OSはまだ開発中であり、新しいハードウェアのサポートが間近に迫っていることを考えれば、テストの仕方を知ることは今後重要になると言えます。<span class="seoSummary">このページは複数の違うテストの実行、自動化、そして結果のレポートとトラッキングを含む、Firefox OSのテストの多角的な側面に関する情報の記事を提供しています。</span></p>
+</div>
+
+<h2 id="導入">導入</h2>
+
+<dl>
+ <dt><a href="/Firefox_OS/Running_Tests_on_Firefox_OS_for_Developers">Firefox OS上でテストを実行する: 開発者向けガイド</a></dt>
+ <dd>まずは、開発者に注目したテスト実行の導入ガイドです。もしあなたがMozillaのテスト実行と自動化システムを経験していないならまず読んでください。すでにテストを経験しているなら、おそらく実行したいテストと方法のアイデアにあわせて、以下のより特化した詳細なガイドにスキップできます。</dd>
+</dl>
+
+<h2 id="Gaiaのテスト">Gaiaのテスト</h2>
+
+<p>これらの記事はGaiaの性能を試す試験を受けさせるように設計された主なテストスイートをカバーします。</p>
+
+<dl>
+ <dt><a href="/Firefox_OS/Platform/Automated_testing/gaia-ui-tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/gaia-ui-tests">Gaia UIテスト</a></dt>
+ <dd>Gaia UIの相互作用と機能のPython製テスト。</dd>
+ <dt><a href="/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Gaia_integration_tests">Gaia総合テスト</a></dt>
+ <dd>JavaScriptによるMarionetteベースのGaia総合テスト。</dd>
+ <dt><a href="/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Gaia_unit_tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests">Gaiaユニットテスト</a></dt>
+ <dd>GaiaのUI相互作用を伴わないユニットテスト; Marionetteベースではないが、JavaScriptで書かれています。</dd>
+ <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Automated_testing/Raptor">Raptor: Performance Tools for Gaia</a></dt>
+ <dd>Raptor はFirefox OSに特化したパフォーマンス測定ツールで、既存のパフォーマンステストツールを改良するのを狙っています。</dd>
+ <dt><a href="https://wiki.mozilla.org/Project_Eideticker" title="https://github.com/mozilla/eideticker">Eideticker</a></dt>
+ <dd>ビデオキャプチャベースでFirefox OSにパフォーマンス計測を提供します。</dd>
+</dl>
+
+<p><strong><a href="/docs/Mozilla/Firefox_OS/Platform/Automated_testing/MTBF_tests">MTBFテスト</a></strong></p>
+
+<dl>
+ <dd>MTBFテストは再開しないgaia-ui-testベースのテストフレームワークです。MTBFテストは長時間テストを妨げる種類の問題の特定を試します。(現在はまだ発展途上のテストフレームワークであり、台湾QAチームが所有しています)</dd>
+</dl>
+
+<h2 id="B2Gのテスト">B2Gのテスト</h2>
+
+<p>以下のガイドはB2Gの機能性の様々な側面をテストする異なる数のテストハーネスをカバーします。</p>
+
+<dl>
+ <dt><a href="/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Mochitests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Mochitests">Mochitests</a></dt>
+ <dd>Geckoの機能とAPIのテスト; HTML &amp; JSベース。Gaiaと相互作用しません。</dd>
+ <dt><a href="/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Reftests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Reftests">Reftests</a></dt>
+ <dd>Geckoのレンダリング正確性テスト。</dd>
+ <dt><a href="/docs/Mozilla/QA/Marionette/Marionette_JavaScript_Tests" title="/ja/docs/Mozilla/QA/Marionette/Marionette_JavaScript_Tests">WebAPIのテスト</a></dt>
+ <dd>GeckoのJSベースのWebAPIテスト; ほとんどにエミュレータが必要になります。</dd>
+ <dt><a href="/Firefox_OS/Platform/Testing/XPCShell" title="/ja/Firefox_OS/Platform/Testing/XPCShell">xpcshellのテスト</a></dt>
+ <dd>GeckoのXPCOM APIsのヘッドレステスト。</dd>
+ <dt><a href="/Firefox_OS/Automated_testing/Cppunit" title="/en-US/docs/Mozilla/Firefox_OS/Automated_testing/Cppunit">cppunit tests</a></dt>
+ <dd>C++ 単体のヘッドレステスト。</dd>
+</dl>
+
+<h2 id="解説ドキュメント">解説ドキュメント</h2>
+
+<p>このセクションはMozillaのテストについて詳細な情報を探すなら、テストに根拠を与えるいくつかの技術解説へのリンクを提供します。</p>
+
+<dl>
+ <dt><a href="/docs/Mozilla/QA/Marionette" title="/ja/docs/Mozilla/QA/Marionette">Marionette</a></dt>
+ <dd>Selenium WebDriverベースのリモートテストドライバ。</dd>
+ <dt><a href="/docs/Marionette/Marionette_JavaScript_Tools" title="/en-US/docs/Marionette/Marionette_JavaScript_Tools">Marionette JavaScript tests</a></dt>
+ <dd>node.jsベースのMarionetteテストランナー。</dd>
+ <dt><a href="/docs/Marionette/Python_Marionette" title="/en-US/docs/Marionette/Python_Marionette">Marionette Python client</a></dt>
+ <dd>Python版Marionetteテストランナー。</dd>
+ <dt><a href="https://wiki.mozilla.org/Build:TryServer">Try server</a></dt>
+ <dd>Mozilla's standard server for testing patches before checking them into the core repository. See also the <a href="http://trychooser.pub.build.mozilla.org/">TryChooser Syntax Builder</a>.</dd>
+</dl>
+
+<div class="note">
+<p><strong>注意</strong>: もし製品版ビルドに対してMarionetteを実行したいなら (gaia総合テスト、gaia-ui-tests、等の実行)、<a href="https://github.com/mozilla-b2g/marionette-extension">拡張機能としてMarionetteをインストール</a>することができます (今は1.3ビルドのみ動きますが、他のサポートもすぐに追加されます)</p>
+</div>
+
+<h2 id="継続的インテグレーションと結果報告">継続的インテグレーションと結果報告</h2>
+
+<p>以下の記事はMozillaがテストデータの保存と解釈するのに使用する継続的インテグレーションと結果報告のメカニズムをカバーします。</p>
+
+<dl>
+ <dt><a href="/docs/Mozilla/Firefox_OS/Treeherder">Treeherder</a></dt>
+ <dd>Treeherderによるテストとビルドを理解することができます。</dd>
+ <dt><a href="https://raptor.mozilla.org/">Raptor</a></dt>
+ <dd>Visualization of performance tests run against the <a href="https://developer.mozilla.org/en-US/Firefox_OS/Automated_testing/Raptor">Raptor</a> tool.</dd>
+ <dt><a href="/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Test_Execution_Chart" title="/en-US/docs/Mozilla/Firefox_OS/Testing/Test_Execution_Chart">Test execution chart</a></dt>
+ <dd>テストが実行開始しているか、どのデバイス上でまたはどこでテストしているか、そして各テストがどのパフォーマンスをサポートしているかのチャートを見ることができます。</dd>
+</dl>
+
+<h2 class="Community" name="Community" id="Community">ユニットテストフレームワークのビデオ</h2>
+
+<p></p><div class="intrinsic-wrapper"><div class="intrinsic-container "><iframe src="https://www.youtube.com/embed/LxnRIm0wLLo?rel=0&amp;html5=1"></iframe></div></div><p></p>
diff --git a/files/ja/archive/b2g_os/automated_testing/raptor/index.html b/files/ja/archive/b2g_os/automated_testing/raptor/index.html
new file mode 100644
index 0000000000..81895511e1
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/raptor/index.html
@@ -0,0 +1,442 @@
+---
+title: 'Raptor: Gaia用パフォーマンスツール'
+slug: Archive/B2G_OS/Automated_testing/Raptor
+tags:
+ - Firefox OS
+ - Performance
+ - Raptor
+ - User Timing
+translation_of: Archive/B2G_OS/Developing_Gaia/Raptor
+---
+<div class="summary">
+<p>この記事は Raptor について説明します: これは、特に Firefox OS に関するパフォーマンス計測用のCLI(コマンドライン)ツールです。これはツールの機能の背後にある戦略を見て、ツールを始める方法を示してくれて、先進トピック、例えば自身のテストを書いたり、可視化したり、自動化したりに移動できます。</p>
+</div>
+
+<p>Raptor は、以前のツール <code>make test-perf でパフォーマンステストをする時に直面する、たくさんの落とし穴</code>を克服することを狙っています:</p>
+
+<ul>
+ <li><code>test-perf</code> ツールは、アプリが読み込みのライフサイクルでキーポイントで発行するイベントをリッスンするのに、 Marionette.js に依存していました。これは、あらゆるアプリのイベント毎にイベントリスナーをバインドするように、atomスクリプトが挿入されるのを要求します。仮想標準イベントがキャプチャされる毎に、スクリプトは変更されないといけません。これはMarionette.js 自体を使うことの上にオーバーヘッドがあり、多くのメンテナンス時間を意味します。</li>
+ <li>パフォーマンスイベントを作る API は一貫していません。標準パフォーマンスイベントを簡単にキャプチャするために、<code>test-perf</code> ではカスタムイベントを投げることで行われていました。たとえば <code>window.dispatchEvent(new CustomEvent('moz-app-visually-complete'))</code>。不幸にも、アプリが自身のパフォーマンスイベントを発行した場合、パフォーマンステストのヘルパースクリプトから、別のAPI を使わなければいけませんでした。</li>
+ <li>あらゆるアプリがパフォーマンステストのヘルパースクリプトを入れないといけません。このスクリプトは API がパフォーマンスイベントにアクセスするのに必要ではありますが、それ自身についてのオーバーヘッドとメンテも必要になります。</li>
+ <li><code>test-perf</code> ツールはコア Gaia アプリのパフォーマンスメトリクスを集めるのに適していますが、それ以外の多くを扱うように拡張するのは難しいです。ホームスクリーンや、システムや、アプリ起動以外のインタラクションを、このフレームワーク空間内でテストするのはとても難しいです。</li>
+</ul>
+
+<p>Raptor はこうした問題を解決し、より効率的で拡張性の高く、自身に多くのオーバーヘッドを加えないテストフレームワークを提供するように、設計されました。</p>
+
+<h2 id="戦略">戦略</h2>
+
+<p>この章では、Raptorの機能を実装する中で取られた戦略について述べます。.</p>
+
+<h3 id="ユーザタイミング">ユーザタイミング</h3>
+
+<p><a href="http://www.w3.org/TR/user-timing/">ユーザタイミング API</a> は、カスタムパフォーマンス指標と計測とを指し示すメカニズムとwebドキュメントを提供しています。標準化されたAPIを使うことで、パフォーマンスイベントを無視するヘルパースクリプトをアプリが同梱しないといけなくなるのを回避できます。実際に、ユーザタイミングは、全くイベントに依存していません。</p>
+
+<pre class="brush: js language-js"><code class="language-js"><span class="comment token">// Legacy performance events
+</span>window<span class="punctuation token">.</span><span class="function token">dispatchEvent<span class="punctuation token">(</span></span><span class="keyword token">new</span> <span class="class-name token">CustomEvent</span><span class="punctuation token">(</span><span class="string token">'moz-app-visually-complete'</span><span class="punctuation token">)</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+PerformanceTestingHelper<span class="punctuation token">.</span><span class="function token">dispatch<span class="punctuation token">(</span></span><span class="string token">'settings-load-start'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<pre class="brush: js language-js"><code class="language-js"><span class="comment token">// User Timing API
+</span>performance<span class="punctuation token">.</span><span class="function token">mark<span class="punctuation token">(</span></span><span class="string token">'visuallyLoaded'</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+
+performance<span class="punctuation token">.</span><span class="function token">mark<span class="punctuation token">(</span></span><span class="string token">'settingsStart'</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+performance<span class="punctuation token">.</span><span class="function token">mark<span class="punctuation token">(</span></span><span class="string token">'settingsEnd'</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+
+performance<span class="punctuation token">.</span><span class="function token">measure<span class="punctuation token">(</span></span><span class="string token">'settingsLoad'</span><span class="punctuation token">,</span> <span class="string token">'settingsStart'</span><span class="punctuation token">,</span> <span class="string token">'settingsEnd'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<h3 id="ロギング">ロギング</h3>
+
+<p>パフォーマンスに影響するのを避けるように、アプリケーションから切り離したやり方でパフォーマンスエントリを捕捉するために、我々はパフォーマンスのメタデータを端末のログストリームに出力することを選びました、すなわち <code>adb logcat</code> です。Raptor はこのストリームを消費して、メトリクスを集めるログからパフォーマンスエントリを解析します。</p>
+
+<h3 id="sect1"> </h3>
+
+<h3 id="Phases_と拡張性">Phases と拡張性</h3>
+
+<p>Raptor は "phases"という概念を導入し、これは汎用的な方法でテストの相互作用をするためのフレームワークを置くものです。現在、Raptor はコールド起動と、再起動、B2Gの再起動を、計画済みの追加フェーズでサポートしています。これらの作業は、端末をパフォーマンス測定前のあるフェーズに配置することで、実際のパフォーマンステストのロジックをより簡単にします。</p>
+
+<h3 id="端末のインタラクション">端末のインタラクション</h3>
+
+<p>Raptor works to abstract device interactions. Some of its major features are as follows:</p>
+
+<ul>
+ <li>Raptor uses the Marionette.js client for familiar device interactions using a high-level API. The same Marionette.js client used for writing integration tests can be used for trigger device actions which contain performance measurements.</li>
+ <li>For low-level interactions, Raptor relies on the low-level <a href="https://github.com/wlach/orangutan">Orangutan</a> tool for triggering touch events. This works by injecting coordinate-based touch events directly into the driver interface, e.g. <code>/dev/input/event0</code> on a Firefox OS Flame. This has the benefit of simulating the touch event through the OS very transparently. In addition, trigger touch events have a similar API for triggering, e.g. triggering a tap may look like: <code>device.input.tap(300, 400, 1)</code>, which simulates a single tap at XY coordinates (300,400).</li>
+ <li>All calls to and from the logging interface (i.e. <code>adb logcat</code>) have a consistent and managed JavaScript-based API.</li>
+ <li>Raptor also has interfaces for pushing and pulling files to/from devices.</li>
+</ul>
+
+<h2 id="さぁ始めよう">さぁ始めよう</h2>
+
+<div class="note">
+<p><strong>NOTE:</strong> While Raptor can be run on emulators, the results should not be relied on for performance comparisons. Desktop computers and their power means that they are not comparable to the performance characteristics of devices and end users, and should not be used for time-based decision making.</p>
+</div>
+
+<h3 id="前提条件">前提条件</h3>
+
+<p>You must have a copy of <a href="https://github.com/mozilla-b2g/gaia/">Gaia</a> v2.2+ available on your system, as well as Node.js v0.12+/npm v2+ installed.</p>
+
+<h3 id="Raptorのインストール">Raptorのインストール</h3>
+
+<p>Raptor は、npmからインストールできる CLI (コマンドラインインターフェイス)ツールです。こうしてインストールできます:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ npm install -g @mozilla/raptor</code></pre>
+
+<p>インストールが完了したら、コマンドラインのraptorコマンドから実行できます:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ raptor --help</code></pre>
+
+<h4 id="もう一つのインストール">もう一つのインストール</h4>
+
+<p>Inpm が<code> /usr</code> や <code>/usr/local</code> ディレクトリへのグローバルパッケージとしてインストールする方法に不満がある場合、 いくつか別のオプションがあります:</p>
+
+<ol>
+ <li>npm のデフォルトディレクトリを別のディレクトリに変更する。<a href="https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npm-s-default-directory-to-another-directory">npmの手順に従うと</a>、npmがグローバルパッケージをインストールする場所を変更できて、ひょっとするとホームフォルダの特別なディレクトリに配置できます。</li>
+ <li>Raptor をローカルディレクトリにインストールして、相対的に参照します、例えば:</li>
+</ol>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ cd ~
+$ mkdir raptor-cli &amp;&amp; cd raptor-cli
+$ npm install @mozilla/raptor
+
+<strong># Elsewhere</strong>
+$ ~/raptor-cli/node_modules/@mozilla/raptor/bin/raptor --help
+
+<strong># Symlink or add to aliases to save on verbosity</strong>
+$ cd ~
+$ ln -s ~/raptor-cli/node_modules/@mozilla/raptor/bin/raptor raptor
+
+<strong># Now you can use it elsewhere</strong>
+$ raptor --help</code></pre>
+
+<h3 id="プロファイルのインストール">プロファイルのインストール</h3>
+
+<p>In order to interact with the device in a predictable way, Raptor needs a few profile options and custom settings. The default <code>make</code> command for Raptor optimizes Gaia, disables FTU, enables User Timing to write to logcat, and resets Gaia.</p>
+
+<pre class="brush: bash language-html"><code class="language-bash"># Equivalent of:
+# PERF_LOGGING=1 DEVICE_DEBUG=1 GAIA_OPTIMIZE=1 NOFTU=1 SCREEN_TIMEOUT=0 make reset-gaia
+make raptor</code></pre>
+
+<p>If you already have a profile on your device, at a bare minimum you need the following profile options/settings set in order to use Raptor for performance testing:</p>
+
+<ul>
+ <li><code>PERF_LOGGING=1</code>, this sets <code>dom.performance.enable_user_timing_logging</code> in the profile to true.</li>
+ <li><code>NOFTU=1</code>, this disables the First-time experience, which is only needed if you are dealing with a freshly-reset Gaia.</li>
+ <li><code>SCREEN_TIMEOUT=0</code>, prevents the device from going to sleep and shutting off the screen.</li>
+ <li><code>NO_LOCKSCREEN=1</code>, removes the lock screen for easy application launching from the homescreen.</li>
+</ul>
+
+<h3 id="コマンドラインインターフェイス">コマンドラインインターフェイス</h3>
+
+<p>Raptor provides a bit of helpful information right through the command line:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ raptor --help
+
+<strong>Usage:</strong> raptor &lt;command&gt; [options]
+
+command
+ test Run a performance test by name or path location.
+ submit     Submit a Raptor metrics file to an InfluxDB database
+
+Options:
+ -v, --version outputs the raptor cli tool version
+ --config &lt;path&gt; specify additional Orangutan device configuration JSON. Environment: RAPTOR_CONFIG
+ --homescreen &lt;origin&gt;      specify the origin or gaiamobile.org prefix of an application that is the device homescreen  [verticalhome.gaiamobile.org]
+ --system &lt;origin&gt;          specify the origin or gaiamobile.org prefix of an application that is the system application  [system.gaiamobile.org]
+ --serial &lt;serial&gt; target a specific device for testing. Environment: ANDROID_SERIAL
+ --adb-host &lt;host&gt; connect to a device on a remote host. tip: use with --adb-port. Environment: ADB_HOST
+ --adb-port &lt;port&gt; set port for connecting to a device on a remote host. use with --adb-host. Environment: ADB_PORT
+ --marionette-host &lt;host&gt; <span class="blob-code-inner"><span class="pl-s">connect to marionette on a remote host. tip: use with --marionette-port. Envrionment: MARIONETTE_HOST
+ --marionette-port &lt;port&gt; set port for connecting to marionette on a remote host. tip: use with --marionette-host. Environment: MARIONETTE_PORT</span></span>
+ --forward-port &lt;port&gt;       forward an adb port to the --marionette-port.  [0]
+ --host &lt;host&gt; host for reporting metrics to InfluxDB database. Environment: RAPTOR_HOST [localhost]
+ --port &lt;port&gt; port for reporting metrics to InfluxDB database. Environment: RAPTOR_PORT [8086]
+ --username &lt;username&gt; username for reporting metrics to InfluxDB database. Environment: RAPTOR_USERNAME [root]
+ --password &lt;password&gt; password for reporting metrics to InfluxDB database. Environment: RAPTOR_PASSWORD [root]
+ --database &lt;database&gt; name of InfluxDB database for reporting metrics. Environment: RAPTOR_DATABASE
+ --protocol &lt;protocol&gt;       Protocol used to connect to InfluxDB database for reporting metrics. Environment: RAPTOR_PROTOCOL  [http]
+ --metrics &lt;path&gt;            path to store historical test metrics. Environment: RAPTOR_METRICS
+ --output &lt;mode&gt; output mode: normal or quiet. Environment: RAPTOR_OUTPUT [normal]
+ --batch &lt;count&gt;             batch database requests to &lt;count&gt; number of records  [5000]</code></pre>
+
+<p>The core command to execute is the <code>test</code> command, which also has some helpful information:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ raptor test --help
+
+Usage: raptor test &lt;nameOrPath&gt; [options]
+
+nameOrPath named test or path to a particular test to run. Named tests:
+ coldlaunch cold-launch lifecycle of an application from appLaunch to fullyLoaded
+ reboot device reboot lifecycle from device power-on until System/Homescreen fullyLoaded
+ restart-b2g restart B2G lifecycle from B2G start until System/Homescreen fullyLoaded
+
+Options:
+ ...
+ --runs &lt;runs&gt; number of times to run the test and aggregate results [1]
+ --app &lt;appOrigin&gt; specify the origin or gaiamobile.org prefix of an application to test
+ --entry-point &lt;entryPoint&gt; specify an application entry point other than the default
+ --timeout &lt;milliseconds&gt; time to wait between runs for success to occur [60000]
+ --retries &lt;times&gt; times to retry test or run if failure or timeout occurs [1]
+ --launch-delay &lt;milliseconds&gt; time to wait between subsequent application launches [10000]
+ --memory-delay &lt;milliseconds&gt; time to wait before capturing memory after application fully loaded [0]
+ --script-timeout &lt;milliseconds&gt; time to wait when running scripts via marionette  [10000]
+   --connection-timeout &lt;milliseconds&gt;   marionette driver tcp connection timeout  [2000]
+   --logcat &lt;path&gt;                       write the output from `adb logcat` to a file
+ --time &lt;epochMilliseconds&gt; override the start time and unique identifier for test runs</code></pre>
+
+<p>This should give us enough information to run our first performance test.</p>
+
+<h3 id="Running_a_performance_test">Running a performance test</h3>
+
+<p>Running a performance test consists of a few parts:</p>
+
+<ul>
+ <li>The raptor CLI command</li>
+ <li>A test to run, whether a named test or a path to a test</li>
+ <li>Any relevant test settings</li>
+</ul>
+
+<p>For the most basic test, we can do a cold launch test against an application with a command like this:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ raptor test coldlaunch --app clock
+
+[Cold Launch: clock.gaiamobile.org] Preparing to start testing...
+[Cold Launch: clock.gaiamobile.org] Priming application
+[Cold Launch: clock.gaiamobile.org] Starting run 1
+[Cold Launch: clock.gaiamobile.org] Run 1 complete
+[Cold Launch: clock.gaiamobile.org] Results from clock.gaiamobile.org
+
+| Metric | Mean | Median | Min | Max | StdDev | p95 |
+| --------------------- | ------ | ------ | ------ | ------ | ------ | ------ |
+| navigationLoaded | 939 | 939 | 939 | 939 | 0 | 939 |
+| navigationInteractive | 1014 | 1014 | 1014 | 1014 | 0 | 1014 |
+| visuallyLoaded | 1247 | 1247 | 1247 | 1247 | 0 | 1247 |
+| contentInteractive | 1249 | 1249 | 1249 | 1249 | 0 | 1249 |
+| fullyLoaded | 1250 | 1250 | 1250 | 1250 | 0 | 1250 |
+| uss | 14.836 | 14.836 | 14.836 | 14.836 | 0 | 14.836 |
+| pss | 19.137 | 19.137 | 19.137 | 19.137 | 0 | 19.137 |
+| rss | 31.191 | 31.191 | 31.191 | 31.191 | 0 | 31.191 |
+
+[Cold Launch: clock.gaiamobile.org] Testing complete</code></pre>
+
+<p>During the cold launch test, you'll see B2G restart; the stated application will then launch once to prime it, and a second time to measure its performance. Looking at the log output above, you can see when each application run starts and stops. When a particular application has completed its testing, you will be given a table of metrics and testing will continue, if applicable. In the metrics table you'll see statistics for each performance entry captured during the lifespan of the test: mean (average), median, minimum value, maximum value, standard deviation, and 95th percentile.</p>
+
+<div class="note">
+<p><strong>Note</strong>: One fun fact is that the table produced by Raptor is compatible with GitHub-flavored Markdown.</p>
+</div>
+
+<div class="note">
+<p><strong>Note:</strong> Standard deviation and 95th percentile need a collection of runs before they output statistically-useful data.</p>
+</div>
+
+<p>All metrics relate to the name of the performance entry. The numbers gathered here are not just aggregations of the values produced by User Timing entries, so it's important to understand how these numbers are derived.</p>
+
+<h3 id="メトリクス集約">メトリクス集約</h3>
+
+<p>While Raptor relies on the User Timing API to gather its metrics, it also makes some assumptions about measurements that are different to what's expected in the context of normal web pages. In a typical web page, a performance marker represents the High-Resolution time from the moment of <code>navigationStart</code>. The User Timing API still captures this data, but Raptor's calculations also include additional time depending on the type of test running. Let's compare the creation of a performance marker in the context of a typical web page versus a Firefox OS application being cold launched.</p>
+
+<h4 id="典型的なwebページ">典型的なwebページ</h4>
+
+<p>In any web page, Firefox OS application or not, creating a performance marker with the User Timing API is simple:</p>
+
+<pre class="brush: js language-js"><code class="language-js">performance<span class="punctuation token">.</span><span class="function token">mark<span class="punctuation token">(</span></span><span class="string token">'hello'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<div style="top: 0px;" class="line-number"> </div>
+
+<p>Now let's get the value back and inspect its contents:</p>
+
+<pre class="brush: js language-js"><code class="language-js">performance<span class="punctuation token">.</span><span class="function token">getEntriesByType<span class="punctuation token">(</span></span><span class="string token">'mark'</span><span class="punctuation token">)</span><span class="punctuation token">[</span><span class="number token">0</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
+<span class="comment token">
+// returns the following object
+</span>PerformanceMark <span class="punctuation token">{</span> name<span class="punctuation token">:</span> <span class="string token">"hello"</span><span class="punctuation token">,</span> entryType<span class="punctuation token">:</span> <span class="string token">"mark"</span><span class="punctuation token">,</span> startTime<span class="punctuation token">:</span> <span class="number token">5159.366323</span><span class="punctuation token">,</span> duration<span class="punctuation token">:</span> <span class="number token">0</span> <span class="punctuation token">}</span></code></pre>
+
+<div style="top: 0px;" class="line-number"> </div>
+
+<div style="top: 19px;" class="line-number"> </div>
+
+<div style="top: 38px;" class="line-number"> </div>
+
+<div style="top: 57px;" class="line-number"> </div>
+
+<p>Note the mark's <code>startTime</code> and <code>duration</code>. The <code>startTime</code> is nothing more than the high-resolution time elapsed since the time of <code>performance.timing.navigationStart</code>; in this case a little over 5,000 milliseconds. The duration is 0 because this represents a single point in time, which has no duration. The <code>startTime</code> simply states at what moment the marker was created. Inspecting the output of a performance marker is no different in Firefox OS.</p>
+
+<p>A performance measure on the other hand <em>does</em> include a duration, because it is the delta between two performance markers:</p>
+
+<pre class="brush: js language-js"><code class="language-js">performance<span class="punctuation token">.</span><span class="function token">mark<span class="punctuation token">(</span></span><span class="string token">'hello'</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+performance<span class="punctuation token">.</span><span class="function token">mark<span class="punctuation token">(</span></span><span class="string token">'goodbye'</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+
+performance<span class="punctuation token">.</span><span class="function token">measure<span class="punctuation token">(</span></span><span class="string token">'greeting'</span><span class="punctuation token">,</span> <span class="string token">'hello'</span><span class="punctuation token">,</span> <span class="string token">'goodbye'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<div style="top: 57px;" class="line-number">Again, let's inspect the performance entry:</div>
+
+<pre class="brush: js language-js"><code class="language-js">performance<span class="punctuation token">.</span><span class="function token">getEntriesByType<span class="punctuation token">(</span></span><span class="string token">'measure'</span><span class="punctuation token">)</span><span class="punctuation token">[</span><span class="number token">0</span><span class="punctuation token">]</span><span class="punctuation token">;</span>
+<span class="comment token">
+// returns the following object
+</span>PerformanceMeasure <span class="punctuation token">{</span> name<span class="punctuation token">:</span> <span class="string token">"greeting"</span><span class="punctuation token">,</span> entryType<span class="punctuation token">:</span> <span class="string token">"measure"</span><span class="punctuation token">,</span> startTime<span class="punctuation token">:</span> <span class="number token">3528.523661</span><span class="punctuation token">,</span> duration<span class="punctuation token">:</span> <span class="number token">4183.291375999805</span> <span class="punctuation token">}</span></code></pre>
+
+<div style="top: 57px;" class="line-number">The duration is populated for performance measures, and in this example it took approximately 4.2 seconds to perform a <code>greeting</code>; going from <code>hello</code> to <code>goodbye</code>.</div>
+
+<h4 id="Raptor_コンテキスト">Raptor コンテキスト</h4>
+
+<p>The difference comes in the calculations that Raptor will report. Raptor makes an assumption that all markers generated are actually performance <em><strong>measures</strong></em> in reality, with their duration measured as the time between the application being instructed to launch and the marker being generated. For cold launch, the homescreen application (<code>gaia_grid</code> specifically) creates a special performance marker when an application is launching:</p>
+
+<pre class="brush: js language-js"><code class="language-js">performance<span class="punctuation token">.</span><span class="function token">mark<span class="punctuation token">(</span></span><span class="string token">'appLaunch@'</span> <span class="operator token">+</span> appOrigin<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<div style="top: 0px;" class="line-number">In Raptor, performance markers can be given an <code>@-directive</code> that overrides the context of the marker. If the homescreen instead had invoked <code>performance.mark('appLaunch')</code>, normally we'd assume it is in the application's context. With an <code>@-directive</code> however we can key the performance marker to be against a different application, in essense creating a performance marker for one application inside another. This would evaluate to something like:</div>
+
+<pre class="brush: js language-js"><code class="language-js">performance<span class="punctuation token">.</span><span class="function token">mark<span class="punctuation token">(</span></span><span class="string token">'appLaunch@clock.gaiamobile.org'</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<div style="top: 0px;" class="line-number">In this case the homescreen is generating a performance marker for the clock application denoting the time of <code>appLaunch</code>. Raptor will then calculate a delta between <code>appLaunch</code> and all performance markers to achieve a more accurate <em>user-perceived</em> time for a marker to be hit. By moving the moment of capture to earlier in the loading process, specifically as close to icon touch as possible, it makes the data between Raptor and camera-based measurements much more comparable.</div>
+
+<h3 id="テストを選択する">テストを選択する</h3>
+
+<p>Tests are selected by changing the name or file that Node.js executes. For example, to run the device reboot performance test instead of a cold launch test you'd do the following:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ raptor test reboot</code></pre>
+
+<p>More examples:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash"><strong># Test Dialer cold launch</strong>
+$ raptor test coldlaunch --app communications --entry-point dialer
+
+<strong># Change the number of runs</strong>
+$ raptor test coldlaunch --app clock --runs 10
+
+<strong># Introduce a 1-second delay before capturing memory</strong>
+$ raptor test reboot --memory-delay 1000
+
+<strong># Target a particular device</strong>
+$ raptor test reboot --serial f30eccef
+$ ANDROID_SERIAL=f30eccef raptor test reboot
+
+<strong># Turn on Raptor debug output, useful for bugs or problems
+</strong>$ DEBUG=raptor:* raptor test reboot
+
+<strong># JSON mode, useful for post-processing of aggregate values</strong>
+$ raptor test coldlaunch --app clock --output json
+
+<strong># Quiet mode, useful if you only care about the results</strong>
+$ raptor test coldlaunch --app clock --output quiet</code></pre>
+
+<h2 id="テストを書く">テストを書く</h2>
+
+<p>While Raptor currently contains a few tests for running cold launch tests, rebooting, and restarting B2G, it is possible to write tests that run custom logic.</p>
+
+<p>We can inspect the contents of the current launch test to glean how we can write new tests.</p>
+
+<pre class="brush: js language-js"><code class="language-js"><span class="comment token">// mozilla-b2g/raptor
+</span><span class="comment token">// tests/coldlaunch.js
+</span>
+<span class="function token">setup<span class="punctuation token">(</span></span><span class="keyword token">function</span><span class="punctuation token">(</span>options<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ options<span class="punctuation token">.</span>test <span class="operator token">=</span> <span class="string token">'cold-launch'</span><span class="punctuation token">;</span>
+ options<span class="punctuation token">.</span>phase <span class="operator token">=</span> <span class="string token">'cold-launch'</span><span class="punctuation token">;</span>
+<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+
+<span class="function token">afterEach<span class="punctuation token">(</span></span><span class="keyword token">function</span><span class="punctuation token">(</span>phase<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="keyword token">return</span> phase<span class="punctuation token">.</span><span class="function token">closeApp<span class="punctuation token">(</span></span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<div style="top: 190px;" class="line-number">First comes setting up the test. In <code>setup</code>, pass a function to be executed, which will configure the test. This function will be passed all the current configuration settings. At a minimum, you will need the set the phase of the test, which determines the state the device is in when the test begins. Depending on which phase you select when setting options, you may need to pass additional information. For the launch test example, using the <code>cold</code> phase requires an application to be specified. This can either be set on the command line, or you can hard-code it via the <code>app</code> option to force the test to be specific to a certain app.</div>
+
+<div class="note">
+<p><strong>Note:</strong> If you hard-code the application to be launched, make you specify the origin host completely, e.g. "clock.gaiamobile.org". For entry-point-based apps, specify the <code>app</code> option and the <code>entryPoint</code> option.</p>
+</div>
+
+<div class="warning">
+<p><strong>Important</strong>: Any test harness functions doing asynchronous work should return a Promise so Raptor can properly wait.</p>
+</div>
+
+<p>The <code>afterEach()</code> function will be called once for each run after the phase has been started. For cold launch, it is after an application in context has been primed, exited, and re-opened, and the application denotes it is ready — i.e. <code>performance.mark('fullyLoaded')</code>. For reboot and B2G restart, the phase will be designated as ready when the System application and the Homescreen application are marked as fully loaded.</p>
+
+<p>The <code>phase</code> argument passed to <code>afterEach()</code> represents the current context instance of the phase test runner; in other words, it is specific to the current test being run. It contains methods and functionality that help you trigger device actions which will have profiled performance code. For example, you can start a Marionette.js session and trigger commands:</p>
+
+<pre class="brush: js language-js"><code class="language-js"><span class="function token">setup<span class="punctuation token">(</span></span><span class="keyword token">function</span><span class="punctuation token">(</span>options<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ options<span class="punctuation token">.</span>phase <span class="operator token">=</span> <span class="string token">'cold'</span><span class="punctuation token">;</span>
+<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+
+<span class="function token">afterEach<span class="punctuation token">(</span></span><span class="keyword token">function</span><span class="punctuation token">(</span>phase<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="comment token"> // Note that returning a Promise denotes that we are done running the test
+</span> <span class="keyword token">return</span> phase<span class="punctuation token">.</span>device<span class="punctuation token">.</span>marionette
+ <span class="punctuation token">.</span><span class="function token">startSession<span class="punctuation token">(</span></span><span class="punctuation token">)</span>
+ <span class="punctuation token">.</span><span class="function token">then<span class="punctuation token">(</span></span><span class="keyword token">function</span><span class="punctuation token">(</span>client<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ client<span class="punctuation token">.</span><span class="function token">executeScript<span class="punctuation token">(</span></span><span class="keyword token">function</span><span class="punctuation token">(</span><span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="comment token"> // trigger code that captures the performance.measures created
+</span> <span class="comment token"> // by the application being tested
+</span> <span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+ client<span class="punctuation token">.</span><span class="function token">deleteSession<span class="punctuation token">(</span></span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+ <span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<div style="top: 285px;" class="line-number">The runner can also run a <code>teardown()</code> function when all tests are complete.</div>
+
+<pre class="brush: js language-js"><code class="language-js"><span class="function token">teardown<span class="punctuation token">(</span></span><span class="keyword token">function</span><span class="punctuation token">(</span>phase<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="keyword token">return</span> <span class="keyword token">new</span> <span class="class-name token">Promise</span><span class="punctuation token">(</span><span class="keyword token">function</span><span class="punctuation token">(</span>resolve<span class="punctuation token">)</span> <span class="punctuation token">{</span>
+ <span class="comment token"> // teardown the test, then resolve
+</span> <span class="function token">resolve<span class="punctuation token">(</span></span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+ <span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span>
+<span class="punctuation token">}</span><span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
+
+<div style="top: 95px;" class="line-number">The Raptor Phase API has not yet been documented, so currently you'll need to <a href="https://github.com/mozilla-b2g/raptor/tree/master">read the source</a> for all the functionality available to you. It may be faster to <a href="https://developer.mozilla.org/ja/Firefox_OS/Platform/Testing/Raptor$edit#Support">seek help from a contributor</a> for help on getting started writing a particular test.</div>
+
+<h2 id="可視化と自動化">可視化と自動化</h2>
+
+<p>Raptor has improved tooling available for automation and visualization. The <code>test-perf</code> tool used to use the <a href="https://datazilla.mozilla.org/b2g/">Datazilla</a> tool for graphing and visualizing results to gain insight into possible regressions and performance pulse of applications. Raptor has moved away from Datazilla however for its visualization capabilities — for maintenance and usability reasons — instead having its own UI at <a href="https://raptor.mozilla.org/">https://raptor.mozilla.org</a>. The Raptor dashboards currently categorize performance metrics in a few key categories per device instance — measures and memory — with more metrics planned in the future.</p>
+
+<p>Raptor's front-end uses the <a href="http://grafana.org/">Grafana</a> visualization tool, and its backing store is <a href="http://influxdb.com/">InfluxDB</a>, a time series database. Grafana provides Raptor UI users with the ability to carry out custom drill-downs into charts, slice time as desired, view data point revisions, and build custom charts and data queries. The default view of several charts displays the 95th percentile of many metrics, but charts can be user-edited to graph other mathematical functions.</p>
+
+<p>This guide is not meant to be a tutorial on the usage of Grafana and InfluxDB, so to learn more about taking full advantage of the Raptor UI, read through these important pieces of documentation:</p>
+
+<ul>
+ <li><a href="http://docs.grafana.org/guides/gettingstarted/">Getting started with Grafana</a></li>
+ <li><a href="https://influxdb.com/docs/v0.9/query_language/functions.html">InfluxDB Aggregate Functions</a></li>
+</ul>
+
+<h2 id="プライベートな可視化">プライベートな可視化</h2>
+
+<p>The Raptor dashboard visualization discussed in the previous section can also be installed and used privately. The installation is a Heroku-deployable environment for easy setup. It is also possible to run the Heroku application locally if you use Linux.</p>
+
+<p>To get started with private visualization, or want to learn more about its innards, see the repository: <a href="https://github.com/mozilla-b2g/raptor-dashboards">https://github.com/mozilla-b2g/raptor-dashboards</a>.</p>
+
+<p>You will also need an installation of InfluxDB 0.9.3+. You can learn more about installing it at: <a href="https://influxdb.com/docs/v0.9/introduction/installation.html">https://influxdb.com/docs/v0.9/introduction/installation.html</a>. Those who are familiar with Docker can also install InfluxDB from Docker Hub: <a href="https://hub.docker.com/r/tutum/influxdb/">https://hub.docker.com/r/tutum/influxdb/</a>.</p>
+
+<p>Raptor needs CLI options or environment variables for creating a connection to an InfluxDB database. It would be tedious to specify these continually on the command line, so to simplify this, you can export these environment variables from your shell, e.g. <code>~/.bashrc</code>, <code>~/.zshrc</code>, etc.</p>
+
+<pre class="brush: bash language-html"><code class="language-bash"># These settings will point to the installation and credentials of your InfluxDB instance:
+export RAPTOR_HOST=localhost
+export RAPTOR_USERNAME=root
+export RAPTOR_PASSWORD=root
+export RAPTOR_DATABASE=raptor
+export RAPTOR_PROTOCOL=https
+export RAPTOR_PORT=8086</code></pre>
+
+<p>In addition, Raptor's database schema requires its results to be tagged properly in order to display it in correct categories in its dashboard UI. Failure to have these properties set when running performance tests will cause the data to not be displayed. By default, you need to persist the memory configuration of the device, the device type, and the branch the performance test is based on. For example, if you are performance testing a KitKat-based Flame set to 319MB of memory and your patch is based off of Gaia's master branch, you will set the following properties via ADB:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ adb shell setprop persist.raptor.device flame-kk
+$ adb shell setprop persist.raptor.memory 319
+$ adb shell setprop persist.raptor.branch master</code></pre>
+
+<div class="note">
+<p><strong>Note:</strong> If you are having trouble with the values being persisted or not saving at all, restart ADB as root with <code>adb root</code>.</p>
+</div>
+
+<p>If you were working on a branch that was based off of v2.5 on an Aries with 2 Gigabytes of memory, you would use the following properties:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ adb shell setprop persist.raptor.device aries
+$ adb shell setprop persist.raptor.memory 2048
+$ adb shell setprop persist.raptor.branch v2.5</code></pre>
+
+<div class="warning">
+<p><strong>Important</strong>: Currently visualization is highly-dependent on the existence of these persisted properties. They are only necessary when using the local visualization tooling; if you flash your device or otherwise unset these properties, you will need to re-set them in order to visualize performance metrics.</p>
+</div>
+
+<p>Other than setting up the environment and device tags, Raptor can be run as normal locally. Upon each successful run, Raptor will report its metrics to the database. Once the test is complete, you can open a browser to your private visualization instance and view your own custom performance data.</p>
+
+<h2 id="必要に応じて動的にパフォーマンスマークを加える">必要に応じて動的にパフォーマンスマークを加える</h2>
+
+<p>One issue with Raptor is that since the tests require us to add performance marks into code, the Gaia codebase could quickly become littered with <code>Performance.mark()</code> calls without any meaningful relationship between them, making the code clutted and harder to understand. The best way to deal with this is to collect all the marks into some kind of patching files, and apply them dynamically as required when we want to run specific Raptor tests.</p>
+
+<p>To this end, Greg Weng has created a code transformer tool that will do just what is described above. The tool is currently a work in progress, but you can find more about it (including how to get it running) at this newsgroup entry: <a href="https://groups.google.com/forum/#%21topic/mozilla.dev.gaia/vBRUjSRLG6g">Raptor: code transformer + marionette workflow now is almost ready</a>. See also <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1181069" title="FIXED: [Build][Raptor] Add a code transformer tool to support dynamically adding marks to help to test app performance">バグ 1181069</a> for implementation specifics.</p>
+
+<p>We will publish more formal instructions once the tool has stabilised.</p>
+
+<h2 id="サポート">サポート</h2>
+
+<p>If you have questions about Raptor, visualization, or performance tooling in general, feel free to ping <code>:Eli</code> or <code>:rwood</code> in the #raptor channel on <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>.</p>
diff --git a/files/ja/archive/b2g_os/automated_testing/setting_up_marionette/index.html b/files/ja/archive/b2g_os/automated_testing/setting_up_marionette/index.html
new file mode 100644
index 0000000000..3076dde353
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/setting_up_marionette/index.html
@@ -0,0 +1,48 @@
+---
+title: Firefox OSのMarionetteの設定
+slug: Archive/B2G_OS/Automated_testing/Setting_up_Marionette
+translation_of: 'https://marionette-client.readthedocs.io/en/latest/'
+---
+<h2 id="Building_Firefox_OS_with_Marionette_enabled">Building Firefox OS with Marionette enabled</h2>
+<p>Marionette's server component is part of gecko, and is compiled into a B2G build when ENABLE_MARIONETTE=1 is present in your mozconfig.</p>
+<p><strong>For device builds</strong> (including the emulator), Marionette is enabled by default in all VARIANT=eng (engineering) builds. This is the default type of build created if you use ./config.sh &lt;config&gt;, ./build.sh. Marionette is not included in VARIANT=user builds, which is the type of build QA normally uses for testing.</p>
+<p><strong>For B2G desktop builds</strong>, you'll need to add the line ENABLE_MARIONETTE=1 to your mozconfig before building.</p>
+<h2 id="Setting_up_the_Marionette_client">Setting up the Marionette client</h2>
+<p>The Marionette client is a Python package with which you can run Marionette tests. You'll need to set this up on your machine before using it.</p>
+<p>To do so, you can either install it from pypi:</p>
+<pre>$ pip install marionette_client</pre>
+<p>Or from a gecko build tree:</p>
+<pre>$ cd $GECKO_DIR/testing/marionette/client
+
+$ python setup.py develop</pre>
+<p>You can perform these steps inside a virtualenv if you wish.</p>
+<p>To verify Marionette is installed:</p>
+<pre><code>$ python</code>
+
+<code>&gt;&gt;&gt; from marionette import Marionette</code></pre>
+<h2 id="Verifying_Marionette_is_running">Verifying Marionette is running</h2>
+<h4 id="On_a_device">On a device</h4>
+<p>Please make sure the [Settings &gt; Device Information &gt; More Information &gt;  Developer &gt; Remote debugging] is OFF.</p>
+<p>Connect your device to your computer and verify it appears in adb devices, then set up adb port forwarding to Marionette's port:</p>
+<pre>$ adb devices
+List of devices attached
+full_unagi device
+
+$ adb forward tcp:2828 tcp:2828
+
+$ telnet localhost 2828
+Trying 127.0.0.1...
+Connected to localhost.
+Escape character is '^]'.
+66:{
+ "from": "root",
+ "applicationType", "gecko",
+ "traits": []
+}</pre>
+<p>If you see the above output, Marionette is running on your device.</p>
+<h4 id="On_an_emulator">On an emulator</h4>
+<p>Launch the emulator using the <code>./run-emulator.sh</code> script, then follow the above steps.</p>
+<h4 id="On_a_B2G_desktop_build">On a B2G desktop build</h4>
+<p>For desktop B2G builds, you need to add an additional pref in order for Marionette to successfully run:  <code>marionette.force-local = true</code>.  You can add this pref in gaia/profile/user.js as user_pref("marionette.force-local", true), then re-build your gaia profile before starting the B2G desktop build.</p>
+<p>When using a B2G desktop build, you don't need to use adb port forwarding. After launching the build, telnetting to localhost 2828 should result in the same output shown above.</p>
+<p> </p>
diff --git a/files/ja/archive/b2g_os/automated_testing/xpcshell/index.html b/files/ja/archive/b2g_os/automated_testing/xpcshell/index.html
new file mode 100644
index 0000000000..3138b3394e
--- /dev/null
+++ b/files/ja/archive/b2g_os/automated_testing/xpcshell/index.html
@@ -0,0 +1,46 @@
+---
+title: XPCShell
+slug: Archive/B2G_OS/Automated_testing/XPCShell
+translation_of: Archive/B2G_OS/Automated_testing/XPCShell
+---
+<div class="summary">
+ <p><span class="seoSummary"><a href="/en-US/docs/Writing_xpcshell-based_unit_tests" title="/en-US/docs/Writing_xpcshell-based_unit_tests">XPCShellのテスト</a>はGecko XPCOM APIのヘッドレステストです。あなたはB2G上でXPCShellのテストを実行することができます; この記事の中でどのように実行するか書かれています。現在、これらは主にエミュレータ上でテストされており、しかしデバイス上でもうまく実行される理屈です。</span></p>
+</div>
+<div class="note">
+ <p><strong>注意</strong>: この記事の<code>$B2G_HOME</code>はクローンしたB2Gリポジトリを指します。</p>
+</div>
+<h2 id="必須要件">必須要件</h2>
+<ul>
+ <li>テスト対象をテストするためにB2Gをビルドする必要があります (参照: <a href="/ja/Firefox_OS/Building_and_installing_Firefox_OS" title="/ja/Firefox_OS/Building_and_installing_Firefox_OS">Firefox OS のビルドとインストール</a>)</li>
+ <li>いくつかのPythonパッケージ、virtualenvかそれ以外をインストールする必要があります:
+ <pre>pip install marionette_client</pre>
+ </li>
+ <li>requirements.txtファイルもまた利便性のために取り込むべきです:
+ <pre>wget people.mozilla.com/~ahalberstadt/runxpcshell-requirements.txt
+pip install -r runxpcshell-requirements.txt
+</pre>
+ </li>
+ <li><code>adb</code>をパスの通った場所に置くか<code>--adbpath</code>で指定 (Linux上では<code>$B2G_HOME/out/host/linux-x86/bin/adb</code>で見つかるでしょう) されているか確認します</li>
+ <li><a href="http://busybox.net/downloads/binaries/latest/busybox-armv6l">Busybox</a>のローカルコピーを持っていること (これは厳密には必要ではないがセットアップ時の要求を軽減する)</li>
+</ul>
+<h2 id="テストを実行する">テストを実行する</h2>
+<p>以下のターミナルコマンドの中から一つを使ってxpcshellテストを実行することができます:</p>
+<p>emulatorを使う場合:</p>
+<pre>cd $B2G_HOME/objdir-gecko
+make package-tests
+cd dist/test-package-stage/xpcshell
+python runtestsb2g.py --b2gpath $B2G_HOME --adbpath $ADB_PATH --emulator arm --use-device-libs --manifest &lt;<a href="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Writing_xpcshell-based_unit_tests#Adding_your_tests_to_the_xpcshell_manifest">path_to_xpcshell_manifest</a>&gt; --testing-modules-dir &lt;path_to_testing_modules_dir&gt; --busybox &lt;path_to_busybox_binary&gt;</pre>
+<p>実機を使う場合:</p>
+<pre>cd $B2G_HOME/objdir-gecko
+make package-tests
+cd dist/test-package-stage/xpcshell
+python runtestsb2g.py --b2gpath $B2G_HOME --adbpath $ADB_PATH --use-device-libs --manifest &lt;<a href="https://developer.mozilla.org/en-US/docs/Mozilla/QA/Writing_xpcshell-based_unit_tests#Adding_your_tests_to_the_xpcshell_manifest">path_to_xpcshell_manifest</a>&gt; --testing-modules-dir &lt;path_to_testing_modules_dir&gt;</pre>
+<p>通常のデスクトップ用のxpcshellテストのように<code>--total-chunks</code> and <code>--this-chunks</code>オプションを加えることもできます:</p>
+<pre>python runtestsb2g.py --help</pre>
+<p>サポートする引数をすべてリストします。</p>
+<p><code>runtestsb2g.py</code>を起動したあと、テストランナーがエミュレータを起動する (エミュレータ上でテストを実行する場合) かデバイスを再起動する (デバイス上でテストを実行する場合) でしょう、そしてテストを実行開始します。なぜならばエミュレータは遅く、テストプロファイルをプッシュし、B2Gを再起動する必要があり、テストは開始に数分かかります。</p>
+<p>テスト終了時、エミュレータはシャットダウンします。実機の場合再起動します。</p>
+<h3 id="busyboxの手動インストール">busyboxの手動インストール</h3>
+<p>デバイス上でxpcshellテストを実行するときは<code>--busybox</code>はいりません。そのようなテスト実行のセットアップはとても時間がかかります。幸いにもテストを実行する前に手動でインストールできます。手動インストールの例は<a href="https://github.com/mozilla/Negatus/blob/master/setup-tools.sh" title="https://github.com/mozilla/Negatus/blob/master/setup-tools.sh">https://github.com/mozilla/Negatus/blob/master/setup-tools.sh</a>をご覧ください。</p>
+<h2 id="エミュレータをダウンロードしてxpcshellテストの実行">エミュレータをダウンロードしてxpcshellテストの実行</h2>
+<p>もし違うコンフィグ (otoroのような) でB2Gをビルドしてエミュレータ上でテストを実行したいなら、あなた自身がエミュレータをビルドすることなくテストを実行することができます。  <code>runreftestb2g.py</code>と<code>--b2gpath /path/to/unpacked/emulator</code>の代わりに<code>--b2gpath $B2G_HOME</code>引数を置き換えた上記と同じ命令を使って、最新のtrunkのarmエミュレータをダウンロードします。</p>
diff --git a/files/ja/archive/b2g_os/b2g_build_prerequisites/index.html b/files/ja/archive/b2g_os/b2g_build_prerequisites/index.html
new file mode 100644
index 0000000000..0f8fa55d75
--- /dev/null
+++ b/files/ja/archive/b2g_os/b2g_build_prerequisites/index.html
@@ -0,0 +1,423 @@
+---
+title: B2G OS ビルドの必要条件
+slug: Archive/B2G_OS/B2G_build_prerequisites
+tags:
+ - B2G OS
+ - Build documentation
+ - Build prerequisites
+ - Mobile
+ - Mobile OS
+ - build b2g os
+ - how to build b2g os
+translation_of: Archive/B2G_OS/B2G_OS_build_prerequisites
+---
+<div class="summary">
+<p><span class="seoSummary">B2G OS のコードを入手してビルドする前には、単に Gaia をビルドしてみる場合でも、<a href="/docs/Developer_Guide/Build_Instructions" title="/ja/docs/Developer_Guide/Build_Instructions">ビルド環境</a> を適切に設定することが必要です (このページで方法を説明します)。現在、64 ビット版 Linux ディストリビューションおよび Mac OS X でビルド可能です。</span></p>
+</div>
+
+<h2 id="互換性のあるビルドターゲット">互換性のあるビルドターゲット</h2>
+
+<p>ビルドするには互換性のある端末を用意する必要があります。さもなくばエミュレータを使用してください。</p>
+
+<div class="note">
+<p><strong>記</strong>: Mozilla の <a href="https://github.com/mozilla-b2g/B2G">B2G ソースコード</a>は、事実上 B2G OS のリファレンス実装ですが、携帯電話ベンダーは、自由にパッチをあてたり変更を加えたりすることが可能です。小売端末を買った場合、これにはベンダーの構成したバージョンが含まれます。これは、インストール済みのアプリには影響はありませんが、プラットフォームレベルでは影響する可能性があります。Nexus 5 への移植は、Mozilla が直接メンテナンスしているので、他 の端末と比較して、我々の Gecko のバージョンがはるかにうまく動作するでしょう。</p>
+</div>
+
+<h3 id="エミュレータ"><a href="/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators" title="en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">エミュレータ</a></h3>
+
+<p>利用可能なエミュレータは 2 種類あります。一つは ARM コードをエミュレートし、もう一つは実行するのに x86 コードを使用します。<a href="/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators" title="/ja/docs/Mozilla/Firefox_OS/Using_the_B2G_emulators">「B2G エミュレータを使用する」で詳しく学んでください</a>。<strong>x86 エミュレータは使用すべきではありません。インストールが困難で、十分にサポートされていません。</strong></p>
+
+<h3 id="デスクトップ"><a href="/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client" title="/en-US/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client">デスクトップ</a></h3>
+
+<p>デスクトップ版の B2G OS をビルドすることもできます。このビルドは、<a href="/docs/XULRunner">XULRunner</a> アプリケーションで <a href="/docs/Mozilla/Gecko">Gecko</a> を実行し、その中で <a href="/docs/Mozilla/Boot_to_Gecko/Introduction_to_Gaia">Gaia</a> の UX を確認できます。</p>
+
+<h3 id="端末"><a href="/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/Compatible_Devices">端末</a></h3>
+
+<p>いくつかの端末が B2G OS と互換性があります。しかしいくつかはそれ以外のものよりも互換性があり、端末の特定種のみが互換性があることもあります。詳細は <a href="/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/Compatible_Devices">互換性のある端末</a> のページを確認してください。</p>
+
+<div class="warning"><strong>重要</strong>: <strong>Android 4.3</strong> 以降 (いわゆる <strong>Jelly-bean, Kitkat, Lollipop</strong>) で動作している端末のみがサポートされています。もし上のリストにあなたの端末があっても、古いバージョンの Android を実行している場合は、まず更新してください。</div>
+
+<h2 id="Requirements_for_GNULinux" name="Requirements_for_GNULinux">GNU/Linux での必要条件</h2>
+
+<p>ディストリビューションによってドキュメント変更が激しいので、右上の言語メニューから、このページの英語版ドキュメントも参照してください。</p>
+
+<p>Linux でビルドするには以下のシステム構成が必要です:</p>
+
+<ul>
+ <li><strong>64 ビット版 GNU/Linux</strong> ディストリビューション (Ubuntu 14.04 LTS 推奨)</li>
+ <li>最低 <strong>4 GB</strong> の RAM</li>
+ <li>最低 <strong>40 GB</strong> のハードディスク空き領域</li>
+</ul>
+
+<p>以下のツールもインストールしておく必要があります:</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td>
+ <ul>
+ <li><strong>autoconf 2.13</strong></li>
+ <li><strong>bison</strong></li>
+ <li><strong>bzip2</strong></li>
+ <li><strong>ccache</strong></li>
+ <li><strong>curl</strong></li>
+ <li><strong>flex</strong></li>
+ <li><strong>gawk</strong></li>
+ <li><strong>git</strong></li>
+ <li><strong>gcc</strong></li>
+ <li><strong>nodejs</strong></li>
+ <li><strong>python</strong></li>
+ </ul>
+ </td>
+ <td>
+ <ul>
+ <li><strong>g++ / g++-multilib</strong></li>
+ <li><strong>java sdk (jdk)</strong></li>
+ <li><strong>lzop</strong></li>
+ <li><strong>make</strong></li>
+ <li><strong>OpenGL shared libraries</strong></li>
+ <li><strong>patch</strong></li>
+ <li><strong>X11 headers</strong></li>
+ <li><strong>32-bit ncurses</strong></li>
+ <li><strong>32-bit zlib</strong></li>
+ <li><strong>unzip</strong></li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="Ubuntu_12.04_LTS_Debian_6_Linux_Mint_13">Ubuntu 12.04 LTS / Debian 6 / Linux Mint 13</h3>
+
+<p>ターミナルで下記のコマンドを実行してください:</p>
+
+<pre><code>sudo apt-get install autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git ia32-libs lib32ncurses5-dev lib32z1-dev libasound-dev libgconf2-dev libgl1-mesa-dev libx11-dev lzop make zip libxml2-utils nodejs unzip python</code></pre>
+
+<p><a href="http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html">このppa</a> を通じて jdk をインストールできます。</p>
+
+<h3 id="Ubuntu_14.04_LTS_Debian_7">Ubuntu 14.04 LTS / Debian 7</h3>
+
+<p>まず、必須アーキテクチャをセットするため、次のコマンドを実行します:</p>
+
+<pre><code>sudo dpkg --add-architecture i386</code>
+sudo dpkg --add-architecture amd64
+</pre>
+
+<p>ターミナルで次のコマンドを実行してください:</p>
+
+<pre><code>sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git lib32ncurses5-dev lib32z1-dev libgconf2-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip lzop libxml2-utils openjdk-7-jdk nodejs unzip python</code>
+</pre>
+
+<h3 id="Ubuntu_16.04">Ubuntu 16.04</h3>
+
+<div class="note">
+<p>2016 年 6 月に ubuntu 16.04 で、<strong>make</strong> のバージョンは <strong>4.1</strong> となって android のビルドができなくなりました。これを経験した場合、信頼できるリポジトリ (14.04) を追加し、<strong>バージョン 3.81</strong> にダウングレードして、次のコマンドを実行します:</p>
+
+<pre><code>sudo apt-get install make=3.81-8.2ubuntu3</code></pre>
+
+<p>次に自動アップグレードを避けるため、<strong>make</strong> パッケージを<em>保持する</em>ようマークします。</p>
+
+<pre><code>sudo apt-mark hold make </code></pre>
+</div>
+
+<p>まず、必須アーキテクチャをセットするため、次のコマンドを実行します:</p>
+
+<pre><code>sudo dpkg --add-architecture i386</code>
+sudo dpkg --add-architecture amd64
+</pre>
+
+<p>ターミナルで次のコマンドを実行してください:</p>
+
+<pre><code>sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git lib32ncurses5-dev lib32z1-dev libgconf2-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip lzop libxml2-utils openjdk-8-jdk nodejs unzip python</code>
+</pre>
+
+<h3 id="Ubuntu_16.10">Ubuntu 16.10</h3>
+
+<p>ubuntu 16.10 では、既定の make のバージョンは 4.1 であり、android のビルドができません。この問題を回避するには、コンソールで次のコマンドを実行します:</p>
+
+<pre>wget http://ftp.us.debian.org/debian/pool/main/m/make-dfsg/make_3.81-8.2_amd64.deb
+
+sudo dpkg -i make_3.81-8.2_amd64.deb</pre>
+
+<p>自動アップグレードを避けるため、make パッケージを保持するようにマークします:</p>
+
+<pre>sudo apt-mark hold make</pre>
+
+<p>次に、必須のアーキテクチャを追加する必要があります:</p>
+
+<pre>sudo dpkg --add-architecture i386
+
+sudo dpkg --add-architecture amd64 </pre>
+
+<p>ターミナルで次のコマンドを実行します:</p>
+
+<pre><code>sudo apt-get install --no-install-recommends autoconf2.13 bison bzip2 ccache curl flex gawk gcc g++ g++-multilib git lib32ncurses5-dev lib32z1-dev libgconf2-dev zlib1g:amd64 zlib1g-dev:amd64 zlib1g:i386 zlib1g-dev:i386 libgl1-mesa-dev libx11-dev make zip lzop libxml2-utils openjdk-8-jdk nodejs unzip python</code> </pre>
+
+<h3 id="USB_アクセスの構成">USB アクセスの構成</h3>
+
+<p>Linux システムでは通常時、通常のユーザーは USB デバイスへ直接アクセスすることが出来ません。<code>/etc/udev/rules.d/51-android.rules</code> にファイルを作成し、次のコマンドを実行してください:</p>
+
+<p><strong>TODO: Merge Bug 1230463</strong></p>
+
+<pre><code>wget -S -O - https://raw.githubusercontent.com/cm-b2g/B2G/1230463/tools/51-android.rules | sudo tee &gt;/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules
+
+<s>wget -S -O - https://raw.githubusercontent.com/mozilla-b2g/B2G/master/tools/51-android.rules | sudo tee &gt;/dev/null /etc/udev/rules.d/51-android.rules; sudo udevadm control --reload-rules</s></code></pre>
+
+<p>新しいルールは次に端末を接続した時に有効になります。</p>
+
+<h3 id="ccache_の設定">ccache の設定</h3>
+
+<p>大量のコードをビルドしますが、そのうちの大半はビルド毎に変更がありません。コンパイルツールの ccache を使うことで、コンパイルを劇的に高速化できます。次のコマンドで 50GB キャッシュを与えます:</p>
+
+<pre><code>ccache -M 50G</code></pre>
+
+<div class="note">
+<p><strong>補足</strong>: ディスク領域が限られている場合は、キャッシュを 50GB 以下に設定してください。</p>
+</div>
+
+<h3 id="その他のディストリビューション">その他のディストリビューション</h3>
+
+<h4 id="Fedora_22">Fedora 22</h4>
+
+<p>ターミナルで次のコマンドを実行してください:</p>
+
+<pre><code>sudo yum install autoconf213 bison bzip2 ccache curl flex gawk gcc-c++ git glibc-devel glibc-static libstdc++-static libX11-devel make mesa-libGL-devel ncurses-devel patch zlib-devel ncurses-devel.i686 readline-devel.i686 zlib-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686 glibc-devel.i686 libstdc++.i686 libXrandr.i686 zip perl-Digest-SHA wget lzop libxml2-utils</code></pre>
+
+<h4 id="Arch_Linux">Arch Linux</h4>
+
+<p>ターミナルで次のコマンドを実行してください:</p>
+
+<pre><code>sudo pacman -S --needed alsa-lib autoconf2.13 bison ccache curl firefox flex gcc-multilib git gperf libnotify libxt libx11 mesa multilib-devel wget wireless_tools yasm zip lib32-mesa lib32-mesa-libgl lib32-ncurses lib32-readline lib32-zlib lzop</code></pre>
+
+<p>lib32-* パッケージをインストールするには、multilib リポジトリを有効にしておく必要があります。</p>
+
+<p>初期状態で、Arch Linux は Python3 を使用するため、強制的に古い Python2 を使うようにする必要があります。python2 の実行モジュールを python にリンクすることもできますが、お勧めできませんし、過ちの元になると考えられます。これは、インストールされている python3 を破壊します。より良い方法は、次のように <code>virtualenv</code>/<code>virtualenvwrapper</code> を使うことです:</p>
+
+<pre><code><span><span>sudo pacman -S python-virtualenvwrapper
+</span></span>source /usr/bin/virtualenvwrapper.sh
+mkvirtualenv -p `which python2` firefoxos
+workon firefoxos</code>
+</pre>
+
+<p>次のコマンドで python のバージョンを確認してください:</p>
+
+<pre><code>python --version</code></pre>
+
+<p>"Python 2.7.12" 以降のバージョンが表示されます。</p>
+
+<h4 id="Gentoo_Linux">Gentoo Linux</h4>
+
+<h5 id="Installing_ccache" name="Installing_ccache">ccache のインストール</h5>
+
+<p><strong><a href="http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=2&amp;chap=3#doc_chap3">ccache</a></strong> をインストールする必要があります。これは部分的なビルドをキャッシュするツールです。</p>
+
+<pre><code><span><span># emerge -av ccache</span></span>
+</code></pre>
+
+<p>ccache はサポート問題を頻繁に起こすことが知られているので、Gentoo では、<em>明示的に</em>、<em>控えめに</em>使うのをおすすめします。</p>
+
+<p>このガイドの<em>続く手順</em>で、<code>./build.sh</code> スクリプトが呼ばれる時に ccache を使う必要があります。ここで ccache を有効にするには、Gentoo ユーザは代わりに明示的に展開されたパスでコマンドを実行してください:</p>
+
+<pre><code><strong>PATH=/usr/lib64/ccache/bin:$PATH</strong> ./build.sh
+</code></pre>
+
+<h5 id="パーティションイメージの生成">パーティションイメージの生成</h5>
+
+<p>B2G を実際の物理ハードウェア用にビルドする場合、ある時点で端末にアップロードするパーティションイメージを生成したくなるかもしれません (例えば、<strong><em>fastboot</em></strong> ユーティリティを使ってバックアップファイルを復元する時など)。</p>
+
+<p>ここでは、ファイルシステムイメージが YAFFS2 (Yet Another Filesystem 2) であるとします。 Gentoo は最新 (つまり git HEAD リビジョン) の <code>yaffs2-utils</code> ユーザーランドのパッケージをサポートします。 (注記: YAFFS2 イメージをマウントする場合、カーネルパッチも必要になります。ただし、代わりに分解してリビルドすることが可能なため、これは真に必要とは言えません。)</p>
+
+<pre><code># emerge --autounmask-write yaffs2-utils; etc-update; emerge -av yaffs2-utils</code></pre>
+
+<p>こうしたイメージを生成するには、パーティションの単にパッケージ化したいファイルシステムツリーの親ディレクトリに移動し、次のコマンドを実施してください:</p>
+
+<pre><code>mkyaffs2image system/ system.img</code></pre>
+
+<h3 id="古いブランチ">古いブランチ</h3>
+
+<p>B2G OS の古いブランチをコンパイルする必要がある場合、ビルドエラーが発生する可能性があります。<a href="/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/Build_legacy_branches">過去のブランチをビルドする</a>のページを参照してください。</p>
+
+<h2 id="Mac_OS_X_での必要条件">Mac OS X での必要条件</h2>
+
+<div class="note">
+<p><strong>注記: Mac 上で B2G を Keon 端末用に設定し、ビルドしても<u>動作しません</u>。</strong> この端末用に B2G をビルドするには Linux を使う必要があります。</p>
+</div>
+
+<div class="note">
+<p><strong>注記: Fairphone2 向けの B2G は Mac では<u>動作しません</u>。</strong>この端末向けの B2G をビルドするには Linux を使う必要があります。理由は blob が MD5 チェックに成功しないためです。詳しくは <a href="https://forum.fairphone.com/t/blobs-md5-checksum-doenst-match/18107">Fairphone のフォーラムトピック</a> を見てください。</p>
+</div>
+
+<p>Mac OS X 上で B2G OS をビルド可能ですが、簡単ではありませんし、よくサポートされてもいません。古い Xcode をインストールする必要がありますが、現行バージョンの Xcode と競合してしまうでしょう。最も良い体験を求めるなら、Ubuntu 14.0 LTS でビルドすべきですが、<em>こだわる</em>なら、下記のステップをお試しください:</p>
+
+<h3 id="OS_X_10.11_El_Capitan_OS_X_10.10_Yosemite">OS X 10.11 El Capitan &amp; OS X 10.10 Yosemite</h3>
+
+<div class="warning">
+<p><strong>重要</strong>: OS X 10.11 El Capitan でのビルドは実験的であり、完了しない可能性があります!以下の手順が改善しワーニングが無くなるまで OS X 10.10 Yosemite に留まってください。</p>
+</div>
+
+<h4 id="大文字小文字を区別するファイルシステム">大文字小文字を区別するファイルシステム</h4>
+
+<p>OS X のデフォルトインストールは、B2G OS のビルドに適しません。大文字小文字を区別するファイルシステム上で、 OS X を再インストールする必要があるでしょう。</p>
+
+<h4 id="Xcode_7.2">Xcode 7.2</h4>
+
+<ol>
+ <li>Apple ストアから、最新の Xcode をインストールします。</li>
+ <li>次のコマンドで、ライセンスに同意します:</li>
+</ol>
+
+<pre><code>sudo xcodebuild -license</code></pre>
+
+<h4 id="Xcode_Command_Line_Tools">Xcode Command Line Tools</h4>
+
+<p>次のコマンドで、Xcode Command Line Tools をインストールします:</p>
+
+<pre><code>xcode-select --install</code></pre>
+
+<h4 id="Xcode_5.1.1">Xcode 5.1.1</h4>
+
+<div class="warning">
+<p><strong>重要</strong>: Homebrew をインストールし、Xcode 5.1.1 SDK に移行する前にツール類 (以下のセクションを参照してください) をインストールしてください。 - Homebrew は<em>おそらく</em> Xcode 5.1.1 SDK では失敗するでしょう!</p>
+</div>
+
+<p>AOSP、そして B2G OS は最新バージョンの Xcode SDK と互換性がありません。最新バージョンと並んで古いバージョンをインストールする必要があります。</p>
+
+<ol>
+ <li>Xcode 5.1.1 を <a href="https://developer.apple.com/downloads/">developer.apple.com</a> からダウンロードし、/Applications/Xcode-5.1.1 へインストールします。</li>
+ <li>下記のコマンドを実施し、Xcode 5.1.1 SDK を使用するように変更します:</li>
+</ol>
+
+<pre><code>sudo xcode-select --switch "/Applications/Xcode-5.1.1/Xcode.app/Contents/Developer"</code></pre>
+
+<h4 id="Java_SE_Development_Kit_7">Java SE Development Kit 7</h4>
+
+<p>AOSP、そして B2G OS は Java JDK <strong>v8</strong> との互換性が無いため、Java JDK <strong>v7</strong> をインストールする必要があります。<a href="http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html">http://www.oracle.com/</a> からダウンロードしてください。<br>
+  </p>
+
+<h4 id="Bash_Profile">Bash Profile</h4>
+
+<p>自身の <code>~/.bash_profile</code> ファイルに下記を追加してください:</p>
+
+<pre><code>export PATH=~/bin:$PATH
+export PATH=/usr/local/bin:$PATH
+export BUILD_MAC_SDK_EXPERIMENTAL=1
+export LC_CTYPE=C
+export LANG=C
+export USE_CCACHE=1</code></pre>
+
+<h3 id="Homebrew">Homebrew</h3>
+
+<p>Apple から提供されていない<em>多くの</em>コマンドラインツールをインストールする必要があります。Homebrew をインストールします:</p>
+
+<pre><code id="selectable">ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"</code></pre>
+
+<p>次のコマンドでツールをインストールします:</p>
+
+<pre><code>brew install ccache coreutils cmake findutils git gnu-tar gnu-sed gpg lzop yasm</code></pre>
+
+<p>autoconf の特定のバージョン 2.13 をインストールする必要があります:</p>
+
+<pre><code>brew install homebrew/versions/autoconf213
+</code></pre>
+
+<h3 id="ccache_の設定_2">ccache の設定</h3>
+
+<p>大量のコードをビルドしますが、そのうちの大半はビルド毎に変更がありません。コンパイルツールの ccache を使うことで、劇的にコンパイルを高速化できます。次のコマンドで 50GB キャッシュを与えます</p>
+
+<pre><code>prebuilts/misc/darwin-x86/ccache/ccache -M 50G</code></pre>
+
+<h3 id="OS_X_用の古い手順">OS X 用の古い手順</h3>
+
+<h4 id="Mac_のブートストラップを_B2G_OS_で動かす">Mac のブートストラップを B2G OS で動かす</h4>
+
+<p>次に、ターミナルを開いて次のコマンドを実行してください:</p>
+
+<pre class="brush: bash"><code>curl -fsSL https://raw.github.com/mozilla-b2g/B2G/master/scripts/bootstrap-mac.sh | bash</code></pre>
+
+<p>これは、ブートストラップスクリプトを pull および実行して、エミュレータをビルドするための必要条件を満たしているか確認するものです。また、不足しているものがあればインストールを促したり、警告を出して問題の解決案を提案します。このスクリプトがインストールを確認する項目は次の通りです:</p>
+
+<p>B2G を開発するには特別なブランチを取得する必要があります。これは、Mercurial から読み込まれます <a href="http://mozilla-version-control-tools.readthedocs.io/en/latest/hgmozilla/installing.html">(詳細)</a>。 OS X にはデフォルトで Mercurial がインストールされていないため、このコードを実行してインストールする必要があります:</p>
+
+<pre>$ brew install mercurial</pre>
+
+<h4 id="Be_aware_of_Mac_file_system_case_sensitivity" name="Be_aware_of_Mac_file_system_case_sensitivity">Mac のファイルシステムの大文字小文字の区別を意識する</h4>
+
+<p>Mac OS X はデフォルトで、大文字と小文字の区別をしないファイルシステムです。 Linux カーネルには、同一名で大文字小文字の異なるファイルが多数あるため、これが問題となります。例えば、ヘッダファイルの <code>xt_CONNMARK.h</code> と <code>xt_connmark.h</code> を見てください。その結果、<code>/kernel</code> の中で多数のファイルが <code>./config.sh</code> の後に修正されます。</p>
+
+<p>多くの場合、ビルドはうまくいきます。いくつかのプラットフォームでは、しかしながら、次のエラーに出くわす可能性があります:</p>
+
+<pre><code><span class="quote">ERROR: You have uncommited changes in kernel
+You may force overwriting these changes
+with |source build/envsetup.sh force|
+
+ERROR: Patching of kernel/ failed.</span></code></pre>
+
+<p>この問題についての多くの議論と解決の提案は、<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867259" title="Bug 867259 - Build reliably fails on case-insensitive HFS+ on Mac OS">Bug 867259</a> を参照してください。</p>
+
+<p>もう一つは、大文字と小文字を区別するファイルシステム上でビルドするのが、常に最も安全でしょう。その最も簡単な方法は、別のマウント可能な、大文字と小文字を区別するディスクイメージを作成することです。-volname の名前変更で大文字を使用しないように気をつけてください。これは、Apple のDisk Utility アプリケーションを使うか、コマンドラインから可能です:</p>
+
+<pre><code>hdiutil create -volname 'firefoxos' -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 80g ~/firefoxos.sparseimage</code></pre>
+
+<p>ドライブをマウントするには:</p>
+
+<pre><code>open ~/firefoxos.sparseimage</code></pre>
+
+<p>マウントされたドライブに移動するには:</p>
+
+<pre><code>cd /Volumes/firefoxos/</code></pre>
+
+<p>この場所にコードをチェックアウトしたら、大文字小文字の問題を心配することなくコンパイルできます。</p>
+
+<h3 id="任意_HAX_のインストール">任意: HAX のインストール</h3>
+
+<p>Intel は、x86 エミュレータを使用している人に対して、Mac 上でエミュレートされたコードの代わりにネイティブコードで B2G エミュレータを動作させる特別なドライバを提供しています。これを使用したい場合は、<a class="external" href="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/" title="http://software.intel.com/en-us/articles/intel-hardware-accelerated-execution-manager/">ダウンロードしてインストール</a>してください。必ず必要なものではありませんが、エミュレーションのパフォーマンスと安定性が向上します。</p>
+
+<p>HAXのインストール前に <a href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK</a> をインストールする必要があるでしょう。</p>
+
+<h2 id="adb_のインストール">adb のインストール</h2>
+
+<p>ビルドプロセスでは、B2G をビルドする前にスマートフォンにインストールされた Android からバイナリ BLOB を抜いておく必要があります (もちろん、エミュレータをビルドする場合を除いて)。このためには、<code>adb</code> (Android Debug Bridge) が必要になります。<a href="/Firefox_OS/Debugging/Installing_ADB">ADBをインストールする</a> の記事で <code>adb</code> のインストール方法を説明しています。</p>
+
+<div class="warning">
+<p>adb を将来使う時の注意: adb は電話機を見るのに、画面ロックが解除されている必要があります (少なくとも B2G OS の最近のパージョンで)。たぶん画面ロックを無効にしたくなるでしょう (ビルド手順の後で説明します)。</p>
+</div>
+
+<h3 id="Samsung_Galaxy_S2_用の追加手順">Samsung Galaxy S2 用の追加手順</h3>
+
+<p>もし Samsung Galaxy S2 用にビルドする予定なら、heimdall もインストールする必要があります。 詳細は、<a href="#Installing_heimdall">heimdall のインストール</a> を参照してください。ブートストラップスクリプトは<strong>実行してくれません</strong>!</p>
+
+<p>加えて、下記の点も心に留めておかなければなりません:</p>
+
+<ol>
+ <li>ようやく S2 端末に<a href="/Firefox_OS/Installing_on_a_mobile_device">独自ビルドをインストール</a>する時には、<code>flash.sh</code> を実行する前に、<code>factoryfs</code> を <code>FACTORYFS</code> に、<code>kernel</code> を <code>KERNEL</code> にすべて変更する必要があります (<code>pit</code> の出力を確認してください)。そうしないと動作しません。</li>
+ <li><a href="http://www.gokhanmoral.com/2013/02/17/siyahkernel-s2-v6-0beta5/">Siyah-s2</a> のリカバリー ROM の動作が最も良く、<a href="http://forum.xda-developers.com/wiki/ClockworkMod_Recovery">CWM</a> も同じく動きますが、いくつかの問題があります。</li>
+ <li><code>flash.sh</code> を用いて S2 に焼くと、ベース OS の動作は良いが、そのままでは Gaia に問題が出ることがあります。<code>make reset-gaia PRODUCTION=1</code> でリフレッシュすることで、そうした問題が片付くでしょう。</li>
+</ol>
+
+<div class="note"><strong>注意:</strong> もし多くの Samsung 製スマートフォンの内容管理に使用される <a class="external" href="http://www.samsung.com/us/kies/" title="http://www.samsung.com/us/kies/">Samsung Kies</a> ツールをインストール済みなら、 B2G OS を端末に書き込む前にそれを削除する必要があります。Windows では、標準のアプリケーション削除の処理を使用できます。Mac では Kies インストールディスクイメージに、システムから完全に Kies を削除するユーティリティがあります。 Kies がインストールされたままだと、フラッシュメモリへの書き込みが<strong>うまく動作しないでしょう</strong>。もし Kies を削除することを忘れても、ビルドシステムはそれを検知して、アンインストールするよう知らせてくれます。アンインストールツールが正しく <code>~/Library/Application Support/.FUS</code> フォルダを削除できず、ユーザスタートアップ項目リストの中にユーティリティへの参照が残るので注意してください。それらは手動で削除することになるでしょう。</div>
+
+<h2 id="heimdall_のインストール">heimdall のインストール</h2>
+
+<p>heimdall は、Samsung Galaxy S2 に書き込むためのユーティリティです。Boot to Gecko フラッシュユーティリティが、B2G OS がインストールされたスマートフォンの内容を置き換える場合や、端末に B2G と Gaia の更新バージョンの書き込む場合に使用されます。Galaxy S2 上に B2G OS をインストールしたい場合は必要ですが、その他の端末では<strong>不要です</strong>。他の端末向けには、代わりに fastboot ユーティリティをビルドして使用します。</p>
+
+<div class="note"><strong>注記:</strong> 繰り返しですが、これは、<strong>Samsung Galaxy S2 に B2G OS をインストールする場合にのみ必要</strong>であることに注意してください。</div>
+
+<p>heimdall をインストールするには 2 通りの方法があります:</p>
+
+<ul>
+ <li>GitHub から<a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">コードをダウンロード</a>して、自分でビルドする。</li>
+ <li>パッケージマネージャを使用してインストールする。
+ <ul>
+ <li>Linux: <code>sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev</code></li>
+ <li>Mac: <a class="link-https" href="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg" title="https://github.com/downloads/Benjamin-Dobell/Heimdall/heimdall-suite-1.3.2-mac.dmg">インストール用パッケージをダウンロード</a>して使用してください。</li>
+ </ul>
+ </li>
+</ul>
+
+<div class="note">
+<p><strong>注記</strong>: 最新の Heimdall のソースからのビルドは、現在エラーが発生します。代わりに、Ubuntu 14.04 のリポジトリの 64bit パッケージ版を使うのが良いでしょう。つまり、できるだけ heimdall-flash:i386 の使用は避けてください。</p>
+</div>
+
+<h2 id="次のステップへ">次のステップへ</h2>
+
+<p>この時点で、<a href="/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build">B2G OS のコードを取得する</a> 準備ができているはずです!</p>
diff --git a/files/ja/archive/b2g_os/b2g_os_architecture/index.html b/files/ja/archive/b2g_os/b2g_os_architecture/index.html
new file mode 100644
index 0000000000..370a7a8cd5
--- /dev/null
+++ b/files/ja/archive/b2g_os/b2g_os_architecture/index.html
@@ -0,0 +1,34 @@
+---
+title: B2G OS Architecture
+slug: Archive/B2G_OS/B2G_OS_Architecture
+translation_of: Archive/B2G_OS/Architecture
+---
+<h2 id="B2G_OS_アーキテクチャの説明">B2G OS アーキテクチャの説明</h2>
+
+<div class="twocolumns">
+<p>B2G OS を構成する 3つのレイヤー:</p>
+
+<ol>
+ <li><strong>Gaia</strong></li>
+ <li><strong>Gecko</strong></li>
+ <li><strong>Gonk</strong></li>
+</ol>
+
+<h3 id="Gaia">Gaia</h3>
+
+<p>Gaia は、HTML、CSS と Javascriptで作られているシステムアプリや電話、SMS、時計、カレンダーで構成されているユーザーインターフェースです。</p>
+
+<p><br>
+ <strong>Source Code</strong>: <a href="https://github.com/mozilla-b2g/gaia">https://github.com/mozilla-b2g/gaia</a></p>
+
+<h3 id="Gecko">Gecko</h3>
+
+<p>Gecko は、HTML, CSS と Javascript や 様々な デバイス <a href="https://discourse.mozilla-community.org/t/why-gaia-apps-are-turned-to-chrome/8011">chrome://</a> &amp; <a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/API">web API's</a>. を描画する、web レンダリングエンジンです。&lt;/br&gt;<br>
+ <strong>Source Code</strong>: <a href="https://github.com/mozilla/gecko-dev">https://github.com/mozilla/gecko-dev</a></p>
+
+<p dir="rtl"><code><img alt="" src="https://mdn.mozillademos.org/files/13803/b2gos.png" style="border-style: solid; border-width: 2px; float: left; height: 400px; margin-left: 20px; margin-right: 20px; width: 300px;"></code></p>
+</div>
+
+<h3 id="Gonk">Gonk</h3>
+
+<p>Gonk は、Android Kernel や <a href="https://source.android.com/devices/halref/">Hardware Abstraction Layer</a> (HAL) と デバイスドライバーで構成されています。</p>
diff --git a/files/ja/archive/b2g_os/board_guide/chirimen/chirimen_faq/index.html b/files/ja/archive/b2g_os/board_guide/chirimen/chirimen_faq/index.html
new file mode 100644
index 0000000000..a9c16403fa
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/chirimen/chirimen_faq/index.html
@@ -0,0 +1,8 @@
+---
+title: CHIRIMEN FAQ
+slug: Archive/B2G_OS/Board_guide/CHIRIMEN/CHIRIMEN_FAQ
+translation_of: Archive/B2G_OS/Board_guide/CHIRIMEN/CHIRIMEN_FAQ
+---
+<h2 id="CHIRIMEN_FAQ">CHIRIMEN FAQ</h2>
+
+<p><strong>こちらに移動しました: <a href="https://chirimen.org/docs/ja/FAQ.html">https://chirimen.org/docs/ja/FAQ.html</a></strong></p>
diff --git a/files/ja/archive/b2g_os/board_guide/chirimen/index.html b/files/ja/archive/b2g_os/board_guide/chirimen/index.html
new file mode 100644
index 0000000000..f8a076107a
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/chirimen/index.html
@@ -0,0 +1,16 @@
+---
+title: CHIRIMEN
+slug: Archive/B2G_OS/Board_guide/CHIRIMEN
+translation_of: Archive/B2G_OS/Board_guide/CHIRIMEN
+---
+<p><a href="http://ja.mozillafactory.org/">Mozilla Factory </a>の <a href="http://mozopenhard.mozillafactory.org/">MozOpenHard Project </a>は、Firefox OS のOSS版である<a href="https://wiki.mozilla.org/B2G">B2G</a> (Boot to Gecko)の動作する高性能な開発者向けボードと、ハードウェアをコントロールするWebAPI(現時点ではI2CとGPIO用)を開発しています。このハードウェアとソフトウェアを併せた環境は、CHIRIMEN(ちりめん)と呼ばれています。</p>
+
+<h2 id="CHIRIMEN_について">CHIRIMEN について</h2>
+
+<p style="line-height: 1.656; margin-top: 0pt; margin-bottom: 0pt;" id="docs-internal-guid-c108f47b-5781-ba06-59cc-bf9a1a4a56cd" dir="ltr">CHIRIMEN はセンサーやアクチュエーターなどの物理デバイスを Web 技術だけで制御することができる開発環境で、ボードコンピュータとその上で動作するソフトウェアを含めた総称です。 CHIRIMENは、Web開発者の為に設計され、Webブラウザを介して現実世界とWebの世界をつなげる事を目的としています。<br>
+ CHIRIMENのパッケージにはボードコンピュータとしてのハードウェア、その上で動作する Boot to Gecko (<a href="https://wiki.mozilla.org/B2G">B2G</a>) ソフトウェア、センサーや物理デバイスを JavaScript から制御するための WebGPIO や WebI2C といった低レベル API の実装などが含まれており、日本で誕生した MozOpenHard (現 CHIRIMEN Open Hardware) というコミュニティによって開発され、CHIRIMEN というコードネームがつけられました。<br>
+ CHIRIMEN に関連するハードウェアとソフトウェアのソースコードは、オープンソースとして公開されています。</p>
+
+<p style="line-height: 1.656; margin-top: 0pt; margin-bottom: 0pt;" dir="ltr"> </p>
+
+<p style="line-height: 1.656; margin-top: 0pt; margin-bottom: 0pt;" dir="ltr">CHIRIMEN に関して詳しくは <a href="https://chirimen.org/">chirimen.org</a> サイトをご覧ください。</p>
diff --git a/files/ja/archive/b2g_os/board_guide/chirimen/os_image/index.html b/files/ja/archive/b2g_os/board_guide/chirimen/os_image/index.html
new file mode 100644
index 0000000000..33032e8038
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/chirimen/os_image/index.html
@@ -0,0 +1,14 @@
+---
+title: B2G OSイメージの取得方法
+slug: Archive/B2G_OS/Board_guide/CHIRIMEN/OS_Image
+---
+<h2 id="CHIRIMEN_B2G_OSイメージの取得">CHIRIMEN B2G OSイメージの取得</h2>
+
+<p><a href="https://chirimen.org/docs/ja/quickStart.html">クイックスタートガイド</a>の OSイメージアップデート編を参照してください:</p>
+
+<ul>
+ <li><a href="https://chirimen.org/docs/ja/firmware_update_guide_for_windows.html">Windows での OS イメージアップデート </a></li>
+ <li><a href="https://chirimen.org/docs/ja/firmware_update_guide_for_linux.html">Linux での OS イメージアップデート</a></li>
+</ul>
+
+<p>自分でビルドしたい場合は <a href="https://github.com/chirimen-oh/B2G">CHIRIMEN Open Hardware コミュニティの B2G リポジトリ</a>を参照してください。</p>
diff --git a/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/basic_startup/index.html b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/basic_startup/index.html
new file mode 100644
index 0000000000..bf74d16ce6
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/basic_startup/index.html
@@ -0,0 +1,5 @@
+---
+title: 起動編
+slug: Archive/B2G_OS/Board_guide/CHIRIMEN/Quick_start_guide/basic_startup
+---
+<p>このページは <a href="https://chirimen.org/docs/ja/basic_startup.html">chirimen.org に移動しました</a>。</p>
diff --git a/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/board_connectors/index.html b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/board_connectors/index.html
new file mode 100644
index 0000000000..a46cb6b19f
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/board_connectors/index.html
@@ -0,0 +1,5 @@
+---
+title: ボードコンピュータ コネクタ配置
+slug: Archive/B2G_OS/Board_guide/CHIRIMEN/Quick_start_guide/board_connectors
+---
+<p>このページは <a href="https://chirimen.org/docs/ja/board_connectors.html">chirimen.org に移動しました</a>。</p>
diff --git a/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/dev_windows/index.html b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/dev_windows/index.html
new file mode 100644
index 0000000000..9d682f5e1c
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/dev_windows/index.html
@@ -0,0 +1,5 @@
+---
+title: 開発環境準備編 windows版
+slug: Archive/B2G_OS/Board_guide/CHIRIMEN/Quick_start_guide/dev_windows
+---
+<p>このページは <a href="https://chirimen.org/docs/ja/dev_windows.html">chrimen.org に移動しました</a>。</p>
diff --git a/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/firmware_update_guide_for_windows/index.html b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/firmware_update_guide_for_windows/index.html
new file mode 100644
index 0000000000..81c9dbcba5
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/firmware_update_guide_for_windows/index.html
@@ -0,0 +1,6 @@
+---
+title: firmware update guide for windows
+slug: >-
+ Archive/B2G_OS/Board_guide/CHIRIMEN/Quick_start_guide/firmware_update_guide_for_windows
+---
+<p>このドキュメントは <a href="https://chirimen.org/docs/ja/firmware_update_guide_for_windows.html">chrimen.org に移動しました</a>。</p>
diff --git a/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/index.html b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/index.html
new file mode 100644
index 0000000000..64b2f8bcf6
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/chirimen/quick_start_guide/index.html
@@ -0,0 +1,5 @@
+---
+title: クイックスタートガイド
+slug: Archive/B2G_OS/Board_guide/CHIRIMEN/Quick_start_guide
+---
+<p>クイックスタートガイドは <a href="https://chirimen.org/docs/ja/quickStart.html">chrimen.org に移動しました</a>。</p>
diff --git a/files/ja/archive/b2g_os/board_guide/index.html b/files/ja/archive/b2g_os/board_guide/index.html
new file mode 100644
index 0000000000..2a3200e2e8
--- /dev/null
+++ b/files/ja/archive/b2g_os/board_guide/index.html
@@ -0,0 +1,40 @@
+---
+title: Firefox OS 開発用ボードガイド
+slug: Archive/B2G_OS/Board_guide
+tags:
+ - B2G
+ - Developer Boards
+ - Firefox OS
+translation_of: Archive/B2G_OS/Board_guide
+---
+<div class="summary">
+<div class="seoSummary">
+<p>ここには Firefox OS 端末(開発者向けと消費者向けの両方)に関する開発者向け情報がまとめられています。 一般的な <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="Building and installing Firefox OS">Firefox OS  のビルドとインストール</a> や <a href="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS" title="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS">Firefox OS のハック方法</a> については、それぞれの文書を参照してください。個別の端末に関しては、以下の文書を参照してください。</p>
+</div>
+
+<h2 id="開発者向けボードに関する情報">開発者向けボードに関する情報</h2>
+
+<p>ここに挙げられているボードは Firefox OS でアプリの開発や Firefox OS 自体への貢献をしたい開発者向けに調整されています。</p>
+
+<dl>
+ <dt>Raspberry Pi</dt>
+ <dd>Raspberry Pi  に関する情報がまとまっています。</dd>
+ <dt><a href="https://developer.mozilla.org/ja/Firefox_OS/Board_guide/CHIRIMEN">CHIRIMEN</a></dt>
+ <dd>CHIRIMEN に関する情報がまとまっています。</dd>
+</dl>
+
+<h2 id="Firefox_OS_に関する情報">Firefox OS に関する情報</h2>
+
+<dl>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/Phone_specs">Firefox OS 端末データ</a></dt>
+ <dd>コードネーム、購入方法、ハードウェアの仕様といった Firefox OS 端末の情報がまとまっています。</dd>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/Firefox_OS_device_features">Firefox OS 端末の一般的な特徴</a></dt>
+ <dd>Firefox OS 端末の一般的な特徴と、最小構成についての文書です。</dd>
+ <dt><a href="/ja/Firefox_OS/Troubleshooting">トラブルシューティング</a></dt>
+ <dd>Firefox OS を使う上で、良くあるトラブルとその解決方法を解説します。</dd>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/Best_practices_open_reference_devices">オープンレファレンス端末に関するベストプラクティス</a></dt>
+ <dd>オープンなレファレンス端末に関するベストプラクティス集です。最近の Firefox OS の開発端末は全てこのベストプラクティスに従っています。</dd>
+</dl>
+</div>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/building_and_installing_firefox_os/b2g_build_variables_reference_sheet/index.html b/files/ja/archive/b2g_os/building_and_installing_firefox_os/b2g_build_variables_reference_sheet/index.html
new file mode 100644
index 0000000000..a2e7e42a6d
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_and_installing_firefox_os/b2g_build_variables_reference_sheet/index.html
@@ -0,0 +1,320 @@
+---
+title: B2G ビルド変数のリファレンスシート
+slug: >-
+ Archive/B2G_OS/Building_and_installing_Firefox_OS/B2G_Build_Variables_Reference_Sheet
+tags:
+ - Building
+ - Firefox OS
+ - Gaia
+ - Gecko
+ - NeedsContent
+ - Reference
+ - Référence(2)
+ - build
+ - commands
+translation_of: >-
+ Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p class="summary">この記事には、B2G ビルドや、Gaia ビルドや、Gecko ビルド変数と、Firefox OS関連のビルド操作期間で必要となるコマンドについての、全てのリファレンスがあります。</p>
+
+<h2 id="B2G_ビルド">B2G ビルド</h2>
+
+<h3 id="変数">変数</h3>
+
+<dl>
+ <dt>Example</dt>
+ <dd>xxx</dd>
+</dl>
+
+<h3 id="コマンド">コマンド</h3>
+
+<dl>
+ <dt><code>./repo sync</code></dt>
+ <dd>xxx</dd>
+ <dt><code>./config.sh</code></dt>
+ <dd>xxx</dd>
+</dl>
+
+<h2 id="Gaia_ビルド">Gaia ビルド</h2>
+
+<h3 id="変数_2">変数</h3>
+
+<p>全ての変数定義については <a href="https://github.com/mozilla-b2g/gaia/blob/master/Makefile#L497">Gaia MakeFile</a> を見てください。</p>
+
+<dl>
+ <dt><code>ADB</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>APP</code></dt>
+ <dd>いくつかのコマンドは、gaia全体か、あるアプリケーションだけで動作する。この環境変数は、コマンドをあるアプリだけで動作させたいかどうかを決めて、その場合、どのアプリかを指定する。</dd>
+ <dt><code>B2G_SYSTEM_APPS</code></dt>
+ <dd>system アプリが system パーティションにインストールされているのを確実にする。</dd>
+ <dt><code>GAIA_DIR</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>PROFILE_DIR</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>PROFILE_FOLDER</code></dt>
+ <dd>プロファイルが生成されるディレクトリを決める。デフォルトではノーマルプロファイル用に <code>gaia/profile</code> となり、<code>DEBUG=1</code> プロファイル(下記参照)用には、 <code>gaia/profile-debug</code> となる。</dd>
+ <dt><code>COREWEBAPPS_DIR</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>SCHEME</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>GAIA_DOMAIN</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>DEBUG</code></dt>
+ <dd>1 にセットされた時、デスクトップ版 Firefox や Firefox OS シミュレータ (B2G デスクトップ): <code>DEBUG=1 DESKTOP=0 make</code> として使われるのに適したプロファイルが生成される。これは <code>httpd.js</code> 拡張機能を含み、g <code>app://&lt;appname&gt;.gaiamobile.org/</code> を使ってアプリケーションにアクセスできるような初期設定が構成される。いくつかのアプリケーションはこのように動作するのが知られていて、一番有名なのは SMS アプリケーションである。</dd>
+ <dt><code>LOCAL_DOMAINS</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>DESKTOP</code></dt>
+ <dd>This includes a set of extensions in the <code>DEBUG</code> profile to allow the Gaia System app to be loaded in Firefox. This is quite broken these days and deprecated in favor of Mulet. It's set to 1 by default when <code>DEBUG=1</code> is used, but because this is really broken these days, so you'll want to disable it.<br>
+ Be  careful as this also doesn't work with the Firefox OS Simulator (B2G Desktop) at all.</dd>
+ <dt><code>DEVICE_DEBUG</code></dt>
+ <dd>Enables a more developer-friendly experience: turns on adb debugging with devtools, disables the lock screen, and enables prefs to allow debugging of certified apps.</dd>
+ <dt><code>NO_LOCK_SCREEN</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>SCREEN_TIMEOUT</code></dt>
+ <dd>0 にセットされた時、プロファイルの初期設定でスクリーンタイムアウトが無効に設定される。</dd>
+ <dt><code>SYSTEM</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>GAIA_PORT</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>GAIA_LOCALES_PATH</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>GAIA_INSTALL_PARENT</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>LOCALES_FILE</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>GAIA_KEYBOARD_LAYOUTS</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>GAIA_KEYBOARD_DOWNLOADABLE_LAYOUTS</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>GAIA_KEYBOARD_ENABLE_USER_DICT</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>LOCALE_BASEDIR</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>BUILD_APP_NAME</code></dt>
+ <dd>本質的に <code>APP</code> (上記参照) と同じ。</dd>
+ <dt><code>PRODUCTION</code></dt>
+ <dd>プロダクションビルド (エンジニアリングではなく)を生成する; つまりFacebook アプリid と、その他のプロダクションアプリ idが、これと共に使われる。あるいは <code>make production</code> でも機能する。</dd>
+ <dt><code>GAIA_OPTIMIZE</code></dt>
+ <dd>1 にセットされた時、Gaiaアプリのビルド時に、JSコード最小化といった最適化ステップを実行する。この機能はオプトインであるため、全ての gaia アプリに影響するわけではない。</dd>
+ <dt><code>GAIA_DEVICE_TYPE</code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code>G</code><code>AIA_DEV_PIXELS_PER_PX</code></dt>
+ <dd>The pixel density of the target device. This affects which image and/or video assets are copied into the build. This defaults to 1, but  higher spec devices need higher resolultion assets — for example the <a href="/en-US/Firefox_OS/Phone_guide/Flame">Flame</a> should use a value of 1.5. It is aliased as <code>GAIA_DPPX</code>.</dd>
+ <dt><code>DOGFOOD</code></dt>
+ <dd>Dogfood Gaia ビルドをオンにする</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">MOZILLA_OFFICIAL</span></span></code></dt>
+ <dd><span class="pl-s"><span class="pl-smi">非ゼロ値では、Mozilla-ブランドのビルドが生成される。デフォルトは</span></span> 0 である。</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">GAIA_DEFAULT_LOCALE</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">GAIA_PRETRANSLATE</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">GAIA_CONCAT_LOCALES</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">GAIA_DISTRIBUTION_DIR</span></span></code></dt>
+ <dd>カスタマイズしたGaiaを指定するのに使用; つまり詳細は <a href="/Firefox_OS/Developing_Gaia/Market_customizations_guide">Market customizations guide</a> を見てください。</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">GAIA_APPDIRS</span></span></code></dt>
+ <dd><code>xxx</code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">GAIA_ALLAPPDIRS</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">GAIA_MEMORY_PROFILE</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">NOFTU</span></span></code></dt>
+ <dd>1 にセットした時、プロファイルでFTUを無効化した初期設定がセットされる。</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">REMOTE_DEBUGGER</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">TARGET_BUILD_VARIANT</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-s"><span class="pl-smi">SETTINGS_PATH</span></span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-s"><span class="pl-smi">xxx</span></span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">FTU_PING_URL</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">KEYBOARD_LAYOUTS_PATH</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">CONTACTS_IMPORT_SERVICES_PATH</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">EMAIL_SERVICES_PATH</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">STAGE_DIR</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">GAIA_APP_TARGET</span></span></code></dt>
+ <dd><code><span class="pl-s"><span class="pl-smi">xxx</span></span></code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">BUILD_DEBUG</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">VARIANT_PATH</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">REBUILD</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">P</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">VERBOSE</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">RAPTOR</span></span></code></dt>
+ <dd>Enables performance marks and measures to output metadata to logcat. Usage: <code>RAPTOR=1 make reset-gaia</code></dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">SHARE_PERF_USAGE</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">DEFAULT_KEYBOAD_SYMBOLS_FONT</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code><span class="pl-s"><span class="pl-smi">DEFAULT_GAIA_ICONS_FONT</span></span></code></dt>
+ <dd>xxx</dd>
+ <dt><code>MOZ_APPROX_LOCATION</code></dt>
+ <dd>Use this to turn on the privacy panel; the default is off, except in engineering builds.</dd>
+</dl>
+
+<h3 id="コマンド_2">コマンド</h3>
+
+<p>The following is an abbreviated list of the most common commands you'll need. A much more detailed list can be found in the <a href="/en-US/Firefox_OS/Developing_Gaia/make_options_reference">Gaia make options reference</a>.</p>
+
+<dl>
+ <dt><code>make</code></dt>
+ <dd>Makes only the profile.</dd>
+ <dt><code>make reset-gaia</code></dt>
+ <dd>Deletes the previous profile and installs a new Gaia profile.</dd>
+ <dt><code>make install-gaia</code></dt>
+ <dd>Installs Gaia on top without deleting anything.</dd>
+ <dt><code>make production</code></dt>
+ <dd>Does the same thing as <code>PRODUCTION=1 make reset-gaia</code>.</dd>
+ <dt><code>make clean</code></dt>
+ <dd>Removes the generated profile.</dd>
+ <dt><code>make really-clean</code></dt>
+ <dd>Removes the generated profile and the directory's xul-runner; you should only run this when things are totally borked.</dd>
+</dl>
+
+<h2 id="Gecko_ビルド">Gecko ビルド</h2>
+
+<h3 id="変数_3">変数</h3>
+
+<dl>
+ <dt><code>MOZ_BUILD_DATE</code></dt>
+ <dd>Sets the build id to a specific build date/time.</dd>
+ <dt><code>B2G_DEBUG</code></dt>
+ <dd>xxx</dd>
+ <dt><code>VARIANT</code></dt>
+ <dd>Specifies the Gecko variant you want to build. Valid types are detailed below:</dd>
+</dl>
+
+<table>
+ <tbody>
+ <tr>
+ <th scope="row"><code>eng<code> </code></code></th>
+ <td>
+ <p>This is the default flavor. A plain <code>make</code> is the same as <code>make eng</code>.</p>
+
+ <ul>
+ <li>Installs modules tagged with: <code>eng</code>, <code>debug</code>, <code>user</code>, and/or <code>development</code>.</li>
+ <li>Installs non-APK modules that have no tags specified.</li>
+ <li>Installs APKs according to the product definition files, in addition to tagged APKs.</li>
+ <li><code>ro.secure=0</code></li>
+ <li><code>ro.debuggable=1</code></li>
+ <li><code>ro.kernel.android.checkjni=1</code></li>
+ <li><code>adb</code> is enabled by default.</li>
+ <li>marionette is enabled</li>
+ <li>Does not have update notifications by default ( B2G_UPDATER=1 to turn on )</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row"><code>user<code> </code></code></th>
+ <td>
+ <p>This is the flavor intended for final release.</p>
+
+ <ul>
+ <li>Installs modules tagged with <code>user</code>.</li>
+ <li>Installs non-APK modules that have no tags specified.</li>
+ <li>Installs APKs according to the product definition files; tags are ignored for APK modules.</li>
+ <li><code>ro.secure=1</code></li>
+ <li><code>ro.debuggable=0</code></li>
+ <li><code>adb</code> is disabled by default.</li>
+ <li>Optimizes by default</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <th scope="row"><code>userdebug<code> </code></code></th>
+ <td><code>make userdebug</code>
+ <p>The same as <code>user</code>, except:</p>
+
+ <ul>
+ <li>Also installs modules tagged with <code>debug</code>.</li>
+ <li><code>ro.debuggable=1</code></li>
+ <li><code>adb</code> is enabled by default.</li>
+ <li>marionette is enabled</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<div class="note">
+<p><strong>Note</strong>: This table is inspired by the <a href="http://www.kandroid.org/online-pdk/guide/build_system.html#androidBuildVariants">Android Build Variants</a> table.</p>
+</div>
+
+<h3 id="コマンド_3">コマンド</h3>
+
+<dl>
+ <dt><code>./build.sh buildsymbols</code></dt>
+ <dd>Makes build symbols for debugging; see <a href="/en-US/docs/Uploading_symbols_to_Mozillas_symbol_server">Uploading symbols to Mozilla's symbol server</a>.</dd>
+ <dt><code>./build.sh gecko-update-full</code></dt>
+ <dd>Creates an OTA mar file; see <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">Firefox OS update packages</a>.</dd>
+ <dt><code>./build.sh gecko-update-fota</code></dt>
+ <dd>Creates a FOTA mar/zip based on files containing only a subset of files and directories; see <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">Firefox OS update packages</a>.</dd>
+ <dt><code>./build.sh gecko-update-fota-full</code></dt>
+ <dd>Creates a FOTA mar/zip based on files; see <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">Firefox OS update packages</a>.</dd>
+ <dt><code>./build.sh gecko-update-fota-fullimg</code></dt>
+ <dd>Creates a FOTA mar/zip based on partitions; see <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">Firefox OS update packages</a>.</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/building_and_installing_firefox_os/b2g_installer_add-on/index.html b/files/ja/archive/b2g_os/building_and_installing_firefox_os/b2g_installer_add-on/index.html
new file mode 100644
index 0000000000..6aa1141500
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_and_installing_firefox_os/b2g_installer_add-on/index.html
@@ -0,0 +1,275 @@
+---
+title: B2G インストーラ アドオン
+slug: Archive/B2G_OS/Building_and_installing_Firefox_OS/B2G_installer_add-on
+tags:
+ - B2G
+ - B2G installer
+ - add-on
+ - blobfree
+ - install
+translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on
+---
+<p class="summary"><strong>B2G installer アドオン</strong>は、長い間問題となっていた、blob (プロプライエタリなコンポーネント) のために完全なシステムビルドが再配布できない件を解決します。この記事では、このアドオンの動作とインストールする方法を説明します。</p>
+
+<div class="warning">
+<p><strong>重要</strong>: このアドオンはまだ実験的段階にあり、<strong>メンテナー</strong>が必要です。当座は、何か悪いことが起こっても再フラッシュできる端末だけに使うことをお勧めします。現在は Linux (32 / 64 bit) と OSX (64 bit) のみサポートされています。</p>
+</div>
+
+<div class="warning">
+<p><strong>重要</strong>: アドオンの初回リリースにあたり、次の基本的なユースケースのサポートだけを視野に入れていることをご理解ください: Android (または CyanogenMod) システムが動作しているサポート端末に B2G を焼きこむ。B2G のアップグレードを扱い、端末が (まだ) 指定されていないソースから Blob を入手する。</p>
+</div>
+
+<h2 id="Blob_フリーな配布データをビルドする">Blob フリーな配布データをビルドする</h2>
+
+<p>上記の有名な問題の解決法は、デバイスビルドに必要な全てを同梱する、いわゆる "Blob フリー" な配布データ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1175934" title="FIXED: [B2G] Add support to build blobfree images">バグ 1175934</a> を参照) を作成することです:</p>
+
+<ul>
+ <li>ソースからフルシステムをビルドする</li>
+ <li>端末の互換性情報</li>
+ <li>パーティションの割り当て</li>
+ <li>必要な Blob の一覧と、最終ビルドへ必要なマッピング先</li>
+</ul>
+
+<p>こうした Blob フリーな配布データは、B2G のビルド時に <code>|blobfree|</code> <code>make</code> ターゲットを指定することでビルドできます:</p>
+
+<pre class="brush: bash">$ ./build.sh blobfree</pre>
+
+<div class="note">
+<p><strong>注記</strong>: これについての詳細は、<a href="/Firefox_OS/Building#Building_a_blob_free_full_system_zip">B2G のビルドについてのページの blobfree セクション</a> を参照してください。</p>
+</div>
+
+<p>B2G installer アドオンは、こうした配布データのインストールを容易にします。</p>
+
+<h2 id="新規端末のサポートを追加する">新規端末のサポートを追加する</h2>
+
+<p>ユーザが互換性のある端末を接続した時に、新しい端末をアドオン内で利用可能にするには、いくつかのステップが必要です:</p>
+
+<ol>
+ <li>お持ちの端末が、Blob フリーな配布データの生成をサポートしていることを確認してください。<a href="/Firefox_OS/Building#Building_a_blob_free_full_system_zip">B2G のビルドについてのページの blobfree セクション</a> を参照してください。</li>
+ <li>端末がこれをサポートしていたら、アドオンから利用可能にする手順を進められます。まずは、<a href="https://github.com/mozilla-b2g/b2g-installer-builds/">ビルドのリポジトリ</a> をフォークしてください。</li>
+ <li><a href="https://bugzilla.mozilla.org">Bugzilla</a> の、<strong>Firefox OS :: B2GInstaller</strong> コンポーネントに、バグ登録してください。</li>
+ <li>新しい端末の情報を <code>builds.json</code> に追加してください。</li>
+ <li>Github にプルリクエストを送り、それに作成したバグを添付し、<em>review :gerard-majax</em> を申請してください。</li>
+</ol>
+
+<p><code>builds.json</code> ファイルにはオブジェクト配列が含まれ、各互換端末が記述されています。これらのオブジェクトは、次のプロパティを持ちます:</p>
+
+<ul>
+ <li><code>id</code>: ユーザに表示される端末名。</li>
+ <li><code>builds</code>: この端末で利用可能なビルドの配列。配列内の各ビルドオブジェクトには、次のプロパティが必要:
+ <ul>
+ <li><code>name</code>: ビルドの選択時に表示される文字列。</li>
+ <li><code>description</code>: このビルドについてのユーザフレンドリな説明。</li>
+ <li><code>url</code>: Blob フリー配布ファイルの URL。</li>
+ </ul>
+ </li>
+ <li><code>adb</code>: Android プロパティのセット。互換性のある端末として検出されるために<strong>一致しなければならない</strong>もの。</li>
+ <li><code>fastboot</code>: Fastboot 変数のセット。互換性のある端末として検出されるために<strong>一致しなければならない</strong>もの。</li>
+ <li><code>requiresRoot</code>: 端末のインストールを続けるのにルート化が必要かどうかを決める任意の値。デフォルト値は <code>true</code>。</li>
+</ul>
+
+<div class="note">
+<p><strong>注記</strong>: 各 Android プロパティと Fastboot 変数は、文字列 (完全に同一) または配列 (配列値のいずれかと完全に同一) に対して一致します。</p>
+</div>
+
+<h2 id="インストールする">インストールする</h2>
+
+<p>B2G installer アドオンをインストールするには、次のステップに従います:</p>
+
+<ul>
+ <li><a href="https://nightly.mozilla.org/">Firefox Desktop Nightly</a> を起動し、ADB Helper (v0.8.6 以降) がインストールされていることを確認してください。インストールのためのリンクは、 <a href="https://ftp.mozilla.org/pub/labs/fxos-simulator/">fxos-simulator のページ</a> 下部にあります。</li>
+ <li>Firefox の <a href="/Firefox/Multiple_profiles">別のプロファイル</a> を作成してください。
+ <pre class="brush: bash">./firefox -P</pre>
+ </li>
+ <li>次のどちらかの方法で B2G installer アドオンの XPI をインストールします:
+ <ul>
+ <li><a href="https://addons.mozilla.org/firefox/addon/b2g-installer/">AMO</a> サイトからインストールする (推奨)。</li>
+ <li>自分でビルドする。<a href="#Hacking">Hacking</a> セクションを参照してください。</li>
+ </ul>
+ </li>
+ <li>ADB Helper 0.8.6 以降をインストールする。(WebIDE -&gt; Project -&gt; Manage Extra Components)</li>
+ <li>システムの /tmp/ (一時フォルダ) に 2GB 以上の空き領域があることを確認してください。</li>
+ <li>ロケーションバーに <code>about:b2g-installer</code> と入力してページを読み込みます。初回はブラウザを再起動する必要があるでしょう。</li>
+ <li>アドオンの改善に協力したい方は、使用セッションからの情報を直接収集するチェックボックスにチェックを入れてください。この収集される情報については、下記の <a href="#Data">Data</a> セクションで説明します。</li>
+</ul>
+
+<h3 id="VM_(仮想マシン)_を利用する">VM (仮想マシン) を利用する</h3>
+
+<p>事前ビルドされた仮想マシンをOVAパッケージとして利用することもできます。Please check with VirtualBox or your favorite tool on how to import this appliance. It provides a ready-to-use B2G Installer installation that supports some devices out of the box (udev, etc. already configured.) See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1204482" title="FIXED: Provide a VirtualBox VM ready for B2G Installer use">バグ 1204482</a> for more details, and the link below to download. Please verify the SHA1 to make sure the VM is good to use (~1.5GB download).</p>
+
+<pre class="comment-text " id="ct-19">https://drive.google.com/file/d/0B8Ju6ek0Knd6WnE0N2F6ZHF0VTQ/view?usp=sharing
+SHA1: 01574220718e90d7de498952270cbbaee8e85acd</pre>
+
+<p>It is recommended to use the VM if you are running on an OS where B2G Installer does not work (e.g., Windows), or if you are running into issues with the steps above. The default configuration of this VM should handle those devices:</p>
+
+<ul>
+ <li>Mozilla Flame</li>
+ <li>Sony Xperia Z3 and Sony Xperia Z3 Compact</li>
+ <li>LG Nexus 4 and LG Nexus 5</li>
+ <li>Fairphone 2</li>
+ <li>Wileyfox Swift</li>
+</ul>
+
+<p>If you are willing to flash another device, you will have to configure USB passthrough with the proper USB VID/PID (do not forget the fastboot ones, that might differ) and also configure udev rules.</p>
+
+<h2 id="使い方">使い方</h2>
+
+<ol>
+ <li>アドオンの起動時に、B2G installer が <a href="https://github.com/mozilla-b2g/b2g-installer-builds/blob/master/builds.json">Github</a> から <code>builds.json</code> をダウンロードして、利用可能なビルドのリストを取得します。ローカルの ZIP ファイルはいつでも使用できます。</li>
+ <li>USB 経由で端末を接続し、アドオンが端末を検出するまでお待ちください。</li>
+ <li>端末がサポートされた端末として検出されると、利用可能なビルドのリストが表示されます。</li>
+ <li>インストールしたいビルドを選び、<em>Flash</em> をクリックしてお待ちください。</li>
+</ol>
+
+<h2 id="スクリーンショット">スクリーンショット</h2>
+
+<p>端末が未接続の時:</p>
+
+<p><img alt="最初のページ、端末は未接続" src="https://mdn.mozillademos.org/files/12353/Capture%20du%202016-01-27%2016-13-38.png" style="display: block; height: 232px; margin: 0px auto; width: 320px;"></p>
+
+<p>ビルドの選択時:</p>
+
+<p><img alt="端末が接続され検出された" src="https://mdn.mozillademos.org/files/12355/Capture%20du%202016-01-27%2016-14-25.png" style="display: block; height: 232px; margin: 0px auto; width: 320px;"></p>
+
+<p>端末の焼き込み時:</p>
+
+<p><img alt="端末が接続され焼きこみ中" src="https://mdn.mozillademos.org/files/12357/Capture%20du%202016-01-27%2016-14-43.png" style="display: block; height: 232px; margin: 0px auto; width: 320px;"></p>
+
+<h2 id="データ">データ</h2>
+
+<p>As part of improving the addon, we are collecting some data as it is used. The main goal is to ensure the add-on works properly for everyone. We are also collecting data to discover which devices people are interested in, so that supported builds can be adjusted accordingly. No tracking is being done.</p>
+
+<p>We are sending two external telemetry pings to collect this data:</p>
+
+<ul>
+ <li>One upon the device being detected by the add-on after it is plugged into the computer (this will happen every time the add-on is running <strong>*and*</strong> a device with ADB enabled is plugged in.) For this ping, we record:
+
+ <ul>
+ <li>Device identification variables (model, build id, manufacturer, bootloader.)</li>
+ <li>Whether this device has a CyanogenMod build installed.</li>
+ <li>Whether a supported build was detected on the device.</li>
+ </ul>
+
+ <p>Sample payload of plugging a supported device:</p>
+
+ <pre class="brush: json line-numbers language-json"><code class="language-json"><span class="punctuation token">{</span>
+ <span class="key token">"payload":</span> <span class="punctuation token">{</span>
+ <span class="key token">"buildid":</span> <span class="string token">"KOT49H"</span><span class="punctuation token">,</span>
+ <span class="key token">"isSupported":</span> <span class="keyword token">true</span><span class="punctuation token">,</span>
+ <span class="key token">"model":</span> <span class="string token">"Xperia Z3 Compact (B2G)"</span><span class="punctuation token">,</span>
+ <span class="key token">"bootloader":</span> <span class="string token">"s1"</span><span class="punctuation token">,</span>
+ <span class="key token">"manufacturer":</span> <span class="string token">"Sony"</span>
+ <span class="punctuation token">}</span><span class="punctuation token">,</span> <span class="punctuation token">[</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">]</span>
+<span class="punctuation token">}</span></code></pre>
+ </li>
+</ul>
+
+<p>Sample payload of plugging an unsupported device:</p>
+
+<pre class="brush: json line-numbers language-json"><code class="language-json"><span class="punctuation token">{</span>
+ <span class="key token">"payload":</span> <span class="punctuation token">{</span>
+ <span class="key token">"buildid":</span> <span class="string token">"LVY48I"</span><span class="punctuation token">,</span>
+ <span class="key token">"isSupported":</span> <span class="keyword token">false</span><span class="punctuation token">,</span>
+ <span class="key token">"model":</span> <span class="string token">"Xperia Z1 Compact (B2G)"</span><span class="punctuation token">,</span>
+ <span class="key token">"bootloader":</span> <span class="string token">"s1"</span><span class="punctuation token">,</span>
+ <span class="key token">"manufacturer":</span> <span class="string token">"Sony"</span>
+ <span class="punctuation token">}</span><span class="punctuation token">,</span> <span class="punctuation token">[</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">]</span>
+<span class="punctuation token">}</span></code></pre>
+
+<p>One each time a device flashing procedure is running. That will happen either at the end of a successful flashing procedure, or upon failure. For this ping, we record:</p>
+
+<ul>
+ <li>The same variables as above.</li>
+ <li>Whether the device is already running a B2G build.</li>
+ <li>The URL of the build flashed (full path for a public build, filename without the whole path for a local build.)</li>
+ <li>Whether the user kept their data.</li>
+ <li>Whether the flashing was successful.</li>
+</ul>
+
+<p>Sample payload with flash success:</p>
+
+<pre class="brush: json line-numbers language-json"><code class="language-json"><span class="punctuation token">{</span>
+ <span class="key token">"payload":</span> <span class="punctuation token">{</span>
+ <span class="key token">"isSupported":</span> <span class="keyword token">true</span><span class="punctuation token">,</span>
+ <span class="key token">"installResult":</span> <span class="keyword token">true</span><span class="punctuation token">,</span>
+ <span class="key token">"runsB2G":</span> <span class="keyword token">true</span><span class="punctuation token">,</span>
+ <span class="key token">"buildid":</span> <span class="string token">"KOT49H"</span><span class="punctuation token">,</span>
+ <span class="key token">"keepData":</span> <span class="keyword token">false</span><span class="punctuation token">,</span>
+ <span class="key token">"buildURL":</span> <span class="string token">"https://index.taskcluster.net/v1/task/gecko.v1.mozilla-central.latest.linux.nexus-4-kk-user.opt/artifacts/public/build/mako.blobfree-dist.zip"</span><span class="punctuation token">,</span>
+ <span class="key token">"model":</span> <span class="string token">"AOSP on Mako"</span><span class="punctuation token">,</span>
+ <span class="key token">"bootloader":</span> <span class="string token">"MAKOZ30d"</span><span class="punctuation token">,</span>
+ <span class="key token">"manufacturer":</span> <span class="string token">"LGE"</span>
+ <span class="punctuation token">}</span><span class="punctuation token">,</span> <span class="punctuation token">[</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">]</span>
+<span class="punctuation token">}</span></code></pre>
+
+<p>Sample payload with flash failure:</p>
+
+<pre class="brush: json line-numbers language-json"><code class="language-json"><span class="punctuation token">{</span>
+ <span class="key token">"payload":</span> <span class="punctuation token">{</span>
+ <span class="key token">"isSupported":</span> <span class="keyword token">true</span><span class="punctuation token">,</span>
+ <span class="key token">"installResult":</span> <span class="keyword token">false</span><span class="punctuation token">,</span>
+ <span class="key token">"runsB2G":</span> <span class="keyword token">true</span><span class="punctuation token">,</span>
+ <span class="key token">"buildid":</span> <span class="string token">"KOT49H"</span><span class="punctuation token">,</span>
+ <span class="key token">"keepData":</span> <span class="keyword token">false</span><span class="punctuation token">,</span>
+ <span class="key token">"buildURL":</span> <span class="string token">"https://index.taskcluster.net/v1/task/gecko.v1.mozilla-central.latest.linux.nexus-4-kk-eng.opt/artifacts/public/build/mako.blobfree-dist.zip"</span><span class="punctuation token">,</span>
+ <span class="key token">"model":</span> <span class="string token">"AOSP on Mako"</span><span class="punctuation token">,</span>
+ <span class="key token">"bootloader":</span> <span class="string token">"MAKOZ30d"</span><span class="punctuation token">,</span>
+ <span class="key token">"manufacturer":</span> <span class="string token">"LGE"</span>
+ <span class="punctuation token">}</span><span class="punctuation token">,</span> <span class="punctuation token">[</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">.</span><span class="punctuation token">]</span>
+<span class="punctuation token">}</span></code></pre>
+
+<h2 id="Hacking">Hacking</h2>
+
+<ul>
+ <li>The code lives in the <a href="https://github.com/mozilla-b2g/b2g-installer/">b2g-installer</a> repo. You need to apply the patch to a mozilla-central clone, and then symlink <code>browser/extensions/b2g-installer</code> to your clone of the <code>b2g-installer</code> repo.</li>
+ <li>To build it you need to run <code>|./mach build &amp;&amp; ./mach build package|</code>.</li>
+ <li>The resulting XPI will be produced in your <code>MOZ_OBJDIR/dist/xpi-stage/b2g-installer/</code> directory.</li>
+ <li>It contains a copy of the source code of external tools from AOSP/CAF, needed when building partitions.</li>
+ <li>Tests are written as mochitest/xpcshell tests.</li>
+ <li>Check also the meta bug and its dependencies: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1166276">Bug 1166276</a></li>
+</ul>
+
+<h2 id="TODO">TODO</h2>
+
+<ol>
+ <li>Move back out of mozilla-central tree for building. This probably implies rewriting tests with something else than mochitests.</li>
+ <li>Convert building of tools from moz.build to Makefile.</li>
+ <li>Support external source of blobs (needed to handle upgrade case).</li>
+</ol>
+
+<ul>
+ <li>
+ <pre class="brush: json">{
+ "payload": {
+ "isSupported": true,
+ "installResult": false,
+ "runsB2G": true,
+ "buildid": "KOT49H",
+ "keepData": false,
+ "buildURL": "https://index.taskcluster.net/v1/task/gecko.v1.mozilla-central.latest.linux.nexus-4-kk-eng.opt/artifacts/public/build/mako.blobfree-dist.zip",
+ "model": "AOSP on Mako",
+ "bootloader": "MAKOZ30d",
+ "manufacturer": "LGE"
+ }, [...]
+}</pre>
+ </li>
+</ul>
+
+<h2 id="ハックする">ハックする</h2>
+
+<ul>
+ <li>The code lives in the <a href="https://github.com/mozilla-b2g/b2g-installer/">b2g-installer</a> repo. You need to apply the patch to a mozilla-central clone, and then symlink <code>browser/extensions/b2g-installer</code> to your clone of the <code>b2g-installer</code> repo.</li>
+ <li>To build it you need to run <code>|./mach build &amp;&amp; ./mach build package|</code>.</li>
+ <li>The resulting XPI will be produced in your <code>MOZ_OBJDIR/dist/xpi-stage/b2g-installer/</code> directory.</li>
+ <li>It contains a copy of the source code of external tools from AOSP/CAF, needed when building partitions.</li>
+ <li>Tests are written as mochitest/xpcshell tests.</li>
+ <li>Check also the meta bug and its dependencies: <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1166276">Bug 1166276</a></li>
+</ul>
+
+<h2 id="TODO_2">TODO</h2>
+
+<ol>
+ <li>Move back out of mozilla-central tree for building. This probably implies rewriting tests with something else than mochitests.</li>
+ <li>Convert building of tools from moz.build to Makefile.</li>
+ <li>Support external source of blobs (needed to handle upgrade case).</li>
+</ol>
diff --git a/files/ja/archive/b2g_os/building_and_installing_firefox_os/building_firefox_os_for_flame_on_osx/index.html b/files/ja/archive/b2g_os/building_and_installing_firefox_os/building_firefox_os_for_flame_on_osx/index.html
new file mode 100644
index 0000000000..c9976eb488
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_and_installing_firefox_os/building_firefox_os_for_flame_on_osx/index.html
@@ -0,0 +1,241 @@
+---
+title: OSXでflame用のB2G OSをビルドする
+slug: >-
+ Archive/B2G_OS/Building_and_installing_Firefox_OS/Building_Firefox_OS_for_flame_on_OSX
+tags:
+ - Firefox OS
+ - Flame
+ - Mac
+ - OSX
+translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X
+---
+<div><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section>
+<div class="boxed translate-rendered">
+<p class="summary"><span class="seoSummary">This article provides instructions on how to build B2G OS for Flame devices using a Mac OS X system as your build platform.</span></p>
+
+<div class="note"><strong>Note:</strong> This guide assumes that you have the popular <a href="https://developer.mozilla.org/ja/Firefox_OS/Building_and_installing_Firefox_OS/brew.sh">Homebrew</a> package manager installed. If you do not, you should either install it or an equivalent package manager and learn how it works.</div>
+
+<h2 id="Preparing_the_build_environment">Preparing the build environment</h2>
+</div>
+インストール・ビルドには<a href="/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites#Mac_OS_X_.E3.81.A7.E3.81.AE.E5.BF.85.E8.A6.81.E6.9D.A1.E4.BB.B6">OS_X用の必要条件</a>を前提とします。</div>
+
+<div> </div>
+
+<div>デバッグビルド時のobjdump用に、binutilsをインストールします。</div>
+
+<pre>brew install binutils</pre>
+
+<div><span style="line-height: 1.5;">大文字小文字を区別する、ジャーナルありの<span style="line-height: 1.5;">HFS+ファイルシステム</span>のディスクイメージを作ってビルドするのに、ターミナルで下記のコマンドを実行します。</span></div>
+
+<div>
+<pre>hdiutil create -volname 'firefoxos' -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 40g ~/firefoxos.sparseimage
+<span style="line-height: 1.5;">open ~/firefoxos.sparseimage</span>
+cd /Volumes/firefoxos/</pre>
+
+<div class="note">
+<p><strong>Note:</strong> Because the image has been created as a "sparse" image, only disk blocks that are actually used take up physical space on your physical media. This means that a 40 gigabyte image, such as the one above, will not actually take up 40 gigabytes of space. Instead, it will gradually get larger as you write more and more data to it.</p>
+</div>
+
+<h2 id="B2Gリポジトリをクローンする">B2Gリポジトリをクローンする</h2>
+</div>
+
+<div>
+<p>最初のビルドを始める前、最初のステップはB2Gリポジトリのクローンです。ここでは全部を取得しません!その代わり、B2Gビルドシステムとセットアップユーティリティを取得します。実際のB2Gコードの大半は、主なMozilla <a class="vt-p" href="/en-US/docs/Mercurial" title="Mercurial">Mercurial</a> リポジトリにあります。</p>
+
+<p>このリポジトリをクローンするには、gitを使います:</p>
+
+<pre style="font-size: 14px;">git clone git://github.com/mozilla-b2g/B2G.git</pre>
+
+<p>クローン完了後(速い接続では1分だけかかるでしょう)、B2Gディレクトリに<code>cdします</code>:</p>
+
+<pre style="font-size: 14px;">cd B2G</pre>
+</div>
+
+<h2 id="flame用のB2Gを設定する" style="line-height: 30px;">flame用のB2Gを設定する</h2>
+
+<p>B2Gビルドシステムのコアを取得完了後、インストールする端末に向けて設定(configure)を実行する必要があります。サポート端末の一覧を取得するには、<code>config.sh</code> ユーティリティを使用します — B2Gディレクトリで下記のコマンドを実行します:</p>
+
+<pre style="font-size: 14px;">./config.sh flame-kk</pre>
+
+<p>t's at this point that the majority of the code will be downloaded. This is around 15 GB of source code, so it will take a long time, even if you have a fast Internet connection. Even with high-performance broadband, this can take an hour or so.</p>
+
+<div class="note">
+<p><strong>Note:</strong> Seriously, this will take a very long time if you're on a slow Internet connection. Keep that in mind (as well as any per-megabyte fees you may have to pay on your connection) before doing this step.</p>
+</div>
+
+<h3 id="Back_up_important_device_files">Back up important device files</h3>
+
+<p>Before beginning the install process, it's important to make a backup of certain key files on the device. These will be needed if you ever need to re-flash the device. </p>
+
+<p>At this point, connect your Flame if it isn't already connected; the configure process will need to access it. Use the <code>adb devices</code> command to check to see if it's connected:</p>
+
+<pre class="line-numbers language-html"><code class="language-html">adb devices -l</code></pre>
+
+<p>This will list any Android or B2G compatible devices that are connected. If yours isn't listed, something's not connected properly.</p>
+
+<p>Once the device is confirmed to be connected, you can make the backup using the following commands:</p>
+
+<pre class="line-numbers language-html"><code class="language-html">mkdir flame-backup
+cd flame-backup
+adb pull /system system
+adb pull /data data</code></pre>
+
+<p>To note, if you are building for the first time, you will want to be on the latest version of the flame base image; see <a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Flame/Updating_your_Flame#Full_flash_to_the_latest_base_image">https://developer.mozilla.org/en-US/B2G_OS/Phone_guide/Flame/Updating_your_Flame#Full_flash_to_the_latest_base_image</a> for more details.</p>
+
+<div class="syntaxbox" lang="ruby" style="">
+<p><span style="font-size: 1.714285714285714rem; letter-spacing: -0.5px; line-height: 24px;">OSXでのビルド問題の回避策</span></p>
+
+<p>There's a problem that can happen when building on Mac OS X. This is a solution devised by the Mozilla community; <span style="line-height: 1.5;">OSX 10.9.4 Mavericでテストされています。</span></p>
+
+<h4 id="mkfs.vfatが存在しない">mkfs.vfatが存在しない</h4>
+
+<p><a href="https://github.com/sv99/dosfstools-osx">dosfstools-osx</a>のイメージで動作するdosfstoolsのポーティング版をインストールする必要があります。</p>
+
+<pre>brew create https://github.com/sv99/dosfstools-osx.git</pre>
+
+<p>Dosfstools形式を編集し、</p>
+
+<pre class="brush: js"><span class="nb">require</span> <span class="s2">"formula"</span>
+
+<span class="k">class</span> <span class="nc">Dosfstools</span> <span class="o">&lt;</span> <span class="no">Formula</span>
+ <span class="n">homepage</span> <span class="s2">"https://github.com/sv99/dosfstools-osx"</span>
+ <span class="n">url</span> <span class="s2">"https://github.com/sv99/dosfstools-osx.git"</span>
+ <span class="n">sha1</span> <span class="s2">""</span>
+
+ <span class="k">def</span> <span class="nf">install</span>
+ <span class="nb">system</span> <span class="s2">"make"</span><span class="p">,</span> <span class="s2">"install"</span>
+ <span class="k">end</span>
+
+<span class="k">end</span>
+</pre>
+
+<p>インストールします。</p>
+
+<pre>brew install dosfstools</pre>
+
+<h4 id="バグ1039223と1027682を.userconfigで回避する">バグ1039223と1027682を.userconfigで回避する</h4>
+
+<div><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1039223" style="line-height: 1.5;">Bug 1039223</a><span style="line-height: 1.5;"> - Build for flame fails complaining of missing dt.img </span>(flame向けビルドが、<span style="line-height: 1.5;">dt.imgがないせいで失敗する</span>)</div>
+
+<div>
+<div><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1027682">Bug 1027682</a> - [Flame][Build] Failed to build on Mac OS X 10.9, elf.h file not found (Mac OS X 10.9でビルドに失敗、elf.hファイルが見つからない)</div>
+
+<div> </div>
+
+<div>
+<pre># .userconfig for flame build 14.08.2014
+# osx repo change
+# Bug 1039223 - Build for flame fails complaining of missing dt.img
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1039223
+pushd device/qcom/common/dtbtool
+patch -N &lt;&lt; EOF
+--- a/dtbtool/dtbtool.c
++++ b/dtbtool/dtbtool.c
+@@ -616,7 +616,7 @@ int main(int argc, char **argv)
+ extract "qcom,msm-id" parameter
+ */
+ while ((dp = readdir(dir)) != NULL) {
+- if ((dp-&gt;d_type == DT_REG)) {
++ if ((dp-&gt;d_type == DT_REG||dp-&gt;d_type == DT_UNKNOWN)) {
+ flen = strlen(dp-&gt;d_name);
+ if ((flen &gt; 4) &amp;&amp;
+ (strncmp(&amp;dp-&gt;d_name[flen-4], ".dtb", 4) == 0)) {
+EOF
+
+popd
+
+# Bug 1027682 - [Flame][Build] Failed to build on Mac OS X 10.9, elf.h file not found
+# https://bugzilla.mozilla.org/show_bug.cgi?id=1027682
+if [[ ! -e /usr/local/include/elf.h ]]; then
+ cp "${B2G_DIR}/external/elfutils/libelf/elf.h" /usr/local/include
+ echo "Bug 1027682: elf.h copied into /usr/local/include"
+fi
+
+# Disable First Time User experience
+export NOFTU=1
+echo "NOFTU = ${NOFTU}"
+
+# Enable gaia developer mode
+export DEVICE_DEBUG=1
+echo "DEVICE_DEBUG = ${DEVICE_DEBUG}"
+
+# Keeping both debug and non-debug objects
+#export GECKO_PATH=${B2G_DIR}/mozilla-inbound
+echo "GECKO_PATH = ${GECKO_PATH}"
+
+export B2G_DEBUG=1
+echo "B2G_DEBUG = ${B2G_DEBUG}"
+
+#export GECKO_OBJDIR=${GECKO_PATH}/objdir-gonk
+if [[ "${B2G_DEBUG}" != "0" ]]; then
+ export GECKO_OBJDIR=${GECKO_OBJDIR}-debug
+fi
+echo "GECKO_OBJDIR = ${GECKO_OBJDIR}"</pre>
+
+<h2 id="初回ビルドを実施する">初回ビルドを実施する</h2>
+
+<p>Now you're finally ready to build! Just kick it off the way you do for any B2G OS build:</p>
+
+<pre>./build.sh</pre>
+
+<div> </div>
+</div>
+</div>
+</div>
+
+<p> </p>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 1079px; left: 398px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/building_and_installing_firefox_os/compatible_devices/index.html b/files/ja/archive/b2g_os/building_and_installing_firefox_os/compatible_devices/index.html
new file mode 100644
index 0000000000..06c23e557f
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_and_installing_firefox_os/compatible_devices/index.html
@@ -0,0 +1,283 @@
+---
+title: 互換性のある端末
+slug: Archive/B2G_OS/Building_and_installing_Firefox_OS/Compatible_Devices
+tags:
+ - B2G OS phones
+ - B2G OS supported phones
+translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="note">
+<p><strong>Note</strong>: すべての端末名の下には、それぞれの推奨されるビルドターゲット名を記載しています。例えば Nexus6 の場合は次のコマンドでビルドします: <code>./build.sh nexus-6-l</code></p>
+</div>
+
+<h2 id="Development_Devices" name="Development_Devices">開発用端末</h2>
+
+<p>下記の端末は、B2G OS を開発するための Mozilla の公式リファレンス端末です。</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12039/generic.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12039/generic.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12039/generic.png" style="max-width: 133px;"></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;"><strong>Z3 Compact (Kitkat)</strong></td>
+ <td style="text-align: center;"><strong>Z3</strong> <strong>(Kitkat)</strong></td>
+ <td style="text-align: center;"><strong>Flame</strong></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">aries-kk</td>
+ <td style="text-align: center;">leo-kk</td>
+ <td style="text-align: center;">flame-kk</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Community_Supported_Devices" name="Community_Supported_Devices">コミュニティによりサポートされた端末</h2>
+
+<h3 id="Nexus_Devices" name="Nexus_Devices">Nexus 端末</h3>
+
+<p>下記の端末は、AOSP 向けの Google のリファレンス端末であるため、(ほぼすべて) 自動的に B2G OS にサポートされます。</p>
+
+<table class="standard-table" style="line-height: 1.5;">
+ <tbody>
+ <tr>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12037/nexus6.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12035/nexus5.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12033/nexus4.png" style="max-width: 133px;"></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;"><strong>Nexus 6</strong></td>
+ <td style="text-align: center;"><strong>Nexus 5</strong></td>
+ <td style="text-align: center;"><strong>Nexus 4</strong></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">nexus-6-l</td>
+ <td style="text-align: center;">nexus-5-l</td>
+ <td style="text-align: center;">nexus-4-kk</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="Sony_端末">Sony 端末</h3>
+
+<p>下記の端末は、ソニーモバイルの Open Devices イニシアチブを活用しています。このイニシアチブは、AOSP ですべてのモダンな Xperia 端末をサポートすることを目的としています。 現在、3 つのプラットフォーム上の 10 種の端末がビルド可能です。</p>
+
+<p>これらの端末は、Lollipop AOSP をベースにビルドされています。</p>
+
+<div class="note">
+<p>現在、すべてのソニー端末でカメラ機能が使用できません。ソニーの開発者の対応状況に依存しています。</p>
+</div>
+
+<h4 id="Sony_Shinano_プラットフォーム">Sony Shinano プラットフォーム</h4>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12007/leo.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12009/aries.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12011/scorpion.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12013/sirius.png" style="max-width: 133px;"></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;"><strong>Z3</strong></td>
+ <td style="text-align: center;"><strong>Z3 Compact</strong></td>
+ <td style="text-align: center;"><strong>Z3 Tablet Compact</strong></td>
+ <td style="text-align: center;"><strong>Z2</strong></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">leo-l</td>
+ <td style="text-align: center;">aries-l</td>
+ <td style="text-align: center;">scorpion-l</td>
+ <td style="text-align: center;">sirius-l</td>
+ </tr>
+ </tbody>
+</table>
+
+<dl>
+</dl>
+
+<h4 id="Sony_Rhine_プラットフォーム">Sony Rhine プラットフォーム</h4>
+
+<div class="note">
+<p>Rhine 端末は、古い NFC チップが搭載されているため、現在その機能が使えません。詳細は <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1226720">Bug 1226720</a> を参照してください。</p>
+</div>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12015/honami.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12017/amami.png" style="max-width: 133px;"></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;"><strong>Z1</strong></td>
+ <td style="text-align: center;"><strong>Z1 Compact</strong></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">honami-l</td>
+ <td style="text-align: center;">amami-l</td>
+ </tr>
+ </tbody>
+</table>
+
+<h4 id="Sony_Yukon_プラットフォーム">Sony Yukon プラットフォーム</h4>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12019/tianchi.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12021/seagull.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12023/eagle.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12025/flamingo.png" style="max-width: 133px;"></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;"><strong>T2 Ultra</strong></td>
+ <td style="text-align: center;"><strong>T3</strong></td>
+ <td style="text-align: center;"><strong>M2</strong></td>
+ <td style="text-align: center;"><strong>E3</strong></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">tianchi-l</td>
+ <td style="text-align: center;">seagull-l</td>
+ <td style="text-align: center;">eagle-l</td>
+ <td style="text-align: center;">flamingo-l</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="CyanogenMod_Supported_Devices" name="CyanogenMod_Supported_Devices">CyanogenMod によりサポートされた端末</h3>
+
+<p>CyanogenMod 対応端末が待ち構えています!</p>
+
+<h3 id="Legacy_Devices" name="Legacy_Devices">古い端末</h3>
+
+<p>いくつかの古い端末は Mozilla のメンテナンス対象外となっていますが、コミュニティの開発者が対応してくれています (オープンソース最高!)</p>
+
+<h2 id="Obsolete_Devices" name="Obsolete_Devices">非推奨の端末</h2>
+
+<p>下記の古い端末はメンテナンスされておらず、これに対応するコミュニティの開発者もいません。現在、これらの端末のサポート状況は不明です。おそらく、B2G OS のマスターブランチではビルドができません。</p>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12069/peak.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12067/keon.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12071/inari.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12077/hamachi.png" style="max-width: 133px;"></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;"><strong>Geeksphone Peak</strong></td>
+ <td style="text-align: center;"><strong>Geeksphone Keon</strong></td>
+ <td style="text-align: center;"><strong>ZTE Open</strong></td>
+ <td style="text-align: center;"><strong>TCL Fire</strong></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">peak</td>
+ <td style="text-align: center;">keon</td>
+ <td style="text-align: center;">inari</td>
+ <td style="text-align: center;">hamachi</td>
+ </tr>
+ </tbody>
+</table>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12083/galaxy-s2.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12085/galaxy-nexus.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12087/nexus-s.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12087/nexus-s.png" style="max-width: 133px;"></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;"><strong>Samsung Galaxy S2</strong></td>
+ <td style="text-align: center;"><strong>Galaxy Nexus</strong></td>
+ <td style="text-align: center;"><strong><a href="/docs/Mozilla/Firefox_OS/Samsung_Nexus_S">Nexus S</a></strong></td>
+ <td style="text-align: center;"><strong><a href="/docs/Mozilla/Firefox_OS/Samsung_Nexus_S">Nexus S 4G</a></strong></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">galaxy-s2</td>
+ <td style="text-align: center;">galaxy-nexus</td>
+ <td style="text-align: center;">nexus-s</td>
+ <td style="text-align: center;">nexus-s-4g</td>
+ </tr>
+ </tbody>
+</table>
+
+<table class="standard-table">
+ <tbody>
+ <tr>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12073/flatfish.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12075/vixen.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12079/pandaboard.png" style="max-width: 133px;"></td>
+ <td style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/12081/rpi.png" style="max-width: 133px;"></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;"><strong>Foxconn InFocus</strong></td>
+ <td style="text-align: center;"><strong>Via Vixen</strong></td>
+ <td style="text-align: center;"><strong><a href="/Firefox_OS/Pandaboard">Pandaboard</a></strong></td>
+ <td style="text-align: center;"><strong>Raspberry Pi</strong></td>
+ </tr>
+ <tr>
+ <td style="text-align: center;">flatfish</td>
+ <td style="text-align: center;">vixen</td>
+ <td style="text-align: center;">pandaboard</td>
+ <td style="text-align: center;">rpi</td>
+ </tr>
+ </tbody>
+</table>
diff --git a/files/ja/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_overview/index.html b/files/ja/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_overview/index.html
new file mode 100644
index 0000000000..f780c6f719
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_and_installing_firefox_os/firefox_os_build_overview/index.html
@@ -0,0 +1,149 @@
+---
+title: B2G OSのビルド過程の概要
+slug: Archive/B2G_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_overview
+tags:
+ - B2G OS
+ - Firefox OS
+ - build
+ - build b2g os
+ - install
+ - インストール
+ - ビルド
+translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary
+---
+<div class="summary">
+<p>B2G OSをビルド、インストールすることは特にたくさんの時間、ネットワーク帯域、演算能力が必要になります。その上、不幸なことに、失敗してしまう傾向もあります。このページはビルド過程の目標を概説した後、個々の過程の中のステップを概説し、ユーザがやり方に添って行えることを意図します。それぞれのステップの詳細はリンク先のページで議論します。</p>
+</div>
+
+<div class="note">
+<p><strong style="font-weight: bold;">記:</strong> B2G OSのビルド過程は'B2G'または'Boot2Gecko'の全リファレンスです。'Boot2Gecko'は元々B2G OSプロジェクトのコードネームでした。</p>
+</div>
+
+<h2 id="ビルドの目標_3つの'image'ファイル">ビルドの目標: 3つの'image'ファイル</h2>
+
+<p>ビルド過程の最上位の目標は、B2G OS互換の端末にインストールできる3つのファイルを作ることです。</p>
+
+<table style="margin: 4px auto; vertical-align: top; width: 90%;">
+ <tbody>
+ <tr>
+ <td><strong>boot.img</strong></td>
+ <td>Linuxカーネルとルートファイルシステムのイメージで、後者は基本的なUnixツールの使用可能なセットを提供します。</td>
+ </tr>
+ <tr>
+ <td><strong>system.img</strong></td>
+ <td>Gonkの一部、移植されたGecko、そしてb2g実行環境を含むB2G OSのコア(中心)です。</td>
+ </tr>
+ <tr>
+ <td><strong>recovery.img</strong></td>
+ <td>Linuxカーネルとルートファイルシステムのイメージの他、ユーザが間違ったインストールを修復できるような簡易ツールです。</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>3つのイメージが出来次第、端末にインストールできます。</p>
+
+<p>B2G OS は Android Open Source Project (AOSP) の上に構築されています。AOSP のツールである <code>adb</code> と <code>fastboot</code> は端末にアクセスするための強力な手段を提供します。とりわけ <code>adb reboot-bootloader</code> のコマンドは接続された端末をリブートさせブートローダの初期段階で一時停止させることができます。そして <code>fastboot flash $partition $image</code> でイメージを端末へコピーすることができます。</p>
+
+<h3 id="ブートイメージ">ブートイメージ</h3>
+
+<p>ブートイメージ(<code>boot.img</code>) は Linuxカーネルと、初期化スクリプト・コアユーティリティソフトウエアを提供するルートパーティションの組み合わせです。後者は端末によって効率的に使用するため "ramdisk" と呼ばれる端末メモリへコピーされます。ブートイメージは端末上の 'boot' パーティションにコピーされ、<code>adb shell</code> 等の実行によって端末のファイルシステムがアクセスされる時、ramdisk の内容がルートディレクトリに反映されはじめます。</p>
+
+<p>ブートイメージは、ルートディレクトリ上の <code>default.prop</code> ファイル内のルートユーザのパーミッションを設定します。</p>
+
+<p>ブートイメージは kernel と ramdiskイメージに分割してramdiskイメージの内容を抽出し、修正することが可能です。修正後、ramdiskイメージを再組み立てして boot.img を再構築することで既存のブートイメージを変更することができます。たとえば <a href="http://k.japko.eu/alcatel-otf-hackers-guide-1.html">Alcatel One Touch Fire Hacking (Mini) Guide</a> が参考になります。</p>
+
+<p>ブートイメージは 'サイドローディング' によってインストール前にテストできます。端末が起動してブートローダで一時停止させた後、<code>fastboot</code>で次のようなコマンドを用いて、インストールすることなくブートイメージを使用することができます。<br>
+ <code>fastboot boot /some/path/to/boot.img</code></p>
+
+<h3 id="システムイメージ">システムイメージ</h3>
+
+<p>システムイメージ(<code>system.img</code>)は、B2G OSのコア部分を提供します:</p>
+
+<ul>
+ <li><strong>Gonk</strong>: OSの低レベルコンポーネント</li>
+ <li><strong>Gecko</strong>: B2GのHTML表示とJavaScriptエンジンの移植</li>
+ <li><strong>B2G</strong>: OSのコアとなる実行プロセス</li>
+ <li><strong>Gaia</strong>: ユーザが利用できる web アプリケーション</li>
+</ul>
+
+<div class="note">
+<p>プラットフォームアーキテクチャについては<a href="/ja/Firefox_OS/Platform">B2G OS プラットフォーム</a>に詳しい情報があります。</p>
+</div>
+
+<p>システムイメージは<code>端末上のsystem</code>パーティションへコピーされ、端末のファイルシステムが実行時にアクセスされる時には<code>/system/</code>ディレクトリとして可視化されます。</p>
+
+<div class="note">
+<p><strong>記</strong>: システムイメージは端末によって使用されるバイナリーブロブを提供します。特にRIL (Radio Interface Layer) ブロブは端末のセルラー電波を制御します。</p>
+</div>
+
+<h3 id="リカバリイメージ">リカバリイメージ</h3>
+
+<p>リカバリイメージ (<code>recovery.img</code>) にはブートイメージパーティションに存在するのと同じカーネルとramdiskが含まれます。しかしながらリカバリイメージは異なる初期化スクリプトを使用し、それによって、ユーザは端末のハードウェアボタンを用いてリカバリコマンドにアクセスできます。</p>
+
+<p>リカバリイメージは端末の<code>recovery</code>パーティションへコピーされ、通常実行時にはマウントされません。</p>
+
+<h2 id="ビルドの過程_セットアップ・構成・ビルド・インストール">ビルドの過程: セットアップ・構成・ビルド・インストール</h2>
+
+<p>B2G OSをビルド、インストールする最上位プロセスは、4つのステップを含みます:</p>
+
+<table style="margin: 4px auto; vertical-align: top; width: 90%;">
+ <tbody>
+ <tr>
+ <td><strong>セットアップ</strong></td>
+ <td>ビルドプロセスで使われる全プログラム、例えば適切なコンパイラやライブラリ、のコピーを取得します。</td>
+ </tr>
+ <tr>
+ <td><strong>構成</strong></td>
+ <td>ビルドされるソースコードをダウンロードし、ビルド時に使われるパスや他の値を指定する環境変数を定義する <code>.configure</code> ファイルを作成します。</td>
+ </tr>
+ <tr>
+ <td><strong>ビルド</strong></td>
+ <td>ユーザのGeckoプロファイルや、端末用のGaia webアプリケーション をビルドします。</td>
+ </tr>
+ <tr>
+ <td><strong>インストール</strong></td>
+ <td>端末にファイルをインストールします。</td>
+ </tr>
+ </tbody>
+</table>
+
+
+<p> </p>
+
+<h3 id="セットアップ">セットアップ</h3>
+
+<p>ビルドの最中に必要となる全部のソフトウェアが実行されているということをコンパイラに保証するために、最初のセットアップは必ず完了させます。</p>
+
+<p>このステップは手動でもスクリプトでも行うことができます。詳細は <a href="/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites" title="Firefox OS build prerequisites">B2G OSビルドの必要条件</a> ページで議論されています。</p>
+
+<div class="note">
+<p>記: UNIXやUNIXライクなマシンでは、unixコマンドの <code>which</code> にプログラム名をパラメータに付けることで必要なソフトウェアをチェックできます。</p>
+</div>
+
+<h3 id="構成">構成</h3>
+
+<p>実際のビルドプロセスは、B2G OS (またはB2G)ソフトウェアを取得することから始まります。通常それは<code>B2GプロジェクトのGitクローン</code>を作成することです。ビルド構成では、ビルドする全てのソースコード取得と、<code>ビルド用の変数を指定する.config</code>ファイル作成との両方を行います。</p>
+
+<p>これは<code>config.sh</code>スクリプトで実行されます。詳細は <a href="/ja/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build" title="Preparing for your first B2G build">初回 B2G ビルドの準備</a> ページで議論されています。</p>
+
+<p>構成スクリプトは、ビルドする端末タイプを指定するパラメータが必要です。ビルド名は特定端末よりは、CPUアーキテクチャに関連したコード名です。現状はどの物理端末にどのビルドが動作するかを確立する方法はありません。利用できるコード名一覧は<a href="/ja/Firefox_OS/Phones">こちら</a>にあります。</p>
+
+<p>構成ステップでは ASOP の<code> repo</code> ツールもまた、ビルドで使う全コードのコピーをダウンロード(または更新)するために使われます。こうしたコピーは <code>.repo/projects</code> ディレクトリに保管されます。この動作のため、構成ステップでは多くの時間と、大量のデータダウンロードが発生することがあります。</p>
+
+<h3 id="ビルド">ビルド</h3>
+
+<p>ビルドステップでは実際にソースコードをコンパイルして出力イメージを作成します。</p>
+
+<p><code>これはbuild.sh</code>スクリプトで実行されます。詳細は<a href="/ja/Firefox_OS/Building" title="Building">B2G OSのビルド</a>ページで議論されています。</p>
+
+<p>デフォルトでは、ビルドステップはモノリシックで、ASOPツールからLinux kernelやGaia webアプリケーションをまで一度にビルドしようとします。ビルドが失敗すると、どのステップが失敗したのか不明なことが時々あります。</p>
+
+<p>全B2Gスタックの一部をビルドすることが可能です。例えば<code>gecko</code>パラメータをつけてビルドすることで、<code>Gecko</code>システムのみをビルドできます。同様に、<code>Gaia</code>だけビルドするのに<code>gaia</code>パラメータを使用します。次に説明するように、これらの部品は端末に別々にインストールされます。</p>
+
+<p>このページの最初で述べたようなイメージをビルドすることも可能です。例えば<code>./build.sh out/platform/$target/system.img </code>でシステムイメージをビルドでき、ここで <code>$target</code> パラメータは構成ステップと同様になります。</p>
+
+<h3 id="インストール">インストール</h3>
+
+<p>インストールステップでは新しくコンパイルされたコードを端末に配置します。これは<code>flash.sh</code><code>スクリプトで実行されます。</code></p>
+
+<p>flash スクリプトにパラメータをつけることで個々のビルド部品をインストールできます。例えばGaia webアプリケーションは<code>./flash.sh gaia</code>と指定することで単独でインストールできます。</p>
diff --git a/files/ja/archive/b2g_os/building_and_installing_firefox_os/firefox_os_update_packages/index.html b/files/ja/archive/b2g_os/building_and_installing_firefox_os/firefox_os_update_packages/index.html
new file mode 100644
index 0000000000..a7bdd3d890
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_and_installing_firefox_os/firefox_os_update_packages/index.html
@@ -0,0 +1,523 @@
+---
+title: B2G OS の更新パッケージを作成、適用する
+slug: Archive/B2G_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages
+translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p>B2G OS ユーザに、端末へのシステムコードのバージョン更新を簡単に許可したい場合、ユーザが利用可能な更新パッケージを作る必要があります。この記事では、異なる更新パッケージを利用できることを一通り見て、パッケージをビルドし、更新をホストし (またシステムが利用可能な更新を取得する方法)、その更新を適用、検証することを取り上げます。</p>
+</div>
+
+<p>更新パッケージの作成と適用は、4つのステップに分かれます:</p>
+
+<ol>
+ <li>ビルドホスト上で、旧バージョンから新バージョンへの差分更新パッケージをビルドする</li>
+ <li>クライアントにダウンロードする、正しい更新パッケージを見つける</li>
+ <li>更新をダウンロードする</li>
+ <li>端末上の既存ファイルに更新を適用する</li>
+</ol>
+
+<p>これら各ステップは下記に載っています。</p>
+
+<div class="note">
+<p><strong>記</strong>: B2G OS のシステムを更新するのに多くの便利なツールがあって、その場所は <a href="https://github.com/mozilla-b2g/B2G/tree/master/tools/update-tools">b2g/tools/update-tools</a>です。</p>
+</div>
+
+<h2 id="Prerequisites_2"><span class="mw-headline" id="Prerequisites">Prerequisites</span></h2>
+
+<p>To build and apply updates you must ensure that your build has the updater and associated update tools enabled. By default those are enabled only in <strong>userdebug</strong> and <strong>user</strong> variants. You can however force building them by adding the following line to your <a href="https://developer.mozilla.org/en-US/Firefox_OS/Customization_with_the_.userconfig_file">.userconfig file</a>:</p>
+
+<pre class="line-numbers language-html"><code class="language-html">export B2G_UPDATER=1</code></pre>
+
+<p>To sign update packages you will need a Java runtime environment (JRE) or Java software development kit (JDK) installed and the <strong>java</strong> command available in the default path.</p>
+
+<h2 id="更新の種類"><span class="mw-headline" id="Types_of_updates">更新の種類</span></h2>
+
+<p>2種類の更新を知るべきです: FOTA (Firmware Over-The-Air) と、 Gecko/Gaia OTA (Over-The-Air)です。これらの違いを見て行きましょう。</p>
+
+<h3 id="FOTA更新"><span class="mw-headline" id="FOTA_updates">FOTA更新</span></h3>
+
+<p><span class="mw-headline"><strong>FOTA更新</strong>により</span> B2G <span class="mw-headline"><span class="mw-headline"> OSシステム全体を更新できます。FOTAの背後の技術は</span>Androidプロジェクトと共有されています。</span>FOTA更新を使って変更できる電話機の物理ドライブの場所は、システムパーティションや、カーネルや、モデムのベースバンドや、更新用のリカバリイメージ、あるいは端末のあらゆるファィルを含みます。</p>
+
+<p>B2G OS は特定FOTA クライアントに依存してはいません; つまりインターフェイスは<a class="externallink" href="http://git.mozilla.org/?p=b2g/librecovery.git;a=blob;f=librecovery.h;h=a6e13374f9bffcf947a39d6f3348290d67113321;hb=HEAD" rel="nofollow" title="http://git.mozilla.org/?p=b2g/librecovery.git;a=blob;f=librecovery.h;h=a6e13374f9bffcf947a39d6f3348290d67113321;hb=HEAD">librecovery </a>と呼ばれるAPIで抽象化されています。しかしながら、我々は GOTA リカバリクライアント(詳細は下記を見よ) を使うのを推奨し、ここの議論はGOTA の使用を想定します。</p>
+
+<p>FOTA 更新パッケージは主に <code>update.zip</code> で構成されます。このパッケージは下記を含みます。</p>
+
+<ul>
+ <li>バイナリの差分と、クライアントを新しいソフトウェアバージョンに更新するための新規ファィルのセット</li>
+ <li>差分と新規ファィルをクライアントに移す場所を管理する"更新スクリプト"</li>
+ <li>更新パッケージの検証に使われる内部署名</li>
+</ul>
+
+<p>ファィルのフォーマットとセットは、通常のAndroid更新に使われるものと同じで、ただ B2G OS では <code>update.zip</code> パッケージを追加で<code>mar</code> ラッパー(MARは<strong>Mozilla ARchive</strong> の意)でラップします(包みます)。<code>mar</code> ラッパーは追加レベルの検証を許可し、それは下記で説明します。</p>
+
+<h3 id="GeckoGaia_OTA更新"><span class="mw-headline" id="Gecko.2FGaia_OTA_updates">Gecko/Gaia OTA更新</span></h3>
+
+<p><span class="mw-headline">代わりに、<em>単に </em></span> B2G <span class="mw-headline"><span class="mw-headline">OS端末の</span>Gecko と Gaia のファィルを更新できて、その仕組みを<strong>Gecko/Gaia OTA 更新</strong>と呼びます。 全てのGecko と Gaia のファィル (コアのGeckoランタイムと端末のユーザインターフェイスを含めて) は端末上の <code>/system/b2g</code> ディレクトリ内にあります。これは</span>OTA更新で変更可能な、唯一のディレクトリです。</p>
+
+<p>Gecko/Gaia OTA更新はデスクトップ版Firefox webブラウザの更新に使われるのと同じ技術を使っています。上記で議論したFOTA <code>update.zip</code> パッケージとよく似ていることに、OTA更新は1つの MAR ファイルで構成され、その中にクライアントを新しいソフトウェアバージョンに更新するのに必要な、差分バイナリと新規ファイルのセットを含んでいます。</p>
+
+<p>Gecko クライアントはダウンロードした複数の<code>MARの統合性を検証し、</code><code>複数のMARを複数の関係者で署名することができます。</code></p>
+
+<h2 id="2つの更新テクノロジーがある理由は"><span class="mw-headline" id="Why_have_two_update_technologies.3F">2つの更新テクノロジーがある理由は?</span></h2>
+
+<p>OTA更新はFOTA更新ほど広範囲ではないが、よりユーザフレンドリーで適用が簡単で、必要な更新を行うためにしばしば良いものでしょう。</p>
+
+<ul>
+ <li>Gecko/Gaia OTA 更新は、B2G OSが通常動作中に"バックグラウンドで"更新できます。これはユーザが電話機を再起動して更新が適用されるのを待つ必要がないため、ずっと良いユーザ体験を提供するでしょう。その代わり、ユーザが電話機を使い続ける中で更新が適用されて、更新が完了した時にユーザはメインの<code>b2gプロセスの再起動に同意する必要があります。これは数秒の問題で、</code>FOTA更新の適用には通常数分かかります。</li>
+ <li>Gecko/Gaia OTA 更新パッケージはFOTA更新パッケージより小さいことが時々あり、いつもではありません; つまり大きくなることはありません。これはユーザが時々、少ないデータをダウンロードできることを意味します。</li>
+</ul>
+
+<p>もちろん、Gecko/Gaia 外のファイルを更新する必要があれば、完全な FOTAパッケージの道を進まないといけません。</p>
+
+<p>続いてパッケージをビルドする処理を検証しましょう。</p>
+
+<h2 id="更新パッケージをビルドする"><span class="mw-headline" id="Building_updates_for_multiple_software_versions">更新パッケージをビルドする</span></h2>
+
+<p>更新のビルドは、 B2G OS クライアントを、ソフトウェアの<em>バージョンX</em> からより新しい <em>バージョンY</em> に更新するのに要るファイルを生成する処理です。クライアントを更新するのに必要な更新パッケージは、<em>バージョンX</em> と <em>バージョンY</em> との間でどのファイルが変更されたかに依存します。</p>
+
+<ul>
+ <li><code>/system/b2g</code> 内のファイル<strong>だけが</strong>変更された場合Gecko/Gaia OTA更新を生成します。</li>
+ <li><code>/system/b2g</code> 外のいずれかのファイルが変更された場合、FOTA更新を生成します。</li>
+</ul>
+
+<p>差分更新パッケージ(FOTA と Gecko/Gaia OTA更新の両方) を生成するには、我々のツールでは<em>バージョンX</em> と バージョン<em>Y</em> の完全ビルドが必要です。 <strong>完全ビルド</strong> とは、クライアントを書き込むのに必要な全ファイルを含んだパッケージのことです。<em>バージョンX</em> の完全ビルド作成時には、<em>バージョンX</em>から更新する将来のバージョンを知っていません。そのために、完全なFOTAパッケージとGecko/Gaia パッケージを、各バージョン毎に作ります。これにより、<em>バージョンX </em>と将来の全バージョンの間で、Gecko/Gaia OTA差分更新や、必要ならばFOTA差分更新のいずれも生成できます。</p>
+
+<p>高レベルで、更新をビルドする処理はこのようになります:</p>
+
+<ol>
+ <li>ソフトウェア <em>バージョンX </em>では
+
+ <ul>
+ <li><code>/system/b2g</code> の中身の完全なGecko/Gaia OTA <code>MAR</code> を生成します。</li>
+ <li>完全な FOTA ターゲットファイルのzipを作成し、端末のパーティション用に任意で署名します。ターゲットファイルのzip は、以下では<code>DEVICE-target_files-$VARIANT.$USER.zip</code>で参照される、<code>(SYSTEM/、</code><code>BOOT/、などの)</code>電話機のディレクトリを更新するファイルを含んだ1つのzipです。完全なFOTA<code>のupdate.zip</code> は複数のターゲットファイルのzipから生成されます。</li>
+ </ul>
+ </li>
+ <li>ソフトウェア <em>バージョンY</em> で<em>は</em>
+ <ul>
+ <li><code>/system/b2g</code> の中身の完全な Gecko/Gaia OTA <code>MAR</code> を生成します。</li>
+ <li>完全な FOTA ターゲットファイルのzipを作成し、端末のパーティション用に任意で署名します。ターゲットファイルのzip は、 <code>以下ではDEVICE-target_files-$VARIANT.$USER.zip</code>で参照される、<code>(SYSTEM/、</code><code>BOOT/、などの)</code>電話機のディレクトリを更新するファイルを含んだ1つのzipです。完全なFOTA<code>のupdate.zip</code> は複数のターゲットファイルのzipから生成されます。</li>
+ </ul>
+ </li>
+ <li><code>/system/b2g</code> 内のファイルだけが変更された場合、<em>バージョン X</em> から <em>バージョンY</em> への差分Gecko/Gaia OTA更新<code>MAR</code>を生成します。</li>
+ <li>そうでない場合、<em>バージョン X</em> から <em>バージョンY</em> への差分FOTAの<code>update.zip</code> を生成します。B2Gクライアントへの配信用に、差分FOTA<code>のupdate.zip </code>を <code>MARにラップします。</code></li>
+ <li>配信承諾の必要性に応じて、パッケージを署名します。</li>
+</ol>
+
+<p>下記の節などでは、これらの各ステップを実装するためのB2Gツールの使い方を説明します。</p>
+
+<div class="note">
+<p><strong>Note</strong>: the steps below assume that you have already set up a b2g build environment at the location <code>$b2g</code>. The commands below reference the <code>$b2g/build.sh</code> helper script, but <code>make</code> can also be used.</p>
+</div>
+
+<h3 id="完全な_GeckoGaia_OTA更新MARを生成する"><span class="mw-headline" id="Generating_a_complete_Gecko.2FGaia_OTA_update_MAR">完全な Gecko/Gaia OTA更新MARを生成する</span></h3>
+
+<p><code>gecko-update-full</code> ターゲットを実行して、完全な更新<code>MAR</code>を、<code>最後に成功したb2g</code> ビルド(例  あなた自身で<a href="/en-US/Firefox_OS/Building">ビルド完了</a>したもの) から生成するには、<code>gecko-update-full</code> ターゲットを実行する必要があります。MAR を <code>$b2g/objdir-gecko/dist/b2g-update/b2g-gecko-update.mar に配置するには、下記コマンドを使います</code>:</p>
+
+<pre class="brush: bash">$ cd $b2g
+$ ./build.sh gecko-update-full
+$ cp objdir-gecko/dist/b2g-update/b2g-gecko-update.mar &lt;destination&gt;
+</pre>
+
+<h3 id="Generating_a_full_FOTA_update_MAR"><span class="mw-headline" id="Generating_a_complete_Gecko.2FGaia_OTA_update_MAR">Generating a full FOTA update MAR</span></h3>
+
+<p>To generate a full FOTA update MAR from the last successful <code>b2g</code> build (e.g. that you <a href="https://developer.mozilla.org/en-US/Firefox_OS/Building">built</a> yourself), you need to invoke the <code>gecko-update-fota-full</code> target. This includes the contents of the entire <code>/system</code> partition. Here are the commands you need:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ cd $b2g
+$ ./build.sh gecko-update-fota-full</code></pre>
+
+<p>This will generate a ZIP file (<code>$PRODUCT_OUT/fota/full/update.zip</code>) and a MAR file (<code>$PRODUCT_OUT/fota-$TARGET_DEVICE-update-full.mar</code>). The ZIP file can be directly used with <code>adb sideload</code>, while the MAR is intended for distribution in the same manner as any other update package.</p>
+
+<h3 id="Generating_a_FOTA_update_MAR_plus_recovery_package">Generating a FOTA update MAR plus recovery package</h3>
+
+<p>As of Firefox OS 2.2 (mid April and beyond) we added a new make target, which can be invoked as follows:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">$ cd $b2g
+$ ./build.sh gecko-update-fota-fullimg</code></pre>
+
+<p>This is used to produce a recovery package that will dump a set of partitions images. The default set is controlled by the variable <code>B2G_FOTA_FULLIMG_PARTS</code>, defined in <code>gonk-misc/Android.mk</code> (along with most of the other new features seen below.) It's a space-separated string of <code>mountpoint:image</code> instances to include. The default value is <code>"/boot:boot.img /system:system.img /recovery:recovery.img /cache:cache.img"</code>.</p>
+
+<p>Along with this we have also introduced some new environment variables to control the production of the two other make targets — <code>gecko-update-fota</code> and <code>gecko-update-fota-full</code>:</p>
+
+<ul>
+ <li>The first is <code>B2G_FOTA_PARTS</code>, which follows the same syntax pattern as <code>B2G_FOTA_FULLIMG_PARTS</code>. This allows us to produce these update packages but arbitrarily dump partition images along with those, e.g. boot partition, modem firmware, etc.</li>
+ <li><code>B2G_FOTA_PARTS_FORMAT</code> provides a way to describe a set of partitions that we want formatted during the installation of the recovery package. It's a space-separated list of mount points to make use of during the formatting.</li>
+ <li>We also have two new variables that allow us to wipe caches and/or data during the build procedure:
+ <ul>
+ <li><code>B2G_FOTA_WIPE_DATA</code></li>
+ <li><code>B2G_FOTA_WIPE_CACHE</code></li>
+ </ul>
+ </li>
+</ul>
+
+<div class="note">
+<p><strong>Note</strong>: All of these new features heavily rely on having a proper <code>recovery.fstab</code> file provided for the device in question.</p>
+</div>
+
+<h3 id="Generating_a_partial_GeckoGaia_FOTA_update_MAR"><span class="mw-headline" id="Generating_a_complete_Gecko.2FGaia_OTA_update_MAR">Generating a partial Gecko/Gaia FOTA update</span> MAR</h3>
+
+<p>A partial FOTA update uses the same mechanism as a full FOTA update, but by default only includes Gecko/Gaia updates like a regular OTA update. Additional files outside of Gecko/Gaia (such as fonts) can also be included.</p>
+
+<p>The rationale for generating a partial FOTA update package is mainly related to licensing issues: when building a complete FOTA update package, the whole system partition (at least) will be included. This may include blobs that you don't have the authorization to redistribute. However, since MAR distribution is useful and Gecko/Gaia themselves are free software, there is no reason we should not be able to distribute them in this manner. A partial FOTA allows you to only update a subset of the system. An OTA update could be used instead in this scenario but it does come at a cost: OTA updates require enough space on the system partition to hold both the existing Gecko/Gaia files as well as the unpacked update files. A partial FOTA update does not suffer from this limitation as it can overwrite the existing files with the updated ones.</p>
+
+<p>To create a partial FOTA update from the last successful <code>b2g</code> build (e.g. that you <a href="https://developer.mozilla.org/en-US/Firefox_OS/Building">built</a> yourself), Invoke the <code>gecko-update-fota</code> target with the following commands:</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ cd $b2g
+$ ./build.sh gecko-update-fota</code></pre>
+
+<p>This will generate a ZIP file (<code>$PRODUCT_OUT/fota/partial/update.zip</code>) and a MAR file (<code>$PRODUCT_OUT/fota-$TARGET_DEVICE-update.mar</code>). The ZIP file can be directly used with <code>adb sideload</code>, while the MAR is intended for distribution in the same manner as any other update package.</p>
+
+<p>The construction can be controlled with a couple of environment variables, the most useful of which are documented below:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th scope="col">Variable</th>
+ <th scope="col">Meaning</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>$B2G_FOTA_DIRS</code></td>
+ <td>Space-separated list of directories to include in the update. Defaults to <code>system/b2g</code>.</td>
+ </tr>
+ <tr>
+ <td><code>$TARGET_UPDATE_BINARY</code></td>
+ <td>Binary used to execute the Edify script inside the package. When none is provided, a pre-built updater binary from ICS is used.</td>
+ </tr>
+ <tr>
+ <td><code>$FOTA_FINGERPRINTS</code></td>
+ <td>Comma-separated list of Android fingerprints to check against. The use case is to be able to distribute Gecko/Gaia update packages on top of a controlled Gonk base system that we cannot legally distribute. For example, Open C community builds are using this.</td>
+ </tr>
+ </tbody>
+</table>
+
+<div class="note">
+<p><strong>Note</strong>: A complete set of these variables is defined in the <a href="https://github.com/mozilla-b2g/gonk-misc/blob/master/Android.mk">Android.mk file of the gonk-misc repository</a>; note that <code>$FOTA_FINGERPRINTS</code> is used in our <a href="https://github.com/mozilla-b2g/B2G/blob/d75c2351fb32216c78a1f6c50835796af8756068/tools/update-tools/update_tools.py#L837">update_tools.py</a> tool.</p>
+</div>
+
+<h3 id="完全な_FOTA_ターゲットファイルのzipを生成する"><span class="mw-headline" id="Generating_a_complete_FOTA_update_zip_and_target_files_zip">完全な FOTA ターゲットファイルのzipを生成する</span></h3>
+
+<p>Invoke the <code>target-files-package</code> target to build a target files zip that can be used to generate both incremental and full FOTA update packages. The target files zip can also be signed by custom keys to ensure that only FOTA updates from known sources can be installed. After signing target files, all images and updates (also OTA) need to be generated again to catch the inserted keys.</p>
+
+<div class="note">
+<p><strong>Note</strong>: The target files zip is generated in the location <code>out/target/product/$DEVICE/obj/PACKAGING/target_files_intermediates/$DEVICE-target_files-$VARIANT.$USER.zip</code></p>
+</div>
+
+<p>The following commands will carry out this step:</p>
+
+<pre class="brush: bash">$ cd $b2g
+$ ./build.sh target-files-package
+$ cp out/target/product/$DEVICE/obj/PACKAGING/target_files_intermediates/$DEVICE-target_files-$VARIANT.$USER.zip &lt;destination&gt;
+</pre>
+
+<p>The variable values in the commands listed above should be filled in as follows:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th scope="col">Variable</th>
+ <th scope="col">Meaning</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>$DEVICE</code></td>
+ <td>Device name for the AOSP product</td>
+ </tr>
+ <tr>
+ <td><code>$VARIANT</code></td>
+ <td><code>eng</code>, <code>user</code>, or <code>userdebug</code></td>
+ </tr>
+ <tr>
+ <td><code>$USER</code></td>
+ <td>The build username</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="完全なFOTAターゲットzipファイルに署名する"><a name="signing-target-files-package"></a>完全なFOTAターゲットzipファイルに署名する</h3>
+
+<p>Proper releases should typically be signed by custom release keys only known to the vendor. Having such keys will prevent FOTA updates where the source is unknown from being installed, hence introducing an extra security layer. For this to work, the images flashed to a device need to include public keys while the updates need to be signed by the corresponding private key. </p>
+
+<p>The first step is to generate custom keys and store them in a safe place. The Android Open Source Project has a script for generating these keys. For full compatibility, get this script from the branch corresponding to the Gonk version of the device in question. <a href="https://android.googlesource.com/platform/development/+/master/tools/make_key">Here is the master branch version</a>.</p>
+
+<p>A couple of keys are needed — create them with the following commands. <code>releasekey</code> is the key to use for signing FOTA update packages.</p>
+
+<pre class="brush: bash">$ development/tools/make_key releasekey '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
+$ development/tools/make_key platform '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
+$ development/tools/make_key shared '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
+$ development/tools/make_key media '/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com'
+</pre>
+
+<p>With keys present, the target files zip can be signed using the following commands. This will insert the public keys and modify build properties to reflect the fact that it has been signed.</p>
+
+<pre class="brush: bash">$ cd $b2g
+$ ./build/tools/releasetools/sign_target_files_apks \
+<span style="font-size: 1rem;"> --default_key_mappings $RELEASEKEY_FOLDER \</span>
+<span style="font-size: 1rem;"> --replace_ota_keys \</span>
+<span style="font-size: 1rem;"> --signapk_path prebuilts/sdk/tools/lib/signapk.jar \</span>
+<span style="font-size: 1rem;"> $UNSIGNED_TARGET_FILES_ZIP \</span>
+<span style="font-size: 1rem;"> $SIGNED_TARGET_FILES_ZIP</span></pre>
+
+<p><span style="font-size: 1rem;">The variable values in the commands listed above should be filled in as follows:</span></p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Variable</th>
+ <th scope="col">Meaning</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>$RELEASEKEY_FOLDER</code></td>
+ <td>The path to the folder containing the custom keys</td>
+ </tr>
+ <tr>
+ <td><code>$UNSIGNED_TARGET_FILES_ZIP</code></td>
+ <td>The FOTA target files zip to sign.</td>
+ </tr>
+ <tr>
+ <td><code>$SIGNED_TARGET_FILES_ZIP</code></td>
+ <td>The signed FOTA target files zip to be generated</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="差分OTA更新MARを生成する"><span class="mw-headline" id="Generating_an_incremental_OTA_update_MAR">差分OTA更新MAR</span>を生成する</h3>
+
+<p>この例では、ソフトウェア バージョン<em>X</em> から <em>バージョンY</em>への更新を生成すると想定します。 上記の指示からビルドされたソフトウェア バージョン<em>X</em>の完全なGecko/Gaia OTA <code>MAR</code> の場所を、以下では <code>$MAR_X</code> と呼びます。これはビルドサーバ上で <code>/home/build/b2g/versions/X/update.mar</code> のようなパスかもしれません。同様に、<em>バージョンY</em> の完全な<code>MAR</code> を <code>$MAR_Y</code> と呼びます。</p>
+
+<p><code>build-gecko-mar.py</code> のツールは差分Gecko/Gaia OTA更新のMAR を、<code>$MAR_X</code> <code>と$MAR_Y を用いて生成します。ファイルの生成先を</code><code>$GENERATED_INCREMENTAL_MAR_X_Y</code> と呼びます。このステップでは下記コマンドを使います:</p>
+
+<pre class="brush: bash">$ cd $b2g
+$ ./tools/update-tools/build-gecko-mar.py --from $MAR_X --to $MAR_Y $GENERATED_INCREMENTAL_MAR_X_Y
+</pre>
+
+<h3 id="差分FOTA更新zipを生成する"><span class="mw-headline" id="Generating_an_incremental_FOTA_update_zip">差分FOTA更新zip</span>を生成する</h3>
+
+<p>In this example, we're assuming that we're generating an update from software <em>version X</em> to <em>version Y</em>. The location of the full FOTA target zip built from software <em>version X </em>using the instructions above will be called <code>$TARGET_FILES_X</code> below. This might be a path on a build server like <code>/home/build/b2g/versions/X/target_files.zip</code>. Similarly, the location of the full FOTA target zip built from <em>version Y </em>will be called <code>$TARGET_FILES_Y</code>.</p>
+
+<p>The tool <code>build/tools/releasetools/ota_from_target_files</code> will generate an incremental FOTA update.zip using <code>$TARGET_FILES_X</code> and <code>$TARGET_FILES_Y</code>. We'll call the destination of this intermediate file <code>$INTERMEDIATE_FOTA_UPDATE_FOTA_X_Y</code>.</p>
+
+<p>After this <code>update.zip</code> is generated, the last step is to wrap it in a <code>MAR</code> for delivery to the B2G client. The tool <code>tools/update-tools/build-fota-mar.p</code> does this step. We'll call the destination of this generated file <code>$GENERATED_INCREMENTAL_FOTA_X_Y</code>.</p>
+
+<p>Use the following commands to complete this step:</p>
+
+<pre class="brush: bash">$ cd $b2g
+$ ./build/tools/releasetools/ota_from_target_files -v \
+ --incremental_from $TARGET_FILES_X \
+ --signapk_path prebuilts/sdk/tools/lib/signapk.jar \
+ --package_key $FOTA_SIGNING_KEY \
+ $TARGET_FILES_Y \
+ $INTERMEDIATE_FOTA_UPDATE_FOTA_X_Y
+$ ./tools/update-tools/build-fota-mar.py $INTERMEDIATE_FOTA_UPDATE_FOTA_X_Y --output=$GENERATED_INCREMENTAL_FOTA_X_Y
+</pre>
+
+<p>The variable values in the commands listed above should be filled in as follows:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th scope="col">Variable</th>
+ <th scope="col">Meaning</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>$TARGET_FILES_X</code></td>
+ <td>The FOTA target files zip for <em>version X</em></td>
+ </tr>
+ <tr>
+ <td><code>$TARGET_FILES_Y</code></td>
+ <td>The FOTA target files zip for <em>version Y</em></td>
+ </tr>
+ <tr>
+ <td><code>$INTERMEDIATE_FOTA_UPDATE_FOTA_X_Y</code></td>
+ <td>A temporary update.zip to generate a <span style="font-family: courier new,andale mono,monospace;">MAR</span> from</td>
+ </tr>
+ <tr>
+ <td><code>$GENERATED_INCREMENTAL_FOTA_X_Y</code></td>
+ <td>The destination incremental update zip wrapped in a <code>MAR</code> for delivery to clients</td>
+ </tr>
+ <tr>
+ <td><code>$FOTA_SIGNING_KEY</code></td>
+ <td>Path to the prefix for a private key and public cert for signing the update zip. <code>$FOTA_SIGNING_ZIP.pk8</code> and <code>$FOTA_SIGNING_ZIP.x509.pem</code> should both exist on the file system. If <code>$TARGET_FILES_X</code> is not signed this option can be omitted; the default testkey will still be picked up. In case <code>$TARGET_FILES_X</code> is a custom release key, refer to the <a href="#signing-target-files-package">target files zip signing section</a> on how to create it, and don't forget to sign <code>$TARGET_FILES_Y</code>.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="更新をホストし、クライアント側で更新をポーリングする"><span class="mw-headline" id="Hosting_updates_.28respectively.2C_polling_for_updates_on_the_client_side.29">更新をホストし、クライアント側で更新をポーリングする</span></h2>
+
+<p>B2G OS クライアントは<strong>更新マニフェスト</strong><code>(update.xml)を取得し、読み解くことで</code>、更新をポーリングします。 B2G OS クライアントは特定サーバ(サーバ上の特別に構築されたパスを尋ねます)の更新をポーリングするよう設定されています。クライアントがサーバを尋ねるのに、 HTTPSプロトコルが必要で、しかしながらHTTPもサポートされます。クライアントからポーリングされるサーバとパスは、既存クライアントにポーリングコードを変更する更新を積むことで、変更できます。</p>
+
+<p>下記の例では、server <code>updates.b2g.com</code> に更新がホストされているのを想定します。</p>
+
+<p>クライアントからポーリングされるURLは、通例に下記パラメータを含みます:</p>
+
+<table>
+ <thead>
+ <tr>
+ <th scope="col">パラメータ</th>
+ <th scope="col">説明</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>PRODUCT_MODEL</code></td>
+ <td>端末モデル名。これはB2Gのプロパティデータベース内の <code>ro.product.model</code> の値です。</td>
+ </tr>
+ <tr>
+ <td><code>CHANNEL</code></td>
+ <td>更新"チャンネル"。これはテストに役立ちます: 複数のサーバをホストするよう設定でき、例えば、"nightly"と"beta"と"release"のチャンネル。</td>
+ </tr>
+ <tr>
+ <td><code>VERSION</code></td>
+ <td>クライアントのソフトウェアバージョン。例えば、"18.0.2"。</td>
+ </tr>
+ <tr>
+ <td><code>BUILD_ID</code></td>
+ <td>タイムスタンプのような ユニークID で、特定ビルド用に構成されます。</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Firefox クライアントは構成された更新ホストの値と、実行時にポーリングするURLを構築するこれらの値を使います。構造は下記の通り:</p>
+
+<pre class="line-numbers language-html"><code class="language-html">https://aus4.mozilla.org/update/3/%PRODUCT%/%VERSION%/%BUILD_ID%/%PRODUCT_DEVICE%/%LOCALE%/%CHANNEL%/%OS_VERSION%/%DISTRIBUTION%/%DISTRIBUTION_VERSION%/update.xml</code></pre>
+
+<p>こうしたURLの実例は下記の通り:</p>
+
+<pre class="brush: xml line-numbers language-xml"><code class="language-xml">https://aus4.mozilla.org/update/3/B2G/37.0a1/20141214040212/flame/en-US/nightly-b2g37/Boot2Gecko%202.2.0.0-prerelease%20%28SDK%2019%29/default/default/update.xml?force=1</code></pre>
+
+<p>サーバがクライアントのリクエストに対するレスポンスに"404 Not Found"を返した場合、利用できる更新はありません。サーバが"200" とマニフェストファイルを返した場合、利用できる更新がある可能性があります。マニフェストは新規に利用できる、すなわち<strong>クライアントが更新しようとする</strong>ビルドを記述します。マニフェストの例は下記:</p>
+
+<pre class="brush: xml">&lt;?xml version="1.0"?&gt;
+&lt;updates&gt;
+ &lt;update type="major" appVersion="19.0" version="19.0" extensionVersion="19.0" buildID="20121210123456"
+ licenseURL="http://www.mozilla.com/test/sample-eula.html"
+ detailsURL="http://www.mozilla.com/test/sample-details.html"&gt;
+ &lt;patch type="partial" URL="https://updates.b2g.com/release/unagi1/18.0/20121203123456/update.mar"
+ hashFunction="SHA512" hashValue="5111e033875752b7d9b32b4795152dea5ef954cb8a9d4a602dd19a923b464c43521287dcb5781faf3af76e6dc5e8a3dd9c13edea18c1f2c8f3bd89e17d103d6f"
+ size="41901319"/&gt;
+ &lt;/update&gt;
+&lt;/updates&gt;
+</pre>
+
+<p>これはFirefox ビルドのマニフェスト(詳細は<a href="https://wiki.mozilla.org/Software_Update:updates.xml_Format">updates.xml フォーマットFormat</a> を見よ)と同じスキーマです。.マニフェスト内の項目は下記を記述します:</p>
+
+<ul>
+ <li>クライアント上のユーザインターフェイス表示に使うメタデータ</li>
+ <li>新規に利用できるバージョンについてのメタデータ</li>
+ <li>更新パッケージの場所</li>
+ <li>更新パッケージのダウンロード検証に使うメタデータ</li>
+</ul>
+
+<div class="note">
+<p><strong>Note</strong>: There is a useful update script available at <a href="https://github.com/mozilla-b2g/B2G/blob/master/tools/update-tools/build-update-xml.py">build-update-xml.py</a>, which given a MAR file, builds a Firefox OS update.xml for testing.</p>
+</div>
+
+<div class="note">
+<p><strong>Note</strong>: The client device or the user may wish to decline an update.</p>
+</div>
+
+<div class="note">
+<p><strong>Note:</strong>  <code>isOSUpdate="true"</code> is needed for FOTA updates but not for OTA updates.</p>
+</div>
+
+<p>上記に記述した仕組みを使って、サーバはクライアントのいかなる旧バージョンでも最新バージョンに更新する更新パッケージをホストできます。あるいは、クライアントが一度で更新するべき"直線の更新履歴"だけをホストしているかもしれません。</p>
+
+<p>ビルドサーバと更新ホストの相互作用の詳細は、このドキュメントの説明範囲を超えています。それはプロダクション環境に強く依存しています。我々の <a href="https://wiki.mozilla.org/Software_Update">Software Update</a> wiki ページにて詳細を見つけることができます。</p>
+
+<h2 id="更新を検証、適用する"><span class="mw-headline" id="Verifying_and_applying_updates">更新を検証、適用する</span></h2>
+
+<p>After a B2G OS client has successfully polled for an update (<a href="https://support.mozilla.org/en-US/kb/how-do-i-check-firefox-os-updates-and-install-them">handled from within the system</a>), downloaded it, and verified the integrity of the downloaded update package, the final step is to apply the update.</p>
+
+<p>The first step in applying an update is to verify the signatures embedded in the <code>MAR</code> packages (see <a href="#Generating_an_incremental_FOTA_update_zip">Generating an incremental FOTA update zip</a> for how these are created). This is done by the B2G OS client itself after checking the integrity of the downloaded package. The code used for this is the same for both FOTA and Gecko/Gaia OTA updates.</p>
+
+<div class="note">
+<p><strong>Note</strong>: It is not the MAR file that gets signed: it's the FOTA zip file that gets bundled into the MAR that's signed by <code>build/tools/releasetools/ota_from_target_file</code>. The signing of the FOTA update works the same as it does on Android; if you just run the script without specifying the key, it will use the developer key at <code>build/target/product/security/testkeys.*</code>. This is ok for testing but when you create a real update you need a secure key — i.e. one that no-one else knows about. The device will also verify that signature before applying the patch, so a device's initial images will need to contain the key as well.</p>
+</div>
+
+<div class="note">
+<p><strong>Note</strong>: The keys referred to above are found in the Android build systems; we've forked it in our <a href="https://github.com/mozilla-b2g/platform_build">platform_build repo</a>.</p>
+</div>
+
+<p>After signatures are verified, the process of applying an update diverges between Gecko/Gaia OTA updates and FOTA updates. Let's look at the differences between the two at this point.</p>
+
+<h3 id="GeckoGaia_OTA更新を適用する"><span class="mw-headline" id="Applying_Gecko.2FGaia_OTA_updates">Gecko/Gaia OTA更新を適用する</span></h3>
+
+<p>The B2G OS client applies these using the <code>updater</code> binary. This is part of the Gecko distribution and is the same code used to apply updates to desktop Firefox. As described above, the update is applied while the B2G OS client continues to run normally. Users are able to make and receive calls, run apps, browse the web, etc. while updates are being applied.</p>
+
+<p>The specific details of the <code>updater</code> binary are beyond the scope of this document, but it works approximately like so:</p>
+
+<ul>
+ <li>It makes a copy of the <code>/system/b2g</code> files.</li>
+ <li>It applies binary patches, removes old files, and adds new ones as specified by the <code>MAR</code> file.</li>
+ <li>It restarts the main <code>b2g</code> process so that it uses all the new files.</li>
+</ul>
+
+<p>After the <code>b2g</code> process finishes restarting, the user will be running the new version of the B2G client software.</p>
+
+<h3 id="FOTA更新を適用する"><span class="mw-headline" id="Applying_FOTA_updates">FOTA更新を適用する</span></h3>
+
+<p>The FOTA client applies these. The Gecko client "hands off" the update to be applied by calling into the <a class="externallink" href="http://git.mozilla.org/?p=b2g/librecovery.git;a=blob;f=librecovery.h;h=a6e13374f9bffcf947a39d6f3348290d67113321;hb=HEAD" rel="nofollow" title="http://git.mozilla.org/?p=b2g/librecovery.git;a=blob;f=librecovery.h;h=a6e13374f9bffcf947a39d6f3348290d67113321;hb=HEAD">librecovery</a> API. What happens after this step is specific to each FOTA client.</p>
+
+<p>In the implementation of librecovery used for the GOTA client, the downloaded update package is staged to be applied and special commands are enqueued for the recovery client. librecovery then reboots the device into recovery mode. The recovery client then runs the update script in the <code>update.zip</code> to update files and partitions as needed. The recovery client may need to reboot multiple times in order to update all files.</p>
+
+<p>After the final reboot, the device will be running the new version of the B2G OS client software.</p>
diff --git a/files/ja/archive/b2g_os/building_and_installing_firefox_os/index.html b/files/ja/archive/b2g_os/building_and_installing_firefox_os/index.html
new file mode 100644
index 0000000000..ab5e0ddb68
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_and_installing_firefox_os/index.html
@@ -0,0 +1,64 @@
+---
+title: B2G OS のビルドとインストール
+slug: Archive/B2G_OS/Building_and_installing_Firefox_OS
+tags:
+ - B2G OS
+ - Build documentation
+ - Firefox OS
+translation_of: Archive/B2G_OS/Building_and_installing_B2G_OS
+---
+<div class="summary">
+<p>B2G OS は現在活発に開発が行われており、プレリリースの状態にあるため、最新のコピーを確実にインストールするには、自分でビルドしてインストールするのが最善の方法です。<span class="seoSummary">このページのリストにある記事は、B2G OS をビルドしてエミュレータや互換性のある端末、もしくは Firefox ブラウザ内の <a href="/ja/docs/Mozilla/B2G_OS/Introduction_to_Gaia" title="Mozilla/B2G_OS/Introduction_to_Gaia">Gaia</a> ユーザインターフェースにインストールする方法を解説します。</span></p>
+</div>
+
+<table class="topicpage-table">
+ <tbody>
+ <tr>
+ <td>
+ <h2 class="Documentation" id="B2G_OS_の取得とビルド">B2G OS の取得とビルド</h2>
+
+ <dl>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_overview">B2G OS ビルドの概要</a></dt>
+ <dd>B2G OS のビルドとインストールを行うには、大変な時間とネットワーク帯域と演算能力を要します。このページでは、ビルドプロセスのゴールと、ユーザが順を追ってそのプロセスを進めるため概要を見ていきます。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/B2G_build_prerequisites">B2G OS ビルドの必要条件</a></dt>
+ <dd>初めて B2G をビルドする前に必要なステップ</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">初回 B2G OS ビルドの準備</a></dt>
+ <dd>B2G OS をビルドするには、リポジトリの複製とビルドの構成が必要です。その方法について解説します。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Building_Boot_to_Gecko">B2G OS のビルド</a></dt>
+ <dd>B2G OS のビルド方法です。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_Firefox_OS/B2G_installer_add-on">B2G installer アドオン</a></dt>
+ <dd><strong>B2G installer アドオン</strong>は、ブロブ (プロプライエタリなコンポーネント) が原因で完全システムビルドを再配布することができないという、長年の問題を解決するのに役立ちます。この記事では、アドオンの動作とインストール方法について解説します。</dd>
+ </dl>
+
+ <h2 id="さらなる参照材料">さらなる参照材料</h2>
+
+ <dl>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_Firefox_OS/Building_Firefox_OS_for_flame_on_OSX">Mac OS X で Flame 用の B2G OS をビルドする</a></dt>
+ <dd>Mac OS X 上でFlame用の B2G OS をビルドする方法です。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_Firefox_OS/Compatible_Devices">互換性のある端末</a></dt>
+ <dd>B2G OS をサポートする開発端末の公式なリスト。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">B2G OS 更新パッケージの作成と適用</a></dt>
+ <dd>この詳細なガイドでは、OTA/FOTA 更新パッケージの作成方法を説明します。このパッケージは、ユーザの端末に配信されるソフトウェア更新を提供できます。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Building_Boot_to_Gecko/FOTA_community_builds">FOTA コミュニティビルドのビルドとインストール</a></dt>
+ <dd>コミュニティにより書かれた FOTA パッケージの作成とインストールのクイックスタートガイドです。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_Firefox_OS/B2G_Build_Variables_Reference_Sheet">B2G ビルド変数のリファレンスシート</a></dt>
+ <dd>B2G OS 関係のビルド操作で必要になる、すべての B2G ビルド、Gaia ビルド、Gecko ビルド変数およびコマンドについてのリファレンス。</dd>
+ </dl>
+ </td>
+ <td>
+ <h2 class="Community" id="B2G_OS_と_Gaia_のインストール">B2G OS と Gaia のインストール</h2>
+
+ <dl>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Gaia もしくは B2G OS の実行方法を選択する</a></dt>
+ <dd>あなたは B2G 内で Gaia を使用できます。また、モバイル端末やデスクトップベースのシミュレータ内で B2G OS を実行することもできます。このガイドは、どちらがあなたのニーズに最適なのかを判断する助けになるでしょう。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Using_the_B2G_desktop_client">B2G OS シミュレータをビルドする</a></dt>
+ <dd>B2G OS シミュレータをビルドするためのガイド。これは、あなたのコンピュータ上の、実端末に似た Gecko ベースの環境で Gaia と Web アプリを動作させます。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Using_the_B2G_emulators">B2G OS エミュレータを使用する</a></dt>
+ <dd>B2G OS エミュレータのビルドと使い方、どのエミュレータをいつ使えば良いかについてのガイドです。</dd>
+ <dt><a href="/ja/docs/Mozilla/B2G_OS/Installing_Boot_to_Gecko_on_a_mobile_device">B2G OS をモバイル端末にインストールする</a></dt>
+ <dd>実際のモバイル端末に B2G OS をインストールする方法です。</dd>
+ </dl>
+ </td>
+ </tr>
+ </tbody>
+</table>
diff --git a/files/ja/archive/b2g_os/building_boot_to_gecko/fota_community_builds/index.html b/files/ja/archive/b2g_os/building_boot_to_gecko/fota_community_builds/index.html
new file mode 100644
index 0000000000..502d74e885
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_boot_to_gecko/fota_community_builds/index.html
@@ -0,0 +1,225 @@
+---
+title: FOTA コミュニティビルドのビルドとインストール
+slug: Archive/B2G_OS/Building_Boot_to_Gecko/FOTA_community_builds
+translation_of: Archive/B2G_OS/Building/FOTA_community_builds
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p class="summary">この記事では、あなたの電話機に B2G OS のコミュニティビルドをビルドするのに役立ちます。こうしたビルドには、このOS向けにアクティベートされたの"firmware over the air" (FOTA) 更新があります。</p>
+
+<h2 id="前提条件">前提条件</h2>
+
+<p>In order to build and install this build, you should have <em>a machine to build on</em> and <em>a host machine</em>. These machines may be the same machine.</p>
+
+<p>On the building machine, you should have all the software needed to make a build for your target phone (<a href="https://developer.mozilla.org/en-US/Firefox_OS/Firefox_OS_build_prerequisites">B2G OS build prerequisites</a> for more information).</p>
+
+<p>First, you need to check the device:</p>
+
+<ul>
+ <li>It must be a rooted device.</li>
+ <li>Recovery keys: We need to verify the keys that are used during recovery; these keys correspond to the AOSP keys. They are located in: /res/keys/. They should be the same.</li>
+ <li>Phone with already a recovery (librecovery)</li>
+</ul>
+
+<p>It is possible to build nightly, aurora, and beta versions; to do so, just create 3 different folders: nightly aurora beta (if you only want to build one branch, you can go with one directory only). Nightly is updated every night, aurora corresponds to the latest stable version, and beta corresponds to the version that came before aurora.</p>
+
+<p>Depending on your needs, you can choose to build every branch or only one or two. For every branch you need, follow the steps described on this page. Once you have reached the "Build" paragraph, the instructions will be branch-specific again.</p>
+
+<p>Prepare your first B2G build with the correct BRANCH, as if you were making a build for the target phone. Follow the instructions on this page (<a href="https://developer.mozilla.org/en-US/Firefox_OS/Preparing_for_your_first_B2G_build">Preparing for your first B2G build</a>) until the end of the section "Configuring B2G for your device".</p>
+
+<div class="note">
+<p>Note: if you have a specific manifest (xml) for <code>config.sh</code>, open this file and replace "<em>master</em>" with the the name of the branch you want in "B2G specific things".</p>
+</div>
+
+<p>Now, your working directory should be <code>[BRANCH]/B2G/</code></p>
+
+<p>DO NOT COMPILE YET! </p>
+
+<p>There are still a lot of changes to be done.</p>
+
+<p><strong>Signatures (only for B2G OS devices by default):</strong></p>
+
+<p>All ROMs for B2G OS devices must be signed; for Android devices, however, this is not mandatory.</p>
+
+<p>We can only provide gecko and gaia; the update will be signed to avoid its installation on the wrong phone.</p>
+
+<p>To do so you will need to have the signature of the root build; just keep build.prop on the phone:</p>
+
+<pre class="brush: bash">adb pull /system/build.prop</pre>
+
+<p>Now, find the value of <code>ro.build.fingerprint</code>; this is the fingerprint.</p>
+
+<p><strong>Localization:</strong></p>
+
+<p>You can build a version containing all the locales by adding this script (<code>langs.sh</code>) on <code>gaia/locales </code>or you can choose to clone only some languages. In this case, modify <code>gaia/locales/languages_all.json</code> to only fetch the languages you cloned <code>#TOVERIF</code> =&gt; <a href="https://developer.mozilla.org/en-US/Firefox_OS/Building#Building_multilocale">Building multilocale</a></p>
+
+<p>If you build for aurora or beta, modify <code>git checkoutmozillaorg/master</code> by using <code>git checkout v2.1</code> for aurora and <code>git checkout v2.0</code> for beta in<code> langs.sh</code></p>
+
+<p>Don't forget to update your repositories before creating a new build.</p>
+
+<p>langs.sh :</p>
+
+<pre class="brush: bash"> #!/bin/sh
+
+ set -e
+ GIT_ROOT="<a href="https://git.mozilla.org/releases/l10n/">https://git.mozilla.org/releases/l10n/</a>"
+ GIT_PROJ="/gaia.git"
+ LANGS=$(json_pp &lt; languages_all.json | grep ':' | cut -d':' -f1 | cut -d'"' -f2)
+ for lang in ${LANGS}; do
+     echo "Syncing $lang"
+     if [ ! -d ${lang}/.git/ ]; then
+         echo "No repo for ${lang}, cloning new one"
+         git clone ${GIT_ROOT}${lang}${GIT_PROJ} $lang || true
+     else
+         echo "Updating close for ${lang}"
+     cd ${lang} &amp;&amp; (git fetch origin &amp;&amp; git checkout origin/master) || true &amp;&amp; cd ..
+     fi;
+ done;
+</pre>
+
+<h2 id="ビルドの構成">ビルドの構成</h2>
+
+<p>You also need a <code>.userconfig</code> file for your build:</p>
+
+<p>Create a file at the root of <code>[BRANCH]/B2G/</code> named <code>.userconfig</code> and paste these lines :</p>
+
+<pre class="brush: bash"> export SYSTEM_PARTITION=/dev/block/platform/msm_sdcc.1/by-name/system # to specify the system partition, find info with adb shell cat /proc/mounts
+ export DATA_PARTITION=/dev/block/platform/msm_sdcc.1/by-name/userdata # to specify the data partition, find info with adb shell cat /proc/mounts
+ export VARIANT=userdebug #to include gaia
+ export PRODUCTION=1 #to have a user build
+ export B2G_UPDATER=1
+ export B2G_UPDATE_CHANNEL=aurora  #to modify [BRANCH]
+ export ENABLE_DEFAULT_BOOTANIMATION=true #to have B2G boot animation
+ export GAIA_DEV_PIXELS_PER_PX=1.5
+ export LOCALE_BASEDIR=locales/ #Languages folder
+ export LOCALES_FILE=locales/languages_all.json #all languages for the build
+ export GAIA_KEYBOARD_LAYOUTS="$((find gaia/apps/keyboard/js/layouts/*.js | sed -e 's|gaia/apps/keyboard/js/layouts/||g' -e 's/\.js$//g') | tr -s '\r\n' ',' | sed -e 's/,$//g')" #All keyboard, you can change this with keyboard you want
+ export GAIA_DEFAULT_LOCALE=fr #languages by default, fr (french) for example
+ export B2G_FOTA_DIRS="system/fonts system/b2g" #fira font bug
+ export FOTA_FINGERPRINTS="[your fingerprint]"
+</pre>
+
+<p>You will need to edit the following variables:</p>
+
+<ul>
+ <li><code>SYSTEM_PARTITION</code> (use <code>adb shell cat /proc/mounts</code> to know the partition)</li>
+ <li><code>DATA_PARTITION</code> (here again, you can use <code>adb shell cat /proc/mounts </code>)</li>
+ <li><code>B2G_UPDATE_CHANNEL</code> depending on your channel (aurora, beta, nightly)</li>
+ <li><code>GAIA_DEFAULT_LOCALE</code> depending on the locale you want</li>
+ <li>(not needed but perhaps useful: <code>GAIA_KEYBOARD_LAYOUTS</code> (see the comment))</li>
+ <li><code>FOTA_FINGERPRINTS</code>: add value of ro.build.fingerprint</li>
+ <li>
+ <p class="brush: bash">GAIA_DEV_PIXELS_PER_PX: to know the correct settings for your device, please, visit <a href="http://devicepixelratio.com/">this web-site </a>with this device.</p>
+ </li>
+</ul>
+
+<p>You can remove the parts following the pound sign (<code>#</code>) (including the sign itself). These are comments, and their only purpose is to explain what the line is doing.</p>
+
+<p>After that, you will need to setup information about update url:</p>
+
+<pre class="brush: bash"> cd gecko/
+ git checkout -b [VERSION NUMBER or master for nightly]-local --track mozillaorg/[VERSION NUMBER or master for nightly]
+ edit app.update.url in b2g/app/b2g.js you can keep %target% etc.. or you can just have something like
+ pref("app.update.url", "http://[DOMAIN]/[PHONE NAME]/[BRANCH]/update.xml");
+ </pre>
+
+<p>After that, in order to keep your modification, make a commit:</p>
+
+<pre class="brush: bash"> git commit -a
+ Repeat all these steps with the different branches to have a beta/aurora/nightly build.</pre>
+
+<p>Now the build configuration is done. All future steps must be repeated at each build in each branch folder.</p>
+
+<h2 id="ビルド">ビルド</h2>
+
+<p>Setup for building a (new) update is: </p>
+
+<pre class="brush: bash"> cd [BRANCH]/B2G/ #to be in the good folder
+ git pull # to update the repo code
+ ./repo sync #to update repo code for android and B2G do not use the -d option, doing this will remove your modification
+ cd gaia/locales/ &amp;&amp; ./langs.sh &amp;&amp; cd ../../ #to update languages
+
+ ./build.sh # to building b2g
+ ./build.sh gecko-update-fota # to build b2g and gaia in a .zip and .mar
+
+ BUILDID=$(grep 'BuildID=' objdir-gecko/dist/bin/application.ini | cut -d'=' -f2) # setup buildid variable
+ VERSION=$(grep '\nVersion=' objdir-gecko/dist/bin/application.ini | cut -d'=' -f2) # setup version of gecko variable
+ python tools/update-tools/build-update-xml.py -c out/target/product/[PHONE NAME]/fota-[PHONE NAME]-update.mar -O -u http://[DOMAIN]/[PHONE NAME]/[BRANCH]/fota-[PHONE NAME]-update.mar -i $BUILDID -v $VERSION -V $VERSION | tee /var/www/[BRANCH]/update.xml # Modify this command with your information: good path to .mar, good path to .mar in url of update.xml, the command output should be into a file update.xml; this update.xml will go on your host machine, this corresponds to the file call by the system to find new update.
+ cp out/target/product/[PHONE NAME]/fota-[PHONE NAME]-update.mar /var/www/[BRANCH]/fota-[PHONE NAME]-update.mar #to move .mar in the server
+ cp out/target/product/[PHONE NAME]/fota/partial/update.zip /var/www/[BRANCH]/update.zip #to move .zip in the server
+ pushd /var/www/[BRANCH]/ # to go in the server file
+ sha1sum $(ls) | tee sha1.checksum #to have a signature file
+ popd
+</pre>
+
+<p>If you want an IRC bot you can use ii or a build bot. I have made a script of this <a href="https://github.com/dattaz/build-firefoxos/blob/master/scriptauto.sh">HERE</a> (for more information on what a build bot is, see <a href="http://buildbot.net/">http://buildbot.net/</a> )</p>
+
+<p><strong>Flash the phone and try your build:</strong></p>
+
+<p>To install a build on a phone, just follow these steps:</p>
+
+<pre class="brush: bash"> adb reboot recovery</pre>
+
+<p>On the recovery go down using the down volume button to select the "apply update from adb" line, then touch the power button:</p>
+
+<pre class="brush: bash"> adb sideload out/target/product/[PHONE NAME]/fota/partial/update.zip</pre>
+
+<h2 id="コミュニティによる既存のビルド">コミュニティによる既存のビルド</h2>
+
+<ul>
+ <li>ZTE OPEN C: <a href="http://builds.firefoxos.mozfr.org">frenchmoz</a></li>
+ <li>ZTE OPEN &amp; Alcatel One Touch Fire : <a href="http://firefoxosbuilds.org">hispano community</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/building_boot_to_gecko/index.html b/files/ja/archive/b2g_os/building_boot_to_gecko/index.html
new file mode 100644
index 0000000000..97a12a4226
--- /dev/null
+++ b/files/ja/archive/b2g_os/building_boot_to_gecko/index.html
@@ -0,0 +1,553 @@
+---
+title: B2G OSのビルド
+slug: Archive/B2G_OS/Building_Boot_to_Gecko
+tags:
+ - B2G
+ - Boot
+ - Build documentation
+ - Firefox OS
+ - Gecko
+ - Guide
+translation_of: Archive/B2G_OS/Building
+---
+<div>
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+</div>
+
+<div class="summary">
+<p><span class="seoSummary">一度 <a href="/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites" title="ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites">ビルド環境のセットアップ</a> が完了して、コードの <a href="/ja/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build" title="ja/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build">最初の pull と configure</a> を実行すれば、Boot to Gecko をビルドすることができます。このガイドで方法を説明します。</span></p>
+</div>
+
+<h2 id="コードを更新する">コードを更新する</h2>
+
+<p>B2G をビルドするのが初めてでない方は、ビルドを始める前に最新のコードを pull したいかもしれません。これを行うには、B2G ツール群と、それに依存関係があるものを両方とも更新する必要があります。次のコマンドを実行してください:</p>
+
+<pre>git pull
+./repo sync -d
+</pre>
+
+<p>"-d" オプションは、様々なプロジェクトの HEAD を Android マニフェストのリビジョン (つまり、デフォルトのメインストリームリポジトリのバージョン) に切り替えます。これは、リポジトリ (および関連ソース) に変更を加えているが、master バージョンに一時的に戻す必要のある時に有用です。途中段階や作業中のディレクトリの変更はそのまま残ります (すべての説明は <a href="http://stackoverflow.com/questions/11448864/what-is-the-usage-for-repo-sync-d-in-android-source-repository">SO の質問</a> を参照してください)。ソースコードに触れていない場合は、次の通常のコマンドを実行してください:</p>
+
+<pre>git pull
+./repo sync</pre>
+
+<p>ターゲット名を指定すると、指定したターゲットのリポジトリを更新できます:</p>
+
+<pre>./repo sync gaia
+</pre>
+
+<p>repo コマンドには、興味深い、その他のオプションも利用可能です。<code>repo help</code> で多くの情報を得られます。</p>
+
+<h2 id="Boot_to_Gecko_のビルド">Boot to Gecko のビルド</h2>
+
+<div class="note">
+<p><strong>注記:</strong> ビルドする前に、<code>.userconfig</code> ファイルをセットアップしてビルドをカスタマイズしたいでしょう。詳細は、<a href="/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">.userconfig ファイルでカスタマイズ</a> を参照してください。</p>
+</div>
+
+<p>Boot to Gecko のビルドは、<code>build.sh</code> ツールを使用するだけです:</p>
+
+<pre>cd B2G
+./build.sh
+</pre>
+
+<p>コーヒーブレークの時間がやってきました。昼寝もできるかもしれません (特にこれが初回のビルドなら、Core i7 と 8GB RAM を搭載した PC なら 30 分くらいかかります)。前回のページの設定手順で、事前に展開された Android システムファイルのディレクトリを使っている場合、<code>build.sh<code> を実行する前に </code>ANDROIDFS_DIR</code> を設定すべきです。</p>
+
+<div class="note">
+<p><strong>補足:</strong> 新しいビルドを端末にフラッシュするための詳しい説明は、<a href="/ja/docs/Mozilla/Boot_to_Gecko/Installing_Boot_to_Gecko_on_a_mobile_device">B2G OS をモバイル端末にインストールする</a> をお読みください。</p>
+</div>
+
+<h3 id="特定モジュールのビルド">特定モジュールのビルド</h3>
+
+<p>Gecko など、特定のモジュールだけをビルドしたいときは、その名前を指定してください:</p>
+
+<pre>./build.sh gecko
+</pre>
+
+<p>一個のアプリケーションだけを更新するには、<code>BUILD_APP_NAME</code> 環境変数を使用すると、<code>gaia</code> モジュールのみをビルドできます :</p>
+
+<pre>BUILD_APP_NAME=calendar ./build.sh gaia</pre>
+
+<p>ビルド可能なモジュールのリストを取得するには、継ぎのコマンドを実行してください:</p>
+
+<pre>./build.sh modules
+</pre>
+
+<h3 id="使用するプロセッサコアの数の設定">使用するプロセッサコアの数の設定</h3>
+
+<p>デフォルトで、B2G ビルドスクリプトがビルドに使用するコア数は、搭載されたシステムのコア数に、実行する並列タスク数の 2 倍を足した数になります。これは、<code>build.sh</code> 実行時に <code>-j</code> パラメータを指定すると変更できます。この変更は、バックグラウンドでのビルド中に、他のことでシステムを使うため CPU 負荷を少し減らす必要のあるときに有効です。また、ビルドに問題がある場合も、実行しているのが一度に 1 つのタスクだけなら、ビルドプロセスからのエラー出力を読むのが楽ですよね!</p>
+
+<p>例えば、2 つの並行処理でビルドするには:</p>
+
+<pre>./build.sh -j2
+</pre>
+
+<p>しかし、この設定の最も一般的な使い方は、ビルドが並列で実行されないようにすることです。処理の出力が大変読みやすくなり、ビルドの問題が整理しやすくなります。これを実行するには:</p>
+
+<pre>./build.sh -j1
+</pre>
+
+<h3 id="複数ロケールのビルド">複数ロケールのビルド</h3>
+
+<p>複数ロケールのビルドを作成するには、以下の手順に従ってください:</p>
+
+<ol>
+ <li>どの Gaia 言語ファイルを使うかを決定します。現在、<a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_dev.json"><code>locales/languages_dev.json</code></a> と <a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_all.json"><code>locales/languages_all.json</code></a> が Gaia 言語ファイルとして使用しています。</li>
+ <li><a href="http://hg.mozilla.org/gaia-l10n">http://hg.mozilla.org/gaia-l10n</a> から適切なロケールを <code>gaia-l10n/</code> ディレクトリへ clone してください。<code>locales/</code> ディレクトリを使うこともできます。言語ファイルに記載されたロケールごとのリポジトリを clone する必要があります。</li>
+ <li>あなたの環境で、ステップ 2 のディレクトリの絶対パスを <code>LOCALE_BASEDIR</code> 環境変数に設定し、ステップ 1 の .json ファイルの絶対パスを LOCALES_FILE 環境変数に設定してください。</li>
+ <li>その他、デフォルトロケールを設定したい場合は、<code>GAIA_DEFAULT_LOCALE</code> にロケールコードを設定します。</li>
+</ol>
+
+<pre style="font-size: 12px;">cd gaia/locales/
+hg clone https://hg.mozilla.org/releases/gaia-l10n/v2_5/ja</pre>
+
+<p>環境変数を設定します:</p>
+
+<pre>export LOCALE_BASEDIR=$PWD/locales
+export LOCALES_FILE=$PWD/locales/languages_dev.json
+export GAIA_DEFAULT_LOCALE=ja
+</pre>
+
+<p><code>languages-dev.json</code> を独自の <code>languages-own.json</code> のパスに置き換えられます。それは次のようなものになります。locales ディレクトリに clone されたリポジトリ毎にエントリを追加する必要があるでしょう:</p>
+
+<pre>{
+ "en-US" : "English (US)",
+ "ja" : "日本語"
+}
+</pre>
+
+<p>バグ 884752 が修正 (2013年11月) されたため、(Gaia 内で入手可能なら) キーボードレイアウトを追加するのに、<code>GAIA_KEYBOARD_LAYOUTS</code> 環境変数が使用できます。</p>
+
+<p>バグ: https://bugzilla.mozilla.org/show_bug.cgi?id=884752</p>
+
+<p>レイアウト: https://github.com/mozilla-b2g/gaia/tree/v2.5/apps/keyboard/js/layouts</p>
+
+<p>例えば、スペイン語と日本語のキーボードレイアウトを追加するには、次のキーボードレイアウト名を追加します。</p>
+
+<pre>GAIA_KEYBOARD_LAYOUTS=en,es,jp-kanji</pre>
+
+<p>この時点で、初めて Gaia を端末にフラッシュする準備ができました。端末を接続し、リモートデバッグが有効かどうか、[Settings] &gt; [Device Information] &gt; [More Information] &gt; [Developer] の設定で確認してください。これは、一度だけする必要があります、REMOTE_DEBUGGER=1 のおかげで、Gaia の独自ビルドでこの設定をオンにできます:</p>
+
+<pre> make clean &amp;&amp; make production LOCALES_FILE=locales/languages-own.json</pre>
+
+<p>または</p>
+
+<pre> rm -rf out objdir-gecko &amp;&amp; LOCALES_FILE=locales/languages-dev.json ./build.sh</pre>
+
+<div class="note">
+<p>特定のブランチ向けのサポートされたすべてのロケールを clone または update したい場合は、<a href="https://raw.githubusercontent.com/dattaz/build-firefoxos/master/langs.sh">このスクリプト</a> が使えます。</p>
+</div>
+
+<h3 id="公式スタイルのエンジニアリングビルドをビルドする">公式スタイルのエンジニアリングビルドをビルドする</h3>
+
+<div class="note">
+<p>このセクションが古い場合は、<strong>Be </strong>job <a href="https://treeherder.mozilla.org/#/jobs?repo=mozilla-central">in Treeherder</a> のログを参照して最新の変数セットを得てください。</p>
+</div>
+
+<p><a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk-eng/">Mozilla により配布</a> されているような "公式" スタイルのエンジニアリングビルドをビルドするには、コマンドラインで次のオプションを使用する必要があります:</p>
+
+<pre>VARIANT=eng MOZILLA_OFFICIAL=1 B2G_SYSTEM_APPS=1 GAIA_OPTIMIZE=1 B2G_UPDATER=1 B2G_UPDATE_CHANNEL=default MOZ_TELEMETRY_REPORTING=1 MOZ_CRASHREPORTER_NO_REPORT=1 LOCALES_FILE=locales/languages_all.json GAIA_KEYBOARD_LAYOUTS=en,pt-BR,es,de,fr,pl,zh-Hans-Pinyin,zh-Hant-Zhuyin,en-Dvorak,jp-kanji ./build.sh</pre>
+
+<p>以下は、引数の説明です:</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">変数</th>
+ <th scope="col">説明</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>VARIANT=eng</td>
+ <td>That's how you usually define an engineering build. This is also the default value.</td>
+ </tr>
+ <tr>
+ <td>MOZILLA_OFFICIAL=1</td>
+ <td>Published build are Mozilla officials. This shows the B2G OS logo and <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/locales/branding/official/branding.en-US.properties">the branding</a>. Do not use it to publish your own.</td>
+ </tr>
+ <tr>
+ <td>B2G_SYSTEM_APPS=1</td>
+ <td>Sets the apps in the /system/b2g/webapps folder (instead of /data/local/webapps).</td>
+ </tr>
+ <tr>
+ <td>GAIA_OPTIMIZE=1</td>
+ <td>concatenate the Gaia sources.</td>
+ </tr>
+ <tr>
+ <td>B2G_UPDATER=1</td>
+ <td>Enables the nightly updates.</td>
+ </tr>
+ <tr>
+ <td>B2G_UPDATE_CHANNEL=default</td>
+ <td>The <a href="/Firefox_OS/Phone_guide/Flame/Updating_your_Flame#Switch_to_nightly_update_channel">B2G OS update channel</a>. "Default" points to mozilla-central.</td>
+ </tr>
+ <tr>
+ <td>MOZ_TELEMETRY_REPORTING=1</td>
+ <td>Enables <a href="https://wiki.mozilla.org/Telemetry">Telemetry</a> for submitting usage data.</td>
+ </tr>
+ <tr>
+ <td>MOZ_CRASHREPORTER_NO_REPORT=1</td>
+ <td>Disables the <a href="/docs/Environment_variables_affecting_crash_reporting">B2G Desktop UI when a crash occurs</a>, so the Gaia reporter only is used.</td>
+ </tr>
+ <tr>
+ <td>LOCALES_FILE=locales/languages_all.json</td>
+ <td>Sets the languages available in Gaia (the relative path starts from the gaia folder).</td>
+ </tr>
+ <tr>
+ <td>GAIA_KEYBOARD_LAYOUTS=en,pt-BR,es,de,fr,pl,zh-Hans-Pinyin,zh-Hant-Zhuyin,en-Dvorak,jp-kanji</td>
+ <td>Keyboards included in Gaia.</td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="Blob_フリーの完全システム_zip_をビルドする">Blob フリーの完全システム zip をビルドする</h3>
+
+<p>すでに Android が動作しているサポートされた端末を B2G 端末へ変換するために使用できる Blob-free のシステム zip をビルドできます。これは、著作権保護された blob が原因でビルドを配布できないという、長く続いた問題を解決します。私たちは、"端末から端末" を根拠としてこれを可能にしており、まずは Flame と Z3/Z3 Compact 端末のみがサポートされます。</p>
+
+<div class="note">
+<p><strong>注記</strong>: すでにビルドできているあらゆる端末に展開すべきですが、それぞれの端末でリリース前に確認が必要です。</p>
+</div>
+
+<p>このような zip は、次のオプションでビルドできます:</p>
+
+<pre class="bz_comment_text">./build.sh blobfree</pre>
+
+<p>これで、次のもので構成される zip ファイルが生成されます:</p>
+
+<ul>
+ <li>配布する zip で、パーティションの準備はできているが、イメージファイルではないもの (<code>BOOT</code>、<code>RECOVERY</code>、<code>SYSTEM</code> ディレクトリ)</li>
+ <li>サポート端末が adb プロパティと fastboot 変数で記述された <code>devices.json</code> ファイル。サポートが自明な実端末から読まれます。</li>
+ <li>リカバリ fstab。パーティションとイメージ間のファイル配置を対応付けます</li>
+ <li><code>dt.img</code>。必要に応じて。</li>
+ <li><code>extract-files.sh</code> からの生成物をベースとした、Blob からシステムへの対応付け。</li>
+</ul>
+
+<p>作成された zip は、B2G インストーラアドオンで使用される予定です (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1166276" title="[meta] Getting a B2G Installer Addon">バグ 1166276</a> 参照)。</p>
+
+<h2 id="既知のエラー">既知のエラー</h2>
+
+<h3 id="Build_failed!">"Build failed!"</h3>
+
+<p>全般的な "Build failed" というメッセージが表示された時は、いつも端末をコンピュータに接続し直すべきです。様々な理由で端末がアンマウントされていることがあります。</p>
+
+<div class="note">
+<p><strong>Keon 用の B2G の configure やビルドは Mac で "実行できない" ので注意してください。</strong>この端末用には Linux を使用する必要があります。</p>
+</div>
+
+<h3 id="Mountain_Lion_固有のビルドエラー">Mountain Lion 固有のビルドエラー</h3>
+
+<p>1. OS X 10.8 "Mountain Lion" (Xcode 4.4.1 以降) をビルドに使用して、下記のエラーが起こった場合:</p>
+
+<pre style="font-size: 14px;">external/qemu/android/skin/trackball.c:130:25: error: 'M_PI' undeclared (first use in this function)</pre>
+
+<p><code>B2G/external/qemu/Makefile.android</code> ファイルを編集し、78 行目に次を追加してください:</p>
+
+<pre>MY_CFLAGS += -DM_PI=3.14159265358979323846264338327950288 #/* B2G_fix: not finding M_PI constant */
+</pre>
+
+<p>2. "Mountain Lion" 上で ./build.sh の実行中に、下記のエラーが起こった場合:</p>
+
+<pre>/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h:797:9: error: too many #pragma options align=reset</pre>
+
+<p><code>/System/Library/Frameworks/IOKit.framework/Headers/usb/USB.h</code> ファイル内の全ての '#pragma options align=reset' を '#pragma pack()' に置き換えてください。</p>
+
+<h3 id="Undefined_symbols__sqlite3_androidopt_handle_pragma_and__sqlite3_androidopt_open">Undefined symbols "_sqlite3_androidopt_handle_pragma" and "_sqlite3_androidopt_open"</h3>
+
+<p>このエラーは、OS X 10.7 以降で Xcode 4.5 以降を使用してビルドしている時に発生します。これを直すには、<code>external/sqlite/dist/Android.mk</code> ファイルに <a href="https://groups.google.com/forum/#%21msg/android-building/yAfPyUqCsiQ/7zvICk4GWjYJ">https://groups.google.com/forum/#!msg/android-building/yAfPyUqCsiQ/7zvICk4GWjYJ</a> のパッチを適用してください。</p>
+
+<h3 id="KeyedVector.h19331_error_indexOfKey_was_not_declared_in_this_scope">KeyedVector.h:193:31: error: indexOfKey was not declared in this scope</h3>
+
+<p>このエラーは、gcc のバージョンが新しすぎる場合に発生します。ただし、私たちがシステムをビルドするのに新しいバージョンの GCC を使うようアップグレードすれば、問題ではなくなります。詳しい情報は、<a href="/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">.userconfig ファイルでカスタマイズ</a> を参照してください。</p>
+
+<h3 id="arm-linux-androideabi-g_Internal_error_Killed_(program_cc1plus)">arm-linux-androideabi-g++: Internal error: Killed (program cc1plus)</h3>
+
+<p>このエラーが表示されたら、おそらく空きメモリが不足しています。<code>./build.sh</code> を実行する前に十分な空きメモリを確保してください。4GB の RAM があればうまく実行できるでしょう。</p>
+
+<h3 id="...is_referenced_by_DSO_error">"...is referenced by DSO" error</h3>
+
+<p>エミュレータのビルド時に、このようなエラーが発生した場合:<br>
+ /usr/bin/ld: out/host/linux-x86/obj/EXECUTABLES/triangleCM_intermediates/triangleCM: hidden symbol `_XGetRequest' in out/host/linux-x86/obj/STATIC_LIBRARIES/libSDL_intermediates/libSDL.a(SDL_x11dyn.o) is referenced by DSO.</p>
+
+<p>binutils のいくつかのバージョンでこのエラーが発生します。Debian 安定版では、<code>binutils-gold</code> パッケージをインストールして <em>gold</em> リンカを使用してください。注意点として、<em>gold</em> リンカは <code>binutils</code> によりインストールされますが、デフォルトでは使用されません。ただ <code>binutils-gold</code> が実行します。</p>
+
+<h3 id="error_device_not_found">error: device not found</h3>
+
+<p>./build.sh の開始時に、例えば次のように "error: device not found" エラーのメッセージが表示された場合:</p>
+
+<pre>Blob setup script has changed, re-running
+Backing up system partition to backup-flame
+error: device not found
+Pulling files from ../../../backup-flame
+cat: ../../../backup-flame/system/build.prop: No such file or directory
+cat: ../../../backup-flame/system/build.prop: No such file or directory
+Invalid system backup - Wrong base version found.
+
+Do this:
+1. Delete backup-flame
+2. Flash your device with KK based images from the vendor
+3. Try building again
+
+&gt; Build failed! &lt;</pre>
+
+<p>この場合、<code>adb devices</code> コマンドを実行して、端末が adb でアクセス可能か確かめてください。端末が接続されていれば、adb デバッグが端末の開発者メニューで有効になっているか確認し、端末がロックされていてもアクセスできるようするため、画面ロックをオフにしてください。環境設定アプリで "Screen Lock" セクションの "Lock Screen" のチェックを外してください。</p>
+
+<h3 id="ビルドシステムのテスト中にビルドエラーが発生した場合">ビルドシステムのテスト中にビルドエラーが発生した場合</h3>
+
+<p>ビルドシステムのビルド後のテスト中に、時々 (特にビルドツールやオペレーティングシステムの更新後に) このような奇妙なエラーが発生することがあります:</p>
+
+<pre>Generating permissions.sqlite...
+test -d profile || mkdir -p profile
+run-js-command permissions
+WARNING: permission unknown:offline-app
+WARNING: permission unknown:indexedDB-unlimited
+build/permissions.js:122: NS_ERROR_UNEXPECTED: Component returned failure code: 0x8000ffff (NS_ERROR_UNEXPECTED) [nsIPermissionManager.add]
+make[1]: *** [permissions] Error 3
+make: *** [gaia/profile.tar.gz] Error 2</pre>
+
+<p>このような状況になったら、<code>gaia/xulrunner-sdk</code> ディレクトリを削除し、コードを再度 pull してみてください:</p>
+
+<pre>rm -r gaia/xulrunner-sdk
+</pre>
+
+<p>これで、ビルドシステムが自動的にダウンロードしたコンパイル済みの <a href="/ja/docs/XULRunner" title="/ja/docs/XULRunner">XULRunner</a> のコピーが削除されます。次回のビルド時に、XULRunner の新しいコピーが自動的に取得されます。</p>
+
+<h3 id="Cannot_fetch_platformlibcore">Cannot fetch platform/libcore</h3>
+
+<p>Nexus S 用の B2G ビルド (<code>./config.sh nexus-s</code>) を設定しようとして libcore 関連のエラーが発生する場合、これは、提供者である linaro git の問題です。これを修正するには、下記のように B2G マニフェストを checkout してください:</p>
+
+<pre class="brush: bash">git clone https://github.com/mozilla-b2g/b2g-manifest.git</pre>
+
+<p>リポジトリ内の <code>nexus-s.xml</code> ファイルを修正し、linaro git エントリを asop エントリーに置き換え、下記のようにします:</p>
+
+<pre class="brush: xml"> </pre>
+
+<p>変更をコミット (<code>git commit -a</code>) し、次にチェックアウトしたメイン B2G リポジトリのマスターブランチ内の <code>config.sh</code> ファイルを変更して、Mozilla マニフェストの代わりにあなたが修正したローカルのマニフェストを指すようにします:</p>
+
+<pre class="brush: bash">GITREPO=${GITREPO:-"file:///home/path/to/my/b2g-manifest"}</pre>
+
+<h3 id="Mac_で_Xcode_5_を使用してビルドする時の_clang_エラー">Mac で Xcode 5 を使用してビルドする時の clang エラー</h3>
+
+<p>Mac OS X 10.8 上の Xcode 5 でビルドする場合、下記の様なエラーを見ることがあります:</p>
+
+<pre class="brush: bash">clang: error: argument unused during compilation: '-include system/core/include/arch/darwin-x86/AndroidConfig.h'
+clang: error: argument unused during compilation: '-U DEBUG'
+clang: error: argument unused during compilation: '-U DEBUG'
+clang: error: argument unused during compilation: '-MF out/host/darwin-x86/obj/EXECUTABLES/obbtool_intermediates/Main.d'
+make: *** [out/host/darwin-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1</pre>
+
+<p>これは、Xcode 5 が g++ コンパイラを <code>/usr/bin</code> に変更しているのが原因で、コンパイル時にそれを使おうとする時にビルドプロセスが停止します。この問題を回避するには、<code>build/core/combo/HOST_darwin-x86.mk</code> の次の行を編集してください:</p>
+
+<pre class="brush: bash">HOST_CXX := g++</pre>
+
+<p>から</p>
+
+<pre class="brush: bash">HOST_CXX := g++-4.7
+ifeq (,$(wildcard /usr/local/bin/g++-4.7))
+ HOST_CXX := g++
+endif</pre>
+
+<p>に書き換えます。次に、gcc をアンインストールするため、brewを 使います(すでに <a href="https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Run_Firefox_OS_Mac_Bootstrap">Mac OS bootstrap script</a> を使っていることを想定しています。そうでない場合は、そのステップを完了しておく必要があります):</p>
+
+<pre class="brush: bash">brew uninstall gcc-4.7</pre>
+
+<p>ここで c++ と multilib をサポートした gcc を再インストールします:</p>
+
+<pre class="brush: bash">brew install --enable-cxx https://gist.github.com/artlogic/6988658/raw/aeb9d1ea098274ad3f3fe2637b9df7f308a8a120/gcc-4.7.rb</pre>
+
+<p>PATH に <code>/usr/local/bin</code> の記載があることを確認してください。次のコマンドで、この環境変数を一時的に設定できます:</p>
+
+<pre class="brush: bash">export PATH=/usr/local/bin:$PATH</pre>
+
+<p>上記をホームディレクトリの <code>.bash_profile</code> に追加しておけば、この変更を永続的にできます。</p>
+
+<p>PATH の設定後、下記コマンドを両方実行してください:</p>
+
+<pre class="brush: bash">gcc-4.7 -v
+
+g++-4.7 -v</pre>
+
+<p>上記のコマンドのいずれかが失敗する場合、次のコマンドのように brew で GCC を再リンクしてください:</p>
+
+<pre class="brush: bash">brew link --overwrite gcc-4.7</pre>
+
+<p><code>/usr/bin/c++</code> が Xcode 5 インストール時のように clang++ を指していない場合もありえます。次のコマンドで確認できます:</p>
+
+<pre class="brush: bash">ls -l /usr/bin/c++</pre>
+
+<p>このようなものが返ってくるはずです:</p>
+
+<pre class="brush: bash">lrwxr-xr-x 1 root admin 7 Sep 19 11:40 /usr/bin/c++ -&gt; clang++
+</pre>
+
+<p>c++ が clang++ 以外を指してる場合は、次のコマンドで更新してください:</p>
+
+<pre class="brush: bash">sudo rm /usr/bin/c++
+
+sudo ln -s /usr/bin/clang++ /usr/bin/c++</pre>
+
+<h3 id="systemcoreincludeloglog.h3820_error_stdarg.h_No_such_file_or_directory">"system/core/include/log/log.h:38:20: error: stdarg.h: No such file or directory"</h3>
+
+<p>このエラーは、Mac OSX 10.10 上で 10.6 SDK を使用してビルドする場合に起こります。または、ビルドしようとしているものがビルドコンフィグでサポートされていない他の SDK 設定でも起こります。詳細は、<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1071266" title="FIXED: [flame] XCode 6 only provides 10.9 SDK causing flame builds to fail">バグ 1071266</a> を参照してください。</p>
+
+<h3 id="cp_cannot_stat_'......backup-flamesystemliblibalsa-intf.so'_No_such_file_or_directory">cp: cannot stat '../../../backup-flame/system/lib/libalsa-intf.so': No such file or directory</h3>
+
+<p>このエラーは、ビルドシステムがバックアップディレクトリからのファイルを使おうとしてファイルが見つからないときに起こります。このような問題はいくつかの原因が考えられます。</p>
+
+<ol>
+ <li>スクリプトが端末からコンピュータへデータを取得している間に USB 接続が壊れた。</li>
+ <li>誤ったターゲットをビルドしている (誤った端末または誤ったベースの Android バージョン)。</li>
+ <li>スクリプトが想定するベースビルドを持っていない。</li>
+</ol>
+
+<p>下記のサブセクションで、詳細な原因を探ります。</p>
+
+<div class="note">
+<p><strong>Note</strong>: The backup directory is a copy of some files from your target device so that the build system can produce a full image, including binary files that we don't have the source for. Usually we can't distribute these files — that's why you need to fetch them from an existing device containing a base build obtained from the vendor.</p>
+</div>
+
+<h4 id="The_USB_connection_is_broken_while_pulling_data">The USB connection is broken while pulling data</h4>
+
+<p>When building, if the backup directory doesn't exist, the script will automatically start fetching the files from your attached device. At the end of this process you should see lines similar to the following:</p>
+
+<pre class="brush: bash">143 files pulled. 0 files skipped.
+3003 KB/s (512036044 bytes in 30.662s)</pre>
+
+<p>If you see pulling messages from adb (lines starting with <code>pull</code>) but don't see this, this means the connection was broken before completion. In this case you should delete your backup directory and try building again.</p>
+
+<p>Note: Some base builds will disable adb when the phone is locked. If that's the case for you, you'll need to disable screenlock so that it doesn't lock itself.</p>
+
+<h4 id="You're_building_for_the_wrong_target">You're building for the wrong target</h4>
+
+<p>The target is the parameter you gave to the config.sh script in the previous step. To check your configured target, just run:</p>
+
+<pre class="brush: bash">$ cat .config</pre>
+
+<p>And you should get an output like the following:</p>
+
+<pre class="brush: bash">...
+DEVICE_NAME=flame-kk
+PRODUCT_NAME=flame</pre>
+
+<p>The <code>DEVICE_NAME</code> is what you're looking for. For example, current <code>flame</code> builds should use <code>flame-kk</code>, not <code>flame</code>.</p>
+
+<p>If the <code>DEVICE_NAME</code> is wrong, then you need to <a href="/en-US/docs/Mozilla/Firefox_OS/Preparing_for_your_first_B2G_build">reconfigure using config.sh</a>, delete your current backup directory (<code>backup-flame</code> for the flame), and rerun the build script.</p>
+
+<h3 id="エミュレータのビルドの問題">エミュレータのビルドの問題</h3>
+
+<p><strong>emulator</strong> ビルドを作成する時は、下記の問題に注意してください:</p>
+
+<div class="warning">
+<p><strong>重要</strong>: x86 エミュレータを使用すべきではありません。インストールが困難であまりサポートされていません。</p>
+</div>
+
+<p>エミュレータ用のビルドシステムは、32bit と 64bit の両方をビルドします。エミュレータは OpenGL に依存しているため、32bit/64bit 両方の OpenGL ライブラリをシステムにインストールする必要があります (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=897727" title="B2G emulator build requires both 32-bit and 64-bit libgl, but Debian's libgl1-mesa-dev package is not multilib compatible">バグ 897727</a> の議論を参照)。</p>
+
+<p>この問題を解決するには、2 通りの方法があります:</p>
+
+<h4 id="解決策_1_32bit_と_64bit_両方の_OpenGL_ライブラリをインストールして正しいシンボリックリンクを保つ">解決策 #1: 32bit と 64bit 両方の OpenGL ライブラリをインストールして正しいシンボリックリンクを保つ</h4>
+
+<p>ご使用の linux ディストリビューションに OpenGL ライブラリの <code>multilib</code> パッケージがあれば、それをインストールしてみてください。シンボリックリンクは手動で作ることになるでしょう。</p>
+
+<p>例えば、以下は Ubuntu 12.04 LTS x86-64 の場合です。このディストリビューションでは、<code> libgl1-mesa-dev</code> パッケージの x86-64 版と i386 版を同時にインストールできません。しかし、下記組み合わせのパッケージを同時インストールできます:</p>
+
+<pre class="brush: bash">sudo apt-get install libgl1-mesa-dev libglapi-mesa:i386 libgl1-mesa-glx:i386</pre>
+
+<p>このコマンドを実行後、エミュレータのビルドを成功させるには、まだ手動でシンボリックリンクを作る必要があります:</p>
+
+<pre class="brush: bash">sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
+sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so</pre>
+
+<h4 id="解決策_2_エミュレータにパッチを当てて_64bit_版だけをビルドする">解決策 #2: エミュレータにパッチを当てて 64bit 版だけをビルドする</h4>
+
+<p>単に <a href="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280" title="https://bug897727.bugzilla.mozilla.org/attachment.cgi?id=786280">このパッチ</a> を B2G リポジトリ下の <code>sdk/</code> Git リポジトリに適用します。これは、64bit システムでは、B2G エミュレータが 64bit のエミュレータだけをビルドするようにします。 これで、multilib のいかなる問題も回避できます。64bit システムでは、いずれにせよ 32bit エミュレータを使用しません。これは、このパッチが最終的にゴミクズ化(原語:bit-rot)するまでは最もシンプルな解決策です。</p>
+
+<h3 id="Android_can_only_be_built_by_versions_3.81_and_3.82">Android can only be built by versions 3.81 and 3.82</h3>
+
+<p>For Ubuntu you can compile an older version by <a href="http://packages.ubuntu.com/trusty/make">downloading this version</a>.</p>
+
+<p>Install using the following:</p>
+
+<pre class="brush: bash">tar xvzf make-dfsg_3.81.orig.tar.gz
+cd make-dfsg-3.81.orig/
+./configure
+make
+make check
+make install
+echo alias make=\'$(pwd)\' &gt;&gt; B2G/.userconfig</pre>
+
+<h2 id="次のステップへ">次のステップへ</h2>
+
+<p>ビルド後の次のステップは、Boot to Gecko をエミュレータ用にビルドしたのか、もしくは実際のモバイル端末用なのかによって異なります。詳細は以下の記事を参照してください:</p>
+
+<ul>
+ <li><a href="/ja/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators" title="ja/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators">B2G エミュレータを使用する</a></li>
+ <li><a href="/ja/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client" title="ja/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client">B2G デスクトップクライアントを使用する</a></li>
+ <li><a href="/ja/docs/Mozilla/Boot_to_Gecko/Installing_Boot_to_Gecko_on_a_mobile_device" title="ja/docs/Mozilla/Boot_to_Gecko/Installing_Boot_to_Gecko_on_a_mobile_device">Boot to Gecko をモバイル端末にインストールする</a></li>
+ <li><a href="/ja/docs/Mozilla/Boot_to_Gecko/Pandaboard" title="/ja/docs/Mozilla/Boot_to_Gecko/Pandaboard">Boot to Gecko を pandaboard にインストールする</a></li>
+</ul>
+
+<h3 id="B2GB2G_OSGaia_のバグ登録">B2G/B2G OS/Gaia のバグ登録</h3>
+
+<p>いったん B2G/B2G OS のビルドを終えて実行できるようになったら、特定バージョンのバグを登録したくなるでしょう。B2G OS コミュニティは可能な限り効率的な改善ができます。<a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">Bugzilla でバグを報告</a> したいときは、"B2G OS" プロジェクトの下に、バージョン情報を含めて報告してください:</p>
+
+<ol>
+ <li>最初に、メジャーバージョン番号、例えば <em>2.5.0.0-prerelease</em> を教えてください。端末では <em>Settings &gt; Device Information</em> から確認できます。</li>
+ <li>gaia と gecko リポジトリから現在のハッシュを取得することで、もっと詳細なバージョン ID を報告できます。このようにして:
+ <pre class="brush: bash">#!/bin/bash
+(cd gaia; echo "gaia $(git rev-parse HEAD)")
+(cd gecko; echo "gecko $(git rev-parse HEAD)")</pre>
+ </li>
+</ol>
diff --git a/files/ja/archive/b2g_os/choosing_how_to_run_gaia_or_b2g/index.html b/files/ja/archive/b2g_os/choosing_how_to_run_gaia_or_b2g/index.html
new file mode 100644
index 0000000000..0a2d68d898
--- /dev/null
+++ b/files/ja/archive/b2g_os/choosing_how_to_run_gaia_or_b2g/index.html
@@ -0,0 +1,77 @@
+---
+title: Gaia もしくは B2G OS の実行方法を選択する
+slug: Archive/B2G_OS/Choosing_how_to_run_Gaia_or_B2G
+tags:
+ - B2G OS
+ - Build documentation
+translation_of: Archive/B2G_OS/Choosing_how_to_run_Gaia_or_B2G
+---
+<p>どのような用途で使用するかによって、Firefox OS もしくは <a href="/ja/Mozilla/Boot_to_Gecko/Introduction_to_Gaia" title="ja/Mozilla/Boot_to_Gecko/Introduction_to_Gaia">Gaia</a> ユーザインタフェースを実験する際に、よく考慮すべきオプションがあります。選択可能なのは以下のオプションですが、どれにも考えるべきメリットとデメリットがあり、他のものよりもフレキシブルに利用できるものもあります。</p>
+
+<h2 id="デスクトップで_B2G_を実行する">デスクトップで B2G を実行する</h2>
+
+<p>Firefox OS シミュレータをビルドして、その上で Gaia を実行することが可能です。このソフトウェアは Firefox をベースにしていますが、端末上の Firefox OS エクスペリエンスと非常に良く似た振る舞いをします。現在 Mozilla は開発者向けに、<a href="https://wiki.mozilla.org/Gaia/Hacking#ATTENTION_-_Desktop_builds_now_available" title="https://wiki.mozilla.org/Gaia/Hacking#ATTENTION_-_Desktop_builds_now_available">このアプリケーションのナイトリービルド</a>を提供しています。Firefox コードベースや C++ プロジェクトのビルドに精通している場合は、このアプリケーションを<a class="link-https" href="https://wiki.mozilla.org/Gaia/Hacking#Building_B2G" title="https://wiki.mozilla.org/Gaia/Hacking#Building_B2G">これらの説明に従って</a>自分でビルドすることができます。</p>
+
+<h3 id="長所">長所</h3>
+
+<ul>
+ <li>モバイルサイズのビューポートを利用できます</li>
+ <li>あらゆる点で実際のモバイル端末に似たエクスペリエンスです</li>
+ <li>(全てではありませんが)より多くの端末 API が利用できます</li>
+</ul>
+
+<h3 id="短所">短所</h3>
+
+<ul>
+ <li>C/C++ ビルド環境を実際にインストールする必要があります</li>
+ <li>Gecko とシミュレータを自分でビルドする必要があります</li>
+ <li>Firefox 開発者ツールは利用できません</li>
+</ul>
+
+<h3 id="B2G_シミュレータで実行する理由">B2G シミュレータで実行する理由</h3>
+
+<p>これは、程よくバランスのとれたテスト及び開発のソリューションです。何かテストしたいと思った時に、毎回実際にスマートフォンのフラッシュメモリに書き込まなくても、端末に似た環境で、あなたのアプリやその他のコードがどんな感じなのか、確認するのに便利です。</p>
+
+<div class="note"><strong>注意 :</strong> アプリをリリースする前に、実際のハードウェア上でのテストが絶対に必要です!</div>
+
+<h3 id="シミュレータの種類">シミュレータの種類</h3>
+
+<p>いくつかの種類の Firefox OS シミュレータ を使用できます。</p>
+
+<dl>
+ <dt><a href="/docs/Mozilla/Boot_to_Gecko/Using_Firefox_OS_Simulator" title="/docs/Mozilla/Boot_to_Gecko/Using_Firefox_OS_Simulator">Firefox OS シミュレータ アドオン</a></dt>
+ <dd>この拡張機能は、Firefox OS 上で動作するテストアプリケーションのための主要なツールであり、ほとんどのユーザに推奨される解決法です。これには開発者ツールが含まれており、テスト環境にアプリケーションを追加することもサポートされます。</dd>
+ <dt>開発者向けデスクトップビルド</dt>
+ <dd>これらはスタンドアロンのアプリケーションであるシミュレータを構築します。コアな Firefox OS の開発者による技術的な特徴の検証を支援します。</dd>
+ <dt>ローカライザ向けデスクトップビルド</dt>
+ <dd>ローカライザ向けビルドは、ローカライズチームが Firefox OS と Firefox OS アプリのローカライズをテストするのに役立ちます。</dd>
+</dl>
+
+<h2 id="エミュレータ内で_B2G_を実行する">エミュレータ内で B2G を実行する</h2>
+
+<p>この方法はシミュレータ (Firefox OS システムの高めのレベルのみを複製しています) と、実際の端末 (全エクスペリエンスを得られます) の中間にあります。シミュレータと比較して、<a href="/docs/Mozilla/B2G_OS/Using_the_B2G_emulators">エミュレータ</a> は ARM ベースのシステム (x86 エミュレータは廃止予定) を実行し、これは電話機のエクスペリエンスのほぼすべて(ネットワーク/ラジオのイベントのいくつかを除き)を複製しています。</p>
+
+<h2 id="モバイル端末上で_B2G_を実行する">モバイル端末上で B2G を実行する</h2>
+
+<p>B2G や Gaia の開発成果や Web アプリを最も完璧にテストする方法は、実際のモバイル端末にビルドした Firefox OS をインストールすることです。これは最も面倒な作業でもあります。</p>
+
+<h3 id="長所_2">長所</h3>
+
+<ul>
+ <li>完璧なモバイル端末エクスペリエンスが得られます</li>
+ <li>全ての端末 API が利用できます</li>
+ <li>実際の端末の使用法でコードのパフォーマンスが体験できます</li>
+</ul>
+
+<h3 id="短所_2">短所</h3>
+
+<ul>
+ <li>C/C++ ビルド環境を全てインストールする必要があります</li>
+ <li>Gecko と Gaia を自分でビルドする必要があります</li>
+ <li>B2G オペレーティングシステムをインストールする、互換性のあるモバイル端末が必要です</li>
+ <li>現在インストールされているオペレーティングシステムがなんであろうと削除して、B2G を端末に書き込む必要があります</li>
+</ul>
+
+<h3 id="モバイル端末で_B2G_を実行する理由">モバイル端末で B2G を実行する理由</h3>
+
+<p>これは、明らかに、B2G もしくは Gaia 上で、コードや Web プロジェクトのテストをする最も正確なやり方です。実際のモバイルハードウェア上で実行することで、プロジェクトがきちんと実行されるか、きれいに見えるか、全ての端末 API が正しく使用されているかを、確認することができます。付け加えるなら、どんなコードでもリリースする前には、<strong>常に</strong>実際のハードウェアでテストすべきです。これを行わないと、どんなまずい影響が起こる可能性があるのか予測するのは困難です。</p>
diff --git a/files/ja/archive/b2g_os/customization_with_the_.userconfig_file/index.html b/files/ja/archive/b2g_os/customization_with_the_.userconfig_file/index.html
new file mode 100644
index 0000000000..f1195cb381
--- /dev/null
+++ b/files/ja/archive/b2g_os/customization_with_the_.userconfig_file/index.html
@@ -0,0 +1,255 @@
+---
+title: .userconfig ファイルでビルドをカスタマイズする
+slug: Archive/B2G_OS/Customization_with_the_.userconfig_file
+tags:
+ - Firefox OS
+ - build
+ - userconfig
+ - ビルド
+translation_of: Archive/B2G_OS/Customization_with_the_.userconfig_file
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p><div class="summary">
+<p>B2G ソースの <code>.userconfig</code> ファイルに bash コードを記入することで、ビルドプロセスのある面をカスタマイズできます。この記事では、変更により達成できることと、その方法について見ていきます。</p>
+</div>
+
+<p><code>.userconfig</code> ファイルは、ソースコード管理下に入らないので、ソースツリーを更新しても上書きされることはありません。これは、<a href="https://github.com/mozilla-b2g/B2G">B2G ツリーのルート</a> に作成する必要があります。つまり、<code>flash.sh</code>、<code>build.sh</code> などと同一のディレクトリに置きます。このファイルは、config やビルドを始める前に追加しておく必要があります。</p>
+
+<p><code>.userconfig</code> ファイルは、(存在する場合) <code>load-config.sh</code> スクリプトから実行され、このスクリプトは以下のスクリプトから実行されます: <code>setup.sh</code> から呼び出される <code>flash.sh</code> と <code>build.sh</code>、<code>run-gdb.sh</code>、<code>run-emulator.sh</code>、<code>tools/mach_b2g_bootstrap.py</code>。<code>run-<em>*</em>.sh</code> スクリプトは、ビルドする Gecko の場所を決めるのに <code>.userconfig </code> を使います。<code>mach_b2g_boostrap.py</code> スクリプトは、すべての B2G に関連する <a href="https://developer.mozilla.org/docs/Developer_Guide/mach">mach</a> コマンドによって使われます。</p>
+
+<div class="warning">
+<p><strong>重要</strong>: <code>.userconfig</code> ファイルは、ホームディレクトリではなく、B2G ソースディレクトリのルートに置いてください。</p>
+</div>
+
+<h2 id="Gecko_のソースツリーを変更する">Gecko のソースツリーを変更する</h2>
+
+<p>デフォルトでは、github のツリーからクローンされた gecko ツリーがビルドに使用されます。<a href="/docs/Developer_Guide/Source_Code/Mercurial#mozilla-inbound_%28used_for_landing_your_patches%29" title="/docs/Developer_Guide/Source_Code/Mercurial#mozilla-inbound_%28used_for_landing_your_patches%29">mozilla-inbound</a>、または <a href="/docs/Developer_Guide/Source_Code/Mercurial#mozilla-central_%28main_development_tree%29" title="/docs/Developer_Guide/Source_Code/Mercurial#mozilla-central_%28main_development_tree%29">mozilla-central</a> を使用したい人もいるでしょう。これを行うにはソースの複製を好きな場所に作っておいてから、<code>.userconfig</code> ファイルに <code>GECKO_PATH</code> を設定する行を追加します。例えば:</p>
+
+<pre>export B2G_DIR=${B2G_DIR:-$(cd $(dirname $0); pwd)}
+echo "B2G_DIR = ${B2G_DIR}"
+
+export GECKO_PATH=${B2G_DIR}/mozilla-inbound
+echo "GECKO_PATH = ${GECKO_PATH}"
+</pre>
+
+<div class="note">
+<p><strong>注記</strong>: カスタムされた Gecko を Mac OS X でビルドする場合、<code>mozilla-central</code> のディレクトリは大文字小文字を区別するファイルシステムである必要があります。そうでないと <code>GECKO_PATH</code> が無視されます。ファイルシステムが大文字小文字を区別するかどうかをチェックするには、ターミナルウィンドウで次のコマンドを実行します:</p>
+
+<pre>echo -n This file system is case-&gt;tmp; echo -n in&gt;&gt;TMP; echo sensitive&gt;&gt;tmp; cat tmp</pre>
+
+<p><code>B2G_DIR</code> を上記のように取得しておくと、<code>.userconfig</code> でハードコードされたパスを扱わなくて済みます。</p>
+</div>
+
+<h2 id="Gaia_の設定を変更する">Gaia の設定を変更する</h2>
+
+<p>時には、Gaia の設定を変更できるようにしたいことがあるでしょう。例えば、ユーザビルドで adb を有効にするなど。gaia の Makefile は、<code>build/settings.py</code> の呼び出し時に <code>--override build/custom-settings.json</code> のパラメータを渡すので、<code>custom-settings.json</code> ファイルに <code>{"devtools.debugger.remote-enabled": true}</code> を書き込む bash を書くことができます。ここでは、<code>custom-settings.json</code> の変更は、必要でない限り避けるようにします。実際は <code>custom-settings.json.new</code> に書いておき、内容が <code>custom-settings.json</code>と異なる場合に置き換えます。</p>
+
+<pre>export GAIA_PATH=${GAIA_PATH:-$(cd gaia; pwd)}
+export CUSTOM_SETTINGS="${GAIA_PATH}/build/config/custom-settings.json"
+cat &gt; "${CUSTOM_SETTINGS}.new" &lt;&lt;eof {"devtools.debugger.remote-enabled":="" true}="" eof="" if="" [[="" -f="" ${custom_settings}="" ]]="" &amp;&amp;="" cmp="" "${custom_settings}"="" "${custom_settings}.new"=""&gt;&amp; /dev/null; then
+ rm "${CUSTOM_SETTINGS}.new"
+else
+ mv "${CUSTOM_SETTINGS}.new" "${CUSTOM_SETTINGS}"
+fi
+</pre>
+
+<p>もう一つの簡単な方法は、Gaia 作業ディレクトリ内の <code>build/config/custom-prefs.js</code> ファイルを設定することです。これは、B2G ディレクトリ内にいる場合、<code>gaia/build/config/custom-prefs.js</code> となります。<a href="/docs/Mozilla/Firefox_OS/Platform/Gaia/Build_System_Primer#Customizing_the_preferences" title="/docs/Mozilla/Firefox_OS/Platform/Gaia/Build_System_Primer#Customizing_the_preferences">Gaia Build System Primer, Customizing the preferences</a> を参照してください。</p>
+
+<div class="note">
+<p><strong>注記</strong>: 現在のビルドは <code>GAIA_PATH</code> を起点とする異なるディレクトリを見るほどスマートではありません。<code>GECKO_PATH</code> の動作とは異なります。Gaia の別々のクローンを使用したいときは、そのフォルダから <a href="/docs/Mozilla/Firefox_OS/Platform/Gaia/Build_System_Primer" title="/docs/Mozilla/Firefox_OS/Platform/Gaia/Build_System_Primer">手動で make を実行</a> してください。</p>
+</div>
+
+<h2 id="異なる種類のビルドを作成する">異なる種類のビルドを作成する</h2>
+
+<p><code>.userconfig</code> に様々なオプションをセットすることで、makeコマンドを実行しながら、自動的に異なる種類のGaiaビルドを作成できます ―― この章ではいくつかの異なるオプションを扱います。</p>
+
+<div class="note">
+<p><strong>注記</strong>: ビルド時の make コマンドに異なるオプションを付けることで、ビルド中に動的に多数の異なるビルドオプションをセットできます。完全なリファレンスは、<a href="/Firefox_OS/Developing_Gaia/make_options_reference">make オプションのリファレンス</a> のを参照してください。</p>
+</div>
+
+<h3 id="製品ビルドや開発ビルドを作成する">製品ビルドや開発ビルドを作成する</h3>
+
+<p>別の製品ビルド (ユーザに届ける最終のアプリのビルド) や、開発ビルド (付加的なテストアプリやその他のエンジニアリング機能を含むビルド) を作成するには、次の行を <code>.userconfig</code>に追加してください:</p>
+
+<pre class="brush: bash">PRODUCTION=1</pre>
+
+<p>これで勝手に製品ビルドが作成されます。これは、<code>production</code> make オプションをセットすることで、オンザフライに実現することもできます。</p>
+
+<p>あるいは、エンジニアリング機能の様々なレベルを設定するヴァリアントもあります。</p>
+
+<pre>VARIANT=user
+
+VARIANT=userdebug
+
+VARIANT=eng</pre>
+
+<p>これらのヴァリアントの違いは次の通りです:</p>
+
+<ul>
+ <li><strong>eng</strong> の variant は、デフォルトアプリを <code>/data</code> に置きます。その他多数のテスト目的のアプリを user/userdebug に含めます。また、デフォルトで Marionette が有効になるため、テストが実行できます。これは、variant が指定されない場合の既定値です。</li>
+ <li><strong>userdebug</strong> の variant は、アプリを <code>/system</code> に置きます。デフォルトで Marionette が有効になるため、テストが実行できます。アップデータが有効になるため、over-the-air (OTA/FOTA) 更新が入手できます。</li>
+ <li><strong>user</strong> の variant は、デフォルトアプリを <code>/system</code> に置きます。アップデータが有効になるため、over-the-air (OTA/FOTA) 更新が入手できます。</li>
+</ul>
+
+<div class="note">
+<p><strong>注記</strong>: user と userdebug は両方とも、ローカルで実機/エミュレータ用にビルドする場合、暗黙的に <code>PRODUCTION=1</code> が設定されます。</p>
+</div>
+
+<div class="note">
+<p><strong>補足</strong>: <code>make production</code> は、ユーザ版の Gaia をビルドして端末に焼く確かな方法です。<code>VARIANT</code> は、Gaia の Nightly や B2G デスクトップ用にビルドする時に指定します。</p>
+</div>
+
+<h3 id="デバッグビルドを作成する">デバッグビルドを作成する</h3>
+
+<p>デバッグビルドを作るには、<code>.userconfig</code> ファイルに次の行を追加します:</p>
+
+<pre>export B2G_DEBUG=1</pre>
+
+<p>これは、ビルド時に <code>DEBUG=1</code> make オプションを含めることでも、オンザフライに実現できます。</p>
+
+<h3 id="プロファイリング用ビルドを作成する">プロファイリング用ビルドを作成する</h3>
+
+<p>プロファイリングを有効にする (組み込みの (SPS) プラットフォームプロファイラで最良の結果を得るため) には、<code>.userconfig</code> ファイルに次の行を追加して再ビルドします:</p>
+
+<pre>export B2G_PROFILING=1</pre>
+
+<div class="warning">
+<p><strong>重要</strong>: B2G_NOOPT と同時に設定してはいけません。これは意味のない結果になります!</p>
+</div>
+
+<h3 id="最適化を無効にする">最適化を無効にする</h3>
+
+<p>オプティマイザ (デバッグを容易にするビルドの作成) を無効にするには、<code>.userconfig</code> ファイルに次の行を追加して再ビルドします:</p>
+
+<pre>export B2G_NOOPT=1</pre>
+
+<h3 id="はじめてガイド_(FTU)_を無効にする">はじめてガイド (FTU) を無効にする</h3>
+
+<p>ビルドとリフレッシュを何度も行う場合、FTU アプリが毎回起動する鬱陶しいかもしれません。<code>.userconfig</code> ファイルに次の行を追加することで、これを無効にできます:</p>
+
+<pre>export NOFTU=1</pre>
+
+<p>これは、ビルド時に <code>NOFTU=1</code> make オプションを含めることで、オンザフライに実現できます。</p>
+
+<h3 id="アップデータと更新ツールをビルドする">アップデータと更新ツールをビルドする</h3>
+
+<p>デフォルトでは、アップデータと更新ツールは <strong>userdebug</strong> と <strong>user</strong> ビルドでのみビルドされます。</p>
+
+<p>アップデータと関連ツールを強制的にビルドするには、<code>.userconfig</code> ファイルに次の行を追加してください:</p>
+
+<pre>export B2G_UPDATER=1</pre>
+
+<h2 id="Gaia_開発者モードを有効にする">Gaia 開発者モードを有効にする</h2>
+
+<p>アプリの開発や gaia をハックする計画がある場合、様々な役立つ設定を自動的にセットして、端末で用意に作業できます。例えば、自動的にリモートデバッグ機能を有効にし、デバッグ接続開始時にプロンプトを無効にすることができます。</p>
+
+<p>必要な設定は、<code>.userconfig</code> ファイルに次の export 文を追加するだけです:</p>
+
+<pre>export DEVICE_DEBUG=1</pre>
+
+<h2 id="Valgrind_を有効にする">Valgrind を有効にする</h2>
+
+<p>Valgrind は、アプリのメモリやスレッドの問題をデバッグするのに役立つデバッグツールです。Valgrind を実行するための詳細情報は、<a href="/Firefox_OS/Debugging/Debugging_B2G_using_valgrind">Debugging B2G using valgrind</a> を参照してください。</p>
+
+<p>B2G 下で Valgrind を使用するには、<code>.userconfig</code> に次の export 文を追加します:</p>
+
+<pre>export B2G_VALGRIND=1</pre>
+
+<h2 id="既定のホストコンパイラの変更方法">既定のホストコンパイラの変更方法</h2>
+
+<p> GCC 4.7 以降を既定のコンパイラとして使用する最近のディストリビューションでは、ビルド可能にするため、選んだプラットフォームに応じて古いバージョンを指定する必要があります。そうするには <code>.userconfig</code> ファイルに次の 2 行を追加します。<code>CC</code> と <code>CXX</code> 変数を、別の C と C++ コンパイラを使うように設定します。例えば Ubuntu 12.10 で GCC 4.6 を使うには次のようにします:</p>
+
+<pre>export CC=gcc-4.6
+export CXX=g++-4.6
+</pre>
+
+<p>または、ソースからビルドしたバージョンを使っている場合、実行ファイルへのフルパスを記述します:</p>
+
+<pre>export CC=/opt/gcc-4.6.4/bin/gcc
+export CXX=/opt/gcc-4.6.4/bin/g++
+</pre>
+
+<h2 id="独自の_Gecko_オブジェクトツリーの場所を指定する">独自の Gecko オブジェクトツリーの場所を指定する</h2>
+
+<p>gecko ソースツリーとその他のビルドオプションを一旦変更した場合、オブジェクトが格納される場所も変更したくなるでしょう (つまり、例えば全てのデバッグ用オブジェクトを非デバッグ用オブジェクトのツリーと別にするなど)。次のようにします:</p>
+
+<pre>export GECKO_OBJDIR=${GECKO_PATH}/objdir-gonk-debug
+</pre>
+
+<p><code>${GECKO_PATH}</code> を使うと、異なる gecko ツリー (例: central, beta, aurora など) を切り替えるのが楽になります。</p>
+
+<h2 id="デバッグオブジェクトと非デバッグオブジェクトの両方を保持する">デバッグオブジェクトと非デバッグオブジェクトの両方を保持する</h2>
+
+<p><code>.userconfig</code> ファイルを使用して、デバッグビルドとリリースビルドを、毎回全部ビルドすることなく切り替えることができます。</p>
+
+<pre class="brush:bash;">export B2G_DIR=${B2G_DIR:-$(cd $(dirname $0); pwd)}
+echo "B2G_DIR = ${B2G_DIR}"
+
+export GECKO_PATH=${B2G_DIR}/mozilla-inbound
+echo "GECKO_PATH = ${GECKO_PATH}"
+
+export B2G_DEBUG=1
+echo "B2G_DEBUG = ${B2G_DEBUG}"
+
+export GECKO_OBJDIR=${GECKO_PATH}/objdir-gonk
+if [[ "${B2G_DEBUG}" != "0" ]]; then
+ export GECKO_OBJDIR=${GECKO_OBJDIR}-debug
+fi
+if [[ "${GECKO_PATH/*mozilla-inbound*/mozilla-inbound}" == "mozilla-inbound" ]]; then
+ export GECKO_OBJDIR=${GECKO_OBJDIR}-m-i
+fi
+echo "GECKO_OBJDIR = ${GECKO_OBJDIR}"</pre>
+
+<p><code>echo</code> コマンドは、現在の設定を表示します。デバッグビルドとリリースビルドを切り替えるには、7 行目の <code>B2G_DEBUG</code> の値を変更するだけです。</p>
diff --git a/files/ja/archive/b2g_os/debugging/connecting_a_firefox_os_device_to_the_desktop/index.html b/files/ja/archive/b2g_os/debugging/connecting_a_firefox_os_device_to_the_desktop/index.html
new file mode 100644
index 0000000000..69de6298e1
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/connecting_a_firefox_os_device_to_the_desktop/index.html
@@ -0,0 +1,41 @@
+---
+title: Firefox OS端末をコンピュータに接続する
+slug: Archive/B2G_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop
+tags:
+ - ADB
+ - Firefox OS
+translation_of: Archive/B2G_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop
+---
+<div class="summary">
+ <p><span class="seoSummary">このガイドではコンピュータとFirefox OS端末とをUSBで接続する方法を説明します。</span></p>
+</div>
+<div class="note">
+ <p><strong>紀</strong>: 単にFirefox OS端末上でアプリをデバッグしたい場合で、Firefox OS 1.2以降を実行しているなら、<a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE">WebIDE</a> の使用がベストな選択です。Firefox OSバージョンが 1.2未満の場合、<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Debugging/Setting_up">Setting up to debug on Firefox OS using Firefox developer tools</a>を読んで標準的なリモートデバッグの使用について学んで下さい。</p>
+</div>
+<h2 id="端末をセットアップする">端末をセットアップする</h2>
+<p>Firefox OS端末上で (<a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings#The_Developer_panel">see the layout</a>):</p>
+<ol>
+ <li>Settingsアプリを開<code>いて、Device Information</code> &gt; <code>More Information</code> &gt; <code>Developer</code> へ</li>
+ <li>developerメニューで"Remote debugging"をチェックする</li>
+</ol>
+<h2 id="コンピュータをセットアップする">コンピュータをセットアップする</h2>
+<p>端末をコンピュータに接続するため、<a class="external external-icon" href="http://developer.android.com/tools/help/adb.html" title="http://developer.android.com/tools/help/adb.html">Android Debug Bridge (adb)</a> のインストールが必要です。ADB Helperアドオン (<a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE">WebIDE</a> と一緒に使用) はadbをバンドルしているのを気に留めて下さい。</p>
+<p>コンピュータをセットアップするための指示はOSに固有であり、Android開発者サイトの<a class="external" href="https://developer.android.com/tools/device.html" title="https://developer.android.com/tools/device.html">"Setting up a Device for Development"</a>に3つのポイントとして詳解されています。追加の指示を下記に記載します。</p>
+<h3 id="Mac_OS_X用の特別な指示">Mac OS X用の特別な指示</h3>
+<p>Mac OS Xを実行している場合、 <code>adt-bundle-mac-x86_64-20130522</code> のような名前のパッケージをダウンロードしています。そのフォルダを"アプリケーション"フォルダに置き、<code>/Applications/adt-bundle-mac-x86_64-20130522/</code> のようにします。ここには2つのディレクトリがあります: <code>eclipse</code> と <code>sdk です。</code> <code>~/.bashrc</code> を編集し、下記を追加します:</p>
+<pre>export PATH="/Applications/adt-bundle-mac-x86_64-20130522/sdk/platform-tools:$PATH"</pre>
+<p>(次回シェルを起動した時に準備できているでしょう。) シェルのCLI上でこのようにタイプできます:</p>
+<pre>adb devices
+</pre>
+<p>下記のように接続された端末のリストが返ってきます:</p>
+<pre>List of devices attached
+AA:BB:A5:B5:AA:BB device</pre>
+<h3 id="Linux用の特別な指示">Linux用の特別な指示</h3>
+<p>Linuxを使っているなら、Firefox OS Geeksphone 端末に使われるベンダーIDは <code>05c6で、このため </code><code>/etc/udev/rules.d/51-android.rules</code> ファイルに下記と同様なエントリを含むべきです:</p>
+<pre class="bash" style="font-family: monospace;"><span style="color: #007800;">SUBSYSTEM</span>=="usb", ATTR<span style="color: #7a0874; font-weight: bold;">{</span>idVendor<span style="color: #7a0874; font-weight: bold;">}</span>=="05c6", <span style="color: #007800;">MODE</span>="0666", <span style="color: #007800;">GROUP</span>="plugdev"</pre>
+<h3 id="Windows用の特別な指示">Windows用の特別な指示</h3>
+<p>Geeksphone 用のWindowsドライバは <a href="http://www.geeksphone.com/downloads/fos/fos_usb_driver.zip" title="http://www.geeksphone.com/downloads/fos/fos_usb_driver.zip">Geeksphone website</a> からダウンロードできます。</p>
+<p>Windows 8 はデフォルトで署名のないドライバをインストールできません。 <a href="http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html" title="http://www.craftedge.com/tutorials/driver_install_windows8/driver_install_win8.html">"How to install an unsigned driver on Windows 8"</a>のチュートリアルを見て下さい。</p>
+<p>Windows XP Home Edition には <code>tasklist.exe</code> が入っていないため、Simulator は端末を発見しません。 <a href="http://www.computerhope.com/download/winxp.htm">ComputerHope website</a> からそのファイルをダウンロードして、<code>Windows\System32 </code>フォルダに置くことで解決できます。</p>
+<h2 id="セットアップを確認する">セットアップを確認する</h2>
+<p>これらの指示に従ったら、端末をUSBケーブルでコンピュータに接続し、コマンドプロンプトを開いて"<code>adb devices</code>" (adb にpathが通ってるのを確認する) とタイプします。 Firefox OS端末が出力の中に載っているのが見えるでしょう。</p>
diff --git a/files/ja/archive/b2g_os/debugging/debugging_b2g_using_valgrind/index.html b/files/ja/archive/b2g_os/debugging/debugging_b2g_using_valgrind/index.html
new file mode 100644
index 0000000000..148eb95cb6
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/debugging_b2g_using_valgrind/index.html
@@ -0,0 +1,132 @@
+---
+title: Valgrindを使用してデバッグする
+slug: Archive/B2G_OS/Debugging/Debugging_B2G_using_valgrind
+tags:
+ - B2G
+ - Firefox OS
+ - valgrind
+translation_of: Archive/B2G_OS/Debugging/Debugging_B2G_using_valgrind
+---
+<p><span style="position: fixed ! important; top: 0px ! important; left: 0px ! important; font-size: xx-small ! important; line-height: 130% ! important; border-color: black ! important; border-width: 1px ! important; border-style: solid ! important; padding: 0px 2px ! important; background-color: rgb(214, 227, 254) ! important; display: none;">S</span></p>
+
+<div class="summary">
+<p><a href="http://valgrind.org">Valgrind<span style="font-family: arial,sans-serif; font-size: xx-small ! important; line-height: 130% ! important; border-width: 1px ! important; border-style: solid ! important; padding: 0px 2px ! important; margin-left: 2px; max-width: 20px; overflow: visible ! important; float: none ! important; display: none;">DSS</span></a> により開発者はメモリアロケーションや、スレッド/プロセスや、その他プログラムのパフォーマンスについての情報にアクセスできます。これはFirefox OS ツリーに含まれていて、適切なリソースのある特定の電話機で実行できます。この記事では使用方法を説明します。</p>
+</div>
+
+<h2 id="必要条件">必要条件</h2>
+
+<p>Firefox OSでValgrindを実行する前に、開発者は<a href="/ja/docs/Debugging_Mozilla_with_Valgrind">Debugging Mozilla with Valgrind<span style="font-family: arial,sans-serif; font-size: xx-small ! important; line-height: 130% ! important; border-width: 1px ! important; border-style: solid ! important; padding: 0px 2px ! important; margin-left: 2px; max-width: 20px; overflow: visible ! important; float: none ! important; display: none;">DSD</span><span style="font-family: arial,sans-serif; font-size: xx-small ! important; line-height: 130% ! important; border-width: 1px ! important; border-style: solid ! important; padding: 0px 2px ! important; margin-left: 2px; max-width: 20px; overflow: visible ! important; float: none ! important; display: none;">DSD</span><span style="font-family: arial,sans-serif; font-size: xx-small ! important; line-height: 130% ! important; border-width: 1px ! important; border-style: solid ! important; padding: 0px 2px ! important; margin-left: 2px; max-width: 20px; overflow: visible ! important; float: none ! important; display: none;">DSG</span></a>の記事を読んで慣れておく事が推奨されます。ビルドとコマンドラインのステップの多くがFirefox OSのビルド、実行スクリプトで考慮されていますが、その中の情報の大半はFirefox OSで実行する事に関連しています。</p>
+
+<p>電話機の Firefox OS で Valgrind を実行するには、通常スペックよりも高めの電話機が必要です。Valgrindはリソースに敏感で、RAMが1GB未満の電話機では、一般に低メモリエラーを起こします。これを書いている時点 (2013-12-04) で、Valgrind は2GBのRAMのNexus 4で Firefox OS の動作テストをされています、しかしGeeksphone Keonや同様スペックの電話機で動作するでしょう。利用できる電話機の詳細については <a href="/ja/Firefox_OS/Phones">Phone and device data</a> を見て下さい。</p>
+
+<h2 id="FxOS電話機でValgrindを実行する">FxOS電話機でValgrindを実行する</h2>
+
+<p>Valgrindを実行する処理を見ていきましょう。</p>
+
+<h3 id="コンパイルする">コンパイルする</h3>
+
+<p>Valgrind を有効にして Firefox OS をビルドするには、下記を<a href="/ja/Firefox_OS/Customization_with_the_.userconfig_file"><code>.userconfig</code> ファイル</a>に追加します。</p>
+
+<pre>export B2G_VALGRIND=1 </pre>
+
+<p>デバッグビルド (<code>B2G_DEBUG</code>) も推奨です。最適化なしビルド (<code>B2G_NOOPT</code>) は使用できないくらい遅く実行し、最適化がエラーを分かりにくくしていると考えられる場合を除き推奨されません。</p>
+
+<h3 id="実行する">実行する</h3>
+
+<div class="note">
+<p>記: Firefox OS電話機でValgrindを実行する事は、ホストOSではなく、電話機のコンテキストで行われます。これが意味する所は、開発者は<a href="/en-US/Firefox_OS/Debugging/Installing_ADB">adb</a>が利用できるあらゆるプラットフォームを使用できて、電話機でValgrindを実行するには <code>run-valgrind.sh</code> スクリプトを使用します。</p>
+</div>
+
+<p>Valgrindの元に Firefox OS を実行するには、<a href="https://github.com/mozilla-b2g/B2G/blob/master/run-valgrind.sh">B2Gディレクトリから <code>run-valgrind.sh</code> スクリプト</a>を実行します。このスクリプトは下記を行います:</p>
+
+<ol>
+ <li>電話機のファイルシステムを r/w として再マウントします。</li>
+ <li>現在のデバッグ <code>libxul.so</code> を全シンボル付きで電話機にコピーします。このファイルは数百MBあるため、このステップ完了まで多数の時間がかかることがあります。新しくビルドされるごとに毎回再実行される必要があります。valgrind を <code>libxul</code> コピーせずに実行するには、このコマンドを実行します:
+ <pre class="brush: bash">run-valgrind.sh nocopy</pre>
+ </li>
+ <li>電話機を再起動します。</li>
+ <li>電話が起動する時に開始する b2g プロセスを停止します。</li>
+ <li>valgrindの元に、自身の b2g プロセスを実行します。</li>
+</ol>
+
+<p><code>run-valgrind.sh</code> スクリプトを実行している時の全 valgrind 出力は、ターミナルの標準出力へ書き出されます。これはターミナルかファイルへのパイプいずれでも読み込みできます。</p>
+
+<div class="note">
+<p><strong>記</strong>: <code>run-valgrind.sh</code> スクリプトはb2g プロセスを実行する、自身のadbプロセスを保有するため、このスクリプトを停止すると電話機のb2gとvalgrindも停止します。おかしな状態になることがあるため、valgrindセッション実行後に電話機を再起動することが推奨されます。</p>
+</div>
+
+<h2 id="デスクトップ版Firefox_OSでValgrindを実行する">デスクトップ版Firefox OSでValgrindを実行する</h2>
+
+<p>Running valgrind against デスクトップ版Firefox OSに対してvalgrindを実行するのは、デスクトップ版Firefoxに対して実行するのと同じ方法動作します。詳細情報は<a href="/ja/docs/Debugging_Mozilla_with_Valgrind">Valgrindを使ってMozillaをデバッグする<span style="font-family: arial,sans-serif; font-size: xx-small ! important; line-height: 130% ! important; border-width: 1px ! important; border-style: solid ! important; padding: 0px 2px ! important; margin-left: 2px; max-width: 20px; overflow: visible ! important; float: none ! important; display: none;">DDS</span></a>のページを調べて下さい。関連したビルドフラグが <code>mozconfig</code>に追加され、このページにあるプラットフォーム特有の問題が適用できるでしょう。</p>
+
+<p>注意する点として、デスクトップで Valgrind を OOP/process-per-tab モードで実行するには、確実に子プロセスもトレースできるように、下記のオプション追加が必要です:</p>
+
+<pre class="brush: bash">--trace-children=yes</pre>
+
+<h2 id="Firefox_OS_Valgrindをメンテ、更新する">Firefox OS Valgrindをメンテ、更新する</h2>
+
+<p>適用できるパッチが上げられた時、Firefox OS 用のValgrindはフォークされたリポジトリでメンテされて、Firefox OSのビルドツリーやバージョンの奇抜さへの対処もしつつ、なるべく最新状態を保ちます。</p>
+
+<h3 id="Valgrindリポジトリの更新">Valgrindリポジトリの更新</h3>
+
+<div class="warning">
+<p><strong>警告:</strong> GITの経験が必要です。複雑なGit操作に慣れていない場合は、valgrindリポジトリを更新しないでください。githubリポジトリへのあらゆる更新は<code>git.mozilla.org に</code>反映され、次に開発者がマニフェストリポジトリのHEADを使って取得してしまうでしょう。Valgrindを壊してもValgrindを有効にしていないビルド(例 ビルドボット自動化)は壊れず、これを使ってみようとする開発者の邪魔になります。</p>
+</div>
+
+<p>Firefox OS valgrind と VEX の主なリポジトリはここです</p>
+
+<ul>
+ <li><a href="http://github.com/mozilla-b2g/valgrind">http://github.com/mozilla-b2g/valgrind</a></li>
+ <li><a href="http://github.com/mozilla-b2g/vex">http://github.com/mozilla-b2g/vex</a></li>
+</ul>
+
+<p>マスターブランチはこれらのリポジトリの各SVN トランクの初期バージョンで、一方 Firefox OS ブランチはトランクの最上位にrebaseされたFirefox OS固有のパッチを含んでいます。</p>
+
+<div class="note">
+<p><strong>記: 必ず両方のリポジトリを同時に更新して下さい</strong>。これらは2つの別のリポジトリですが、VEX は通常 Valgrind のサブモジュールで、valgrind のHEADは通常 VEX のHEAD を指しています。</p>
+</div>
+
+<p>これらはB2Gマニフェストで使うために、the <code>git.mozilla.org</code> ドメイン上に複製されます:</p>
+
+<ul>
+ <li><a href="http://git.mozilla.org/?p=b2g/valgrind.git;a=summary">http://git.mozilla.org/?p=b2g/valgrind.git;a=summary</a></li>
+ <li><a href="http://git.mozilla.org/?p=b2g/valgrind.git;a=summary">http://git.mozilla.org/?p=b2g/vex.git;a=summary</a></li>
+</ul>
+
+<ol>
+ <li>主なリポジトリはgit svnを使ってvalgrind SVNと同期されます。リポジトリの更新を取得するには、github から valgrind と vex のリポジトリを複製してから、次を実行します:
+ <pre class="brush: bash">git svn init -s [subversion repo url]
+</pre>
+ </li>
+ <li>SVN情報の取得は時間がかかりますが、完了した時、あなたのツリーは主な Valgrind SVN と同期されているはずです。</li>
+ <li>更なる更新を取得するには、次の一連コマンドを使います:
+ <pre class="brush: bash">git checkout master
+git svn fetch
+git svn rebase
+git push [github-remote-name] master
+git checkout fxos
+git rebase master
+</pre>
+ </li>
+ <li>Firefox OSのブランチを rebase するステップでパッチの衝突がある可能性があります。 問題に対処できない場合、衝突したコミットの作者にeメールして下さい。</li>
+ <li>rebase の後に、<code>B2G_VALGRIND</code> フラグ付きでFirefox OS のフルビルドを行い、穏やかなビルドであることを確かめます。最もよく必要になる修正は、下記のスクリプト節にリスト化しています。</li>
+ <li>いったんFirefox OSツリーのビルドの rebase <strong>とテスト</strong> が完了したら、headの変更により、Firefox OS ブランチを強制的にプッシュしないといけなくなるでしょう。
+ <pre>git push -f [github-remote-name] fxos</pre>
+ </li>
+</ol>
+
+<h3 id="スクリプトをビルド、インストール、実行する">スクリプトをビルド、インストール、実行する</h3>
+
+<p>Valgrind Firefox OS ブランチや、リポジトリ取得後に更新が必要なB2Gリポジトリの一部である複数のスクリプトがあります。</p>
+
+<h4 id="externalvalgrindandroid.mk">external/valgrind/android.mk</h4>
+
+<p>これは Android のビルドシステムスクリプトです。しばしば、Valgrind ツリーにファイル追加/削除されることにより、ここに変更が必要となります。<code>-j1</code> ビルドを使ってどのターゲットがビルドに失敗するかを見て、もしファイルを見つけられなかったり存在しないファイルを参照している場合、プロジェクトのファイルリストを更新します。</p>
+
+<h4 id="externalvalgrindvalgrind.mk">external/valgrind/valgrind.mk</h4>
+
+<p>これはビルドされて FxOS のシステムイメージに追加される必要のあるパッケージリストを含んでいて、このリストは <code>gonk-misc/b2g.mk</code> に参照されます。Valgrind が新規パッケージを追加するのはまれなため、これは通常更新の必要ありますせん、しかし必要な場合、ここに置きます。</p>
+
+<h4 id="run-valgrind.sh">run-valgrind.sh</h4>
+
+<p>電話機で Valgrind を実行するためのスクリプト。電話機で Valgrind を実行するのに必要な新規のコマンドライン引数がある場合、ここに置きます。これはデバッグシンボル付きのライブラリをコピーする場所で、よってそのプロセスのあらゆる調整・変更はここで起こるべきです。</p>
diff --git a/files/ja/archive/b2g_os/debugging/debugging_ooms/index.html b/files/ja/archive/b2g_os/debugging/debugging_ooms/index.html
new file mode 100644
index 0000000000..9bd7382ee7
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/debugging_ooms/index.html
@@ -0,0 +1,102 @@
+---
+title: Firefox OSの低メモリエラーをデバッグする
+slug: Archive/B2G_OS/Debugging/Debugging_OOMs
+translation_of: Archive/B2G_OS/Debugging/Debugging_OOMs
+---
+<div class="summary">
+<p><span class="seoSummary">Firefox OS 端末でメモリ不足となった時、低メモリキラーや低メモリ通知が、プロセスを停止してOSの実行を続けるために動作します。カーネルがフォアグランドプロセスを停止する時、使用中のアプリは明らかにクラッシュします。この記事ではOOM(out of memory; 低メモリ) クラッシュを理解、デバックする方法を説明します。</span></p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: Firefox OSで低メモリ状況がどう管理されているかについてまだ知らない場合、この文書を続ける前に <a href="/ja/Firefox_OS/Platform/Out_of_memory_management_on_Firefox_OS">Firefox OSの低メモリ管理</a> を読むことを推めます。</p>
+</div>
+
+<h2 id="OOMクラッシュをデバッグする">OOMクラッシュをデバッグする</h2>
+
+<p>電話機がメモリ不足により起こると疑われる、再現できるクラッシュをするとします。下記の対策を取ると、何が悪いかをもっと理解できます。</p>
+
+<h3 id="ステップ1_それが実際にOOMかどうか検証する">ステップ1: それが実際にOOMかどうか検証する</h3>
+
+<p>まず、実際クラッシュが電話機がメモリ不足で動作しているためかどうか確認する必要があります。そうするには、 <code>adb shell dmesg</code> を実行します。アプリがOOMのために停止している場合、下記のような反応を見ることができるでしょう:</p>
+
+<pre class="brush: bash">&lt;4&gt;[06-18 07:40:25.291] [2897: Notes+]send sigkill to 2897 (Notes+), adj 2, size 30625</pre>
+
+<p>この行は、電話機の低メモリキラーがNotes+ アプリ(process id 2897)を、<code>停止時に oom_adj 2</code> が起きたために強制停止したことを示しています。ここで報告されるサイズは各 4kb のページサイズです。よってこの場合、Notes+ アプリは 30625 * 4kb = 120mb のメモリを使用しています。</p>
+
+<h4 id="脱線_OOMでない">脱線: OOMでない</h4>
+
+<p><code>dmesg</code> 出力にこうした行が見えない場合、クラッシュは OOM でないことが見込まれます。そんなクラッシュをデバッグする次の手は、<code>gdb</code> にクラッシュプロセスをアタッチして、下記のようにバックトレースを得ることです:</p>
+
+<pre class="brush: bash">$ cd path/to/B2G/checkout
+$ adb shell b2g-ps
+# Note pid of the app that you're going to crash
+$ ./run-gdb.sh attach &lt;pid&gt;
+(gdb) continue
+# crash the app
+(gdb) bt</pre>
+
+<p>バグ報告時に、<code>adb logcat</code>の出力と一緒に、この出力を添付します。クラッシュが OOM のせいであれば<code>gdb</code> backtrace は多分興味深くないもので、なぜなら OOM クラッシュは、プロセスが実行する悪いコードをのせいでなく、カーネルから送られるシグナルによって引き起こされるからです。</p>
+
+<h3 id="ステップ2_メモリレポートを集める">ステップ2: メモリレポートを集める</h3>
+
+<p>クラッシュが実際に OOM によるものだと検証した後、次のステップはアプリがクラッシュする前に電話機のメモリレポートを集める事です。メモリレポートはどこでメモリが使われているかを理解するのに役立ちます。このステップは、一旦アプリがクラッシュすると、そのプロセスからメモリレポートを集める方法がないため、少し扱いにくいです。またカーネルがプロセスを強制停止しようとする時にはメモリレポートを起動させる方法もないです — その時には、遅すぎます。</p>
+
+<p>電話機からメモリレポートを取得するには、まずビルドツリーを更新して、関連ツールの最新版を入手します。<code>repo sync</code> は十分ではありません; <code>git fetch &amp;&amp; git merge</code> または <code>git pull</code>が必要です:</p>
+
+<pre class="brush: bash">$ cd path/to/B2G/checkout
+$ git fetch origin
+$ git merge --ff-only origin</pre>
+
+<p>今やメモリレポートツールをこのように実行できます:</p>
+
+<pre class="brush: bash">$ tools/get_about_memory.py</pre>
+
+<p>幸運にもメモリレポートを手に入れた時、ディレクトリを(<code>about-memory-N</code> と名づけた)zipにまとめて関連するバグに添付します。しかしまたもや、これはアプリがまだ生きていて大量のメモリを使っている時にコマンドを実行した場合のみに有用です。いくつかのオプションがあります。</p>
+
+<h4 id="ステップ2_オプション1_他の端末を入手する">ステップ2, オプション1: 他の端末を入手する</h4>
+
+<p>しばしば最も簡単な事は、もっと多くのRAMを持つ端末を入手する事です。上記ステップ 1ではプロセスがクラッシュする時にいかに大量のメモリを使うかが分かったでしょう、なので単にプロセスがそれだけの量のメモリを使うのを待って、メモリレポートを取ります。 <code>b2g-info</code> ツールは様々なB2Gプロセスがいかにメモリを使っているかを示します。 下記のようにする事で、ループ内でこのツールを実行できます:</p>
+
+<pre class="brush: bash">$ adb shell 'while true; do b2g-info; sleep 1; done'</pre>
+
+<p>あなたの端末で <code>b2g-info</code> が利用できない場合、<code>b2g-procrank</code> を代用できます。</p>
+
+<h4 id="ステップ2_オプション2_Fastest_finger">ステップ2, オプション2: Fastest finger</h4>
+
+<p>よりたくさんのRAMのある端末にアクセス出来ない場合、アプリがクラッシュする直前に<code> get_about_memory.py</code> を試行できます。またもや、 <code>b2g-info</code> をループ内で実行できて(前節に示した通り)、 いつ run <code>get_about_memory.py</code> を実行するかを理解できます。メモリレポートを実行するとしばらく電話機の全プロセスが停止し、よってあるプロセス自身がOOMを起こす前にメモリレポートを捉えるのはしばしば難しくありません。</p>
+
+<h4 id="ステップ2_オプション3_より小さなテストケースを使う">ステップ2, オプション3: より小さなテストケースを使う</h4>
+
+<p>"アプリ内でサイズが X 以上のファイル"を扱う時に、しばしばOOMに遭遇します。</p>
+
+<p>サイズXのテストケースでアプリのクラッシュが速すぎる場合、同様だが小さめ(まぁ、X/2 サイズ)のテストケースを実行して、それが成功してからメモリレポートを取得する事を試せます。この方法で生成されたメモリレポートは、しばしば最終的に考慮するOOMクラッシュへの良い洞察を与えてくれます。</p>
+
+<h4 id="ステップ2_オプション4_デスクトップ版B2Gを実行する">ステップ2, オプション4: デスクトップ版B2Gを実行する</h4>
+
+<p>最悪中の最悪の場合、FxOS電話機よりずっと多いRAMを持つ、デスクトップ版B2Gを実行できます。これはデスクトップ機でB2Gを実行するのは電話機でB2Gを実行するのといくつか異なる点があるため、扱いにくいです。</p>
+
+<p>特に、デスクトップ機の B2G はデフォルトでマルチプロセス無効になっています。実際いろいろな場所で 100% 正しく動きません、 しかし Linux と Mac では (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=923961">Bug 923961</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=914584">Bug 914584</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=891882">Bug 891882</a>に従って) 最も正確に動作します。 マルチプロセスなしでデスクトッブでテストできますが、私の経験ではプロセス間通信のコードにより高いメモリ使用の問題が起こり、よって見ているバグを引き起こします。</p>
+
+<p> B2G デスクトッブプロセスからのメモリレポートを取得も便利という程ではありません。Linuxではシグナル34 をメイン B2G プロセスに送れることができて、それは <code>memory-report-*.gz</code> ファイルを <code>/tmp</code> に出力します。</p>
+
+<p><br>
+ B2G デスクトップビルドを使うメリットは、好きなデバッグツール、例えば OSX についているやつを使えることです。We've had a lot of success with this in the past. To collect a memory report using Instruments on OS X, choose "New -&gt; Mac OS X -&gt; Allocations". Start b2g-desktop and you should see multiple "plugin-container" processes in the activity monitor. You will need 2 Instruments activities: 1 to trace the allocations on the main b2g process and another to trace the allocations on the app you wish to analyze. Attach the instrument activities and execute your test case.</p>
+
+<p>To analyze how much memory your app is using, analyze call trees. Check the "Invert Call Tree" tick, and sort by bytes used. This will show you which part of your app is using lots of memory. Below is a screenshot of a sample analysis of memory usage for an app:</p>
+
+<p><img alt="Screen shot of instruments." src="https://mdn.mozillademos.org/files/6439/instrumentsScreenShot.png" style="height: 492px; width: 800px;"><br>
+ <br>
+ For more information on setting up B2G desktop builds, read our <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Hacking">Hacking Gaia</a> page.</p>
+
+<h3 id="ステップ3_メモリレポートを解析する">ステップ3: メモリレポートを解析する</h3>
+
+<p>When you run <code>get_about_memory.py</code>, it will open a memory report in Firefox.  This file contains information about the memory usage of all processes on the system. Reading these reports can be a bit overwhelming at first, but it's not so bad once you get the hang of it.  Note that you can hover over any leaf node to get a description of what that node describes. What you're looking for is something "unusually large" in the crashing process.  You can get an idea of what "unusually large" means by capturing a memory report of your app when it's not using a ton of memory and comparing that to the errant memory report.</p>
+
+<p>Reading memory reports takes some practice, so feel free to ask for help.  The experts on this subject hang out in #memshrink on IRC.</p>
+
+<h3 id="ステップ4_必要に応じ、DMD付きでリビルドする">ステップ4: 必要に応じ、DMD付きでリビルドする</h3>
+
+<p>One common line item to stick out in memory reports captured before apps crash is <code>heap-unclassified</code>.  <code>heap-unclassified</code> counts memory allocated by the process that isn't covered by any other memory reporter.  If you have high <code>heap-unclassified</code>, the memory report can't tell you anything else about what that memory belongs to. Our tool for digging into <code>heap-unclassified</code> is called DMD.  This works on B2G, but you must <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">build B2G</a> yourself in order for it to work because DMD requires local symbols that are only kept on the build machine.</p>
+
+<p>To find out more information on running DMD and interpreting its output, read the <a href="/en-US/docs/Mozilla/Performance/DMD">DMD documentation</a>.<br>
+  </p>
diff --git a/files/ja/archive/b2g_os/debugging/developer_settings/index.html b/files/ja/archive/b2g_os/debugging/developer_settings/index.html
new file mode 100644
index 0000000000..f2da0bac9c
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/developer_settings/index.html
@@ -0,0 +1,388 @@
+---
+title: Firefox OS用の開発者設定
+slug: Archive/B2G_OS/Debugging/Developer_settings
+tags:
+ - B2G
+ - Debugging
+ - Firefox OS
+translation_of: Archive/B2G_OS/Debugging/Developer_settings
+---
+<div class="summary">
+<p>開発パネル内のFirefox OS設定(Setting)アプリについて。このパネルFirefox OS上であなたのオープンウェブアプリのデバッグをより簡単にします。この記事では使用できるオプションと使用方法を網羅します。</p>
+</div>
+
+<p>この開発オプションの設定パネルは、わざと深く埋められています。<br>
+ それは、このオプションが不要なエンドユーザーが、不注意で有効にして、端末の動作が遅くなったり、画面に変なエフェクトがかかってしまうのを防ぐためです。パネルは下記のようなものです。(下記はGeeksphone Keonで2014年4月のFirefox OS 2.0ビルドで、別バージョンを実行している場合、異なることもあります。):</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/7801/developermenu-short.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p>
+
+<p>開発者パネルには、下記の方法でたどり着きます:</p>
+
+<ul>
+ <li>Firefox OS 1.4未満では、<em>Settings &gt; Device information &gt; More Information &gt; Developer</em> として開発者パネルを開きます。</li>
+ <li>Firefox 1.4以降では、 <em>Settings &gt; Device information &gt; More Information &gt; Check the Developer Menu checkbox</em> としないと有効化できません、一度これを終えると、 <em>Settings &gt; Developer</em> として開発者バネルにアクセスできます。</li>
+</ul>
+
+<p>下記の節は、開発者パネルの各オプションについて網羅し、それが何をして何に役立つかを説明します。</p>
+
+<div class="warning">
+<p><strong>重要</strong>: このツールは役立ちますが、通常使用ではバグを起こします。バグを起こすと分かっている機能はデフォルトで無効になっています。問題を経験している時は、有効にしていた開発機能の無効化を試して下さい。</p>
+</div>
+
+<h2 id="開発ツールの設定">開発ツールの設定</h2>
+
+<h3 id="USB経由のデバッグ">USB経由のデバッグ</h3>
+
+<p>"Remote debugging"オプションでFirefox OS端末の<a href="/ja/docs/Tools/Debugger" title="/en-US/docs/Tools/Debugger">リモートデバッグ</a> のサポートが有効になります。合わせて<a href="/ja/Firefox_OS/Debugging/Installing_ADB">ADB</a>コマンドも使用できるようになります。Firefox 1.4より前では単一のチェックボックスでしたが、Firefox 1.4ではセレクトポックスで3つのオプションを選択できます:</p>
+
+<ul>
+ <li>Disabled: リモートデバッグを切ります (デフォルト)</li>
+ <li>ADB only: ADBによる端末アクセス許可</li>
+ <li>ADB and Devtools: ADBと、<a href="/ja/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a>などFirefox開発ツール両方のアクセス許可</li>
+</ul>
+
+<h3 id="Developer_HUD">Developer HUD</h3>
+
+<p>Firefox OS 1.4以降では、このセクションをタップすると、開発者 HUD セクションが見えるようになります。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8361/Firefox%20OS%202.1%20Developer%20HUD.png" style="width: 320px; display: block; margin: 0px auto; height: 569px;"></p>
+
+<p>上2つの (常に有効な) チェックボックスは:</p>
+
+<ul>
+ <li><strong>Frames per second</strong>: 秒間フレーム(fps)を表示し、これは下記の節で <a href="#Frames_per_second">Frames_per_second</a> 説明します。</li>
+ <li><strong>Time to load</strong>: ロード時間を表示し、これは下記の節で <a href="#Time_to_load">Time_to_load</a> 説明します。</li>
+</ul>
+
+<p>次に、開発者オプション('Developer Tools')を有効化/無効化するのに使うスライダーがあり、その次に有効化/無効化するチェックボックスがいくつかあります:</p>
+
+<ul>
+ <li><strong>Developer tools</strong>
+
+ <ul>
+ <li><strong>Log changes in adb</strong>: 端末の変化を adb logcat にログ出力するのを有効化します。</li>
+ <li><strong>Show system HUD</strong>: チェック時に、いくつかの情報の断片を端末のディスプレイの上に重ねて表示します。</li>
+ </ul>
+ </li>
+ <li><strong>Problems</strong>
+ <ul>
+ <li><strong>Warnings</strong>: コンソール警告を表示します。</li>
+ <li><strong>Errors</strong>: コンソールエラーを表示します。</li>
+ <li><strong>Security issues</strong>: 潜在的なセキュリティ問題を表示します。</li>
+ </ul>
+ </li>
+ <li><strong>Performance</strong>
+ <ul>
+ <li><strong>Reflows</strong>: リフローの発生を表示します。</li>
+ <li><strong><a href="/ja/Firefox_OS/Platform/Architecture#Jank">Jank</a>/Jank threshold</strong>: 受け入れられない高い jankを電話機のユーザに通知し、閾値をカスタマイズできます。</li>
+ </ul>
+ </li>
+ <li><strong>Memory</strong>
+ <ul>
+ <li><strong>Unique set size</strong>: アプリ毎に、アプリが使用するメモリを計測するものです。これはメモリ使用を最適化する(アプリが使うメモリを削減する試み)のに最も重要な計測です。しかしその他もあります。詳細は <a href="/ja/Firefox_OS/Developing_Gaia/Testing_Gaia_code_changes#Performance_tests">パフォーマンステスト</a> 節を見て下さい。</li>
+ <li><strong>App memory</strong>: アプリがどれだけメモリを使用しているかの情報を表示して、色々なメモリ使用要因を有効化/無効かできます。詳細は下記の <a href="#App_memory">App_memory</a> 節を見て下さい。</li>
+ <li><strong>JS objects</strong>: A measure of the memory the app is using on JS objects.</li>
+ <li><strong>JS strings</strong>: A measure of the memory the app is using on JS strings.</li>
+ <li><strong>JS other</strong>: A measure of the memory the app is using on other JS code features.</li>
+ <li><strong>DOM</strong>: A measure of the memory the app is using on its DOM.</li>
+ <li><strong>Style</strong>: A measure of the memory the app is using on CSS.</li>
+ </ul>
+ </li>
+</ul>
+
+<h4 id="Frames_per_second(秒間のフレーム)">Frames per second(秒間のフレーム)</h4>
+
+<p>このオプションを有効化すると Firefox OS ディスプレイの左上に3つの数字が報告されます; つまり報告される値はスライドしたwindowの最近の平均した結果で、"瞬間的" だがかなり正確です。同様に全ての数字は "推測値" です:</p>
+
+<ul>
+ <li>左の数字は <strong>構成比率</strong> : Firefox OS が毎秒ハードウェアフレームバッファに書き込んでいるかを見積もった数です。これはユーザが知覚するフレームレートの見積もりで、それはただの見積もりに過ぎません。例えば、カウンターは実際にスクリーンが変化していなくすも、毎秒60回の構成と報告することがあります。その場合、ユーザが知覚できるフレームレートは0でしょう。しかしながら、この警告を頭に入れてその他の測定値と連携する時は、このモニタ値は便利でシンプルなツールたりえます。</li>
+ <li>真ん中の番号は<strong>レイアトランザクション率</strong>で、ブロセスが再描画して構成者に通知した毎秒あたりの見積もり数です。この数値はGecko プラットフォームのエンジニアにとって最も便利ですが、左の構成率以下になるはずです。</li>
+ <li>右手の番号はスクリーンサイズに対して、描画されたピクセル数を計測したパーセンテージです。273という数字はスクリーンが2.73 回描画された事を意味します。理想的にはこの数値は 100 になるべく近くなるべきです。</li>
+</ul>
+
+<p><img alt="A screenshot of Firefox OS, showing three numbers in the top left hand corner that are measurements of app framerate." src="https://mdn.mozillademos.org/files/6889/framerate-fxos.jpg" style="width: 357px; height: 640px; display: block; margin: 0px auto;"></p>
+
+<h4 id="Time_to_load(ロード時間)">Time to load(ロード時間)</h4>
+
+<p>Firefox OS には起動時間、特に "初回描画" 時間を計るツールもあります。ツールにより(Firefox OSディスプレイの右上に)表示される値は最も最近アプリが起動された時からの経過時間と、アプリがUIを描画してからの見積もり時間(ミリ秒)です。こり数字は実際の"初回描画" 時間"を概算しただけで、とりわけ低く見積もられます。しかしながら、この数字を低くするのは、実際の起動時間を改善するのとほぼ常に相関しており、なので最適化のアイデアを簡単に計測するのに役立ちます。</p>
+
+<p><img alt="A screenshot of Firefox OS, showing a number in the top right hand corner that is a measurement of the current app startup time, in milliseconds." src="https://mdn.mozillademos.org/files/6891/startup-time-fxos.jpg" style="width: 378px; height: 640px; display: block; margin: 0px auto;"></p>
+
+<h4 id="App_memory(アプリのメモリ)">App memory(アプリのメモリ)</h4>
+
+<p>アプリがどれくらいのメモリを使っているかを表示し、今のアプリのどの項目でたくさん使っているかを表示する様々な項目を有効化/無効化します。例えば、下記のスクリーンショットでは<em>App memory(アプリメモリ)</em> と <em>JS objects(JSオブジェクト)</em> だけがチェックされていて、右下の指示はSetting(設定)アプリがJSオブジェクト用に 414.77KB 使っているのを表示します。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/7731/memory-usage.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p>
+
+<h3 id="疑似的ローカライズ">疑似的ローカライズ</h3>
+
+<p>有効にした時、アクセントをつけられた英語と、鏡で反転された英語のような疑似原語を<em>Settings &gt; Languages</em>で選択できるようになります。擬似的ローカライズで、言語リソースの追加や、外国語を話したりできなくても、通常のGaiaビルドでローカライズ性をテストできます。例えば、長い文字でもレイアウトがスケールするか確かめたり、右から左の仮言語のプレビューをしたり、<code>data-l10n-id</code> 属性 (通常の英語の中に表示されます)のないHTML要素を置いたりできます。</p>
+
+<p><img alt="Screenshot of pseudolocales" src="http://informationisart.com/images/qps.png" style="width: 600px; height: 440px; display: block; margin: 0px auto;"></p>
+
+<p>擬似的ローカリゼーションをデフォルトでつけるには、ガイアをビルドする時に <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/common-settings.json">gaia/build/config/common-settings.json</a> の中に下記の行を追加します:</p>
+
+<pre class="brush: json"> "devtools.qps.enabled": true
+</pre>
+
+<div class="note">
+<p><strong>記:</strong> 擬似的ローカリゼーションは、アプリが起動するたびに、完全に動的に生成されます。パフォーマンスとメモリ特性は通常のローカリゼーションと異なる可能性があります。英語以外の言語の特定のパフォーマンステストをしたい場合は、本物のロケールで<a href="/ja/Firefox_OS/Building#Building_multilocale">複数ロケールGaiaをビルドします。</a></p>
+</div>
+
+<h2 id="グラフィックの設定">グラフィックの設定</h2>
+
+<h3 id="Flash_repainted_area(再描画エリアの点滅)">Flash repainted area(再描画エリアの点滅)</h3>
+
+<p>このモードでは、画面領域がGeckoによって描画される毎に、Geckoは描画領域の上に、ランダムに半透明な色を転送します。理想的には、フレーム間で見た目が変わった画面の一部分だけが、新しい色で"点滅"します。しかし時々、必要以上の領域が再描画され、大きな領域の"点滅"を引き起こします。この現象はアプリケーションのコードがシーンの更新を強制しすぎているのを示す可能性があります。Gecko自体のバグを示す可能性もあります。</p>
+
+<p><img alt="A screenshot of Firefox OS with a number of transparent overlays, showing the parts of the screen repainted with each new animation frame." src="https://mdn.mozillademos.org/files/6893/paint-update-fxos.jpg" style="width: 378px; height: 640px; display: block; margin: 0px auto;"></p>
+
+<p> </p>
+
+<h3 id="Overscrolling(過度のスクロール)">Overscrolling(過度のスクロール)</h3>
+
+<p>これは Firefox 2.1+ で、スクロールがページの終わりを過ぎた時にしなやかな作法でディスプレイを広げて、次にディスプレイのドラッグを停止した時にまた縮める動作をオンオフします。この振る舞いのフルネームは <em>elastic overscroll</em>(しなやかな過度のスクロール)です。</p>
+
+<h3 id="Tiling_(以前は_Layers_Enable_tiles)(タイリング)">Tiling (以前は Layers: Enable tiles)(タイリング)</h3>
+
+<p>Firefox OS 1.4で導入され、この機能はコンテンツをスクリーンに描画するのに、スクリーン全体を一度に描かずに、より小さな塊(タイル)毎に描くのを有効化します。これは主にプラットフォームQAがチェッカーボードを削減したり、退行ウィンドウを発見したりする時に役立ちます。</p>
+
+<h3 id="Low-precision_painting(正確度の低い描画)">Low-precision painting(正確度の低い描画)</h3>
+
+<p>このオプションを有効にすると、Gecko はスクロールが実に速い時に、コンテンツを低い正確度で (ぼやけて) 描画します。これは描画が速いために便利で、よってスクロールが速い時に空白領域を描画する (つまり チェッカーボード) のを防ぎます。これは一時的にユーザに見えるだけです; いったんユーザがスクロールを止めると、精密度の低い領域は精密度の高いコンテンツで埋められます。</p>
+
+<h3 id="Low-precision_transparency(正確度の低い透過)">Low-precision transparency(正確度の低い透過)</h3>
+
+<p>これは正確度の低い描画向けの追加フラグで、半分透過した低い正確度のコンテンツができます。これはユーザにとって、より微妙で不快さの少ないものでしょう。</p>
+
+<h3 id="Hardware_composer_(以前は_Enable_hardware_compositing)">Hardware composer (以前は Enable hardware compositing)</h3>
+
+<p>有効にされると、この設定は端末が画面の視覚要素(表面)を構成するのに、<a href="https://source.android.com/devices/graphics.html#hwc">Hardware Composer</a>を使用するようにします。</p>
+
+<h3 id="Draw_tile_borders_(以前は_Layers_Draw_tile_borders)(タイル境界の描画)">Draw tile borders (以前は Layers: Draw tile borders)(タイル境界の描画)</h3>
+
+<p>これは <a href="#Draw_layer_borders">Draw layer borders</a> のオプションとよく似ていて、違いはレイヤーの境界と同様に個々のタイルの境界も描くことです。</p>
+
+<h3 id="Draw_layer_borders(レイヤー境界の描画)">Draw layer borders(レイヤー境界の描画)</h3>
+
+<p>有効にされると、画面に描かれる全レイヤーの周りに明るい境界が追加されます — レイアウトの問題の解析用に素晴らしいものです。</p>
+
+<p><img alt="A screenshot from Firefox OS showing an opened select form with the draw layers borders option enabled, resulting in colored borders being drawn on all the different rendered layers." src="https://mdn.mozillademos.org/files/6897/paint-layers-borders.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p>
+
+<h3 id="Dump_layers_tree(レイヤーツリーのダンプ)">Dump layers tree(レイヤーツリーのダンプ)</h3>
+
+<p>このオプションでは <code>layers.dumpが有効化されます、これは</code>compositorのレイヤーツリーを、画面にフレームが構成される毎にlogcatにダンプするようにします; これは、通常のweb開発よりは、主にプラットフォームのグラフィックパフォーマンスが動作するのに便利です。</p>
+
+<h3 id="Dump_layerscope(レイヤースコープのダンプ)">Dump layerscope(レイヤースコープのダンプ)</h3>
+
+<p>有効になると、この設定は端末からのレイヤースコープをダンプ出力するのを可能にします、その結果デスクトップでインストールされたアプリのレイヤー情報を見られます。この機能の使用方法のより詳細は <a href="https://wiki.mozilla.org/Platform/GFX/LayerScope">Mozilla Wikiのレイヤースコープ</a> を見て下さい。</p>
+
+<h3 id="Cards_View_Screenshots(カードビュー_スクリーンショット)">Cards View: Screenshots(カードビュー: スクリーンショット)</h3>
+
+<p>有効になると、open アプリがカードビューで表示された時、アプリのスクリーンショットが撮られます。無効になると、カードビューの代わりの空白のカードの中央にアプリアイコンが表示されます。</p>
+
+<h2 id="ウィンドウ管理の設定">ウィンドウ管理の設定</h2>
+
+<h3 id="Software_home_button(ソフトウェアのホームボタン)">Software home button(ソフトウェアのホームボタン)</h3>
+
+<p>このオプションを有効にした場合、ハードウェアホームボタンと同様な機能を提供するソフトウェアホームボタンが作成されます。これはタブレットのように、ハードウェアホームボタンを持たないであろう将来の端末使用に狙いを向けています。</p>
+
+<h3 id="Home_gesture(ホームジェスチャー)">Home gesture(ホームジェスチャー)</h3>
+
+<p>このオプションを有効にした場合、スクリーンの外から中央に向かって上向きにスワイプするとホームスクリーンが表示されます。さらに、ハードウェアホームボタンが利用できない場合は、この機能がハードウェアホームボタンと同じ機能を提供しえます。この機能は将来、タブレットのようなハードウェアホームボタンがないデバイスで使われることが計画されています。</p>
+
+<h3 id="Continuous_transition">Continuous transition</h3>
+
+<p>This setting allows you to decide whether app keyboards open immediately or continuously (with a transition). Disabling such transition effects are useful on low end devices, when they cause performance to suffer.</p>
+
+<h3 id="App_transition(アプリのトランザクション)">App transition(アプリのトランザクション)</h3>
+
+<p>Turn this on and then off again and you will disable all app closing/opening transitions: all apps will now just show immediately, without the smooth animation, and keyboards will also open/close without animation. Like "Continuous transition enabled", this is meant for improving performance on low end devices, but it has more of an effect.</p>
+
+<h3 id="App_suspending(アプリのサスペンド)">App suspending(アプリのサスペンド)</h3>
+
+<p>If enabled, this specifies that when an app is killed in the background, it will be kept in history and reopened when you open it from homescreen/card view. If disabled, such apps are not kept in history/card view.</p>
+
+<h2 id="デバッグ設定">デバッグ設定</h2>
+
+<h3 id="Log_slow_animations(遅いアニメをログ出力)">Log slow animations(遅いアニメをログ出力)</h3>
+
+<p>This tool tries to help developers understand why animations are not offloaded to the compositor to be run efficiently as possible. It reports "bugs" like trying to animate elements that are too large, or trying to animate CSS properties that can't be offloaded. The messages you'll get on the device will look like the following:</p>
+
+<pre>I/Gecko ( 5644): Performance warning: Async animation disabled because frame size (1280, 410) is bigger than the viewport (360, 518) [div with id 'views']
+</pre>
+
+<h3 id="Geolocation_output_in_ADB(ADBで位置情報を出力する)">Geolocation output in ADB(ADBで位置情報を出力する)</h3>
+
+<p>Enables logging of geolocation data to adb logcat. This helps with debugging both the GPS stack (namely we get NMEA callback) and MLS use.</p>
+
+<h3 id="Wi-Fi_output_in_adb(adbでWi-Fiを出力する)">Wi-Fi output in adb(adbでWi-Fiを出力する)</h3>
+
+<p>Enabling this option adds information about Wi-Fi to the adb logs (error logs from the console can be accessed using <code>adb logcat | grep "Error"</code> in the Terminal.)</p>
+
+<h3 id="Bluetooth_output_in_adb(adbでBluetoothを出力する)">Bluetooth output in adb(adbでBluetoothを出力する)</h3>
+
+<p>Enabling this option adds information about Bluetooth to the adb logs (error logs from the console can be accessed using <code>adb logcat | grep "Error"</code> in the Terminal.)</p>
+
+<h3 id="NFC_output_in_ADB">NFC output in ADB</h3>
+
+<p>Enabling this option adds information about NFC to the adb logs (error logs from the console can be accessed using <code>adb logcat | grep "Error"</code> in the Terminal.)</p>
+
+<h3 id="Console_enabled(コンソールの有効化)">Console enabled(コンソールの有効化)</h3>
+
+<p>When enabled, this option lets you use the <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Using_the_Remote_Web_Console" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Using_the_Remote_Web_Console">Web Console</a> in Firefox to remotely access the console output on the device; without this option enabled, the <a href="/ja/docs/Web/API/Console/log" title="デバッガの Web コンソールにメッセージを出力します。"><code>console.log()</code></a> function does nothing.</p>
+
+<h3 id="Gaia_debug_traces(Gaiaのデバッグトレース)">Gaia debug traces(Gaiaのデバッグトレース)</h3>
+
+<p>Enabling this directly enables DEBUG traces in Gaia; see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=881672" title="FIXED: Enabling a DUMP function for all Gaia apps">バグ 881672</a> for more details.</p>
+
+<div class="note">
+<p><strong>Note</strong>: Unfortunately, not every app supports this mechanism to print their debug log. Instead, they control a "DEBUG" flag in code directly, so enabling this flag does NOT ensure that you'll see all debug logs.</p>
+</div>
+
+<h3 id="Show_accessibility_settings(アクセシビリティの設定を表示)">Show accessibility settings(アクセシビリティの設定を表示)</h3>
+
+<p>This enables the accessibility settings menu, subsequently found at <em>Settings &gt; Accessibility</em>. The options contained within the accessibility settings are as follows:</p>
+
+<h4 id="Screen_reader(スクリーンリーダー)">Screen reader(スクリーンリーダー)</h4>
+
+<p>Enabling this option turns on Firefox OS's screen reader. This is technology that allows a blind person to use a Firefox OS device. Currently at a very early stage, it changes the way the standard touch events work. When the screen reader is on, you must interact with the screen as follows:</p>
+
+<ul>
+ <li>Touch somewhere to focus that app (or whatever) and be alerted as to what it is. This is indicated both by audible speech output and a rectangle around the selected item. Double tap anywhere on the screen (two taps in rapid succession) to activate the item that has the rectangle around it.</li>
+ <li>Swipe from left to right to move sequentially through items on the screen. Items are moved through from left to right, then top to bottom, including scrolling the screen vertically if there are more items to display, and you will be alerted as to each one's name via speech output and a rectangle. Swiping right to left moves through the items in reverse order. Again, double-tap the screen to execute the currently highlighted item.</li>
+ <li>Do a swipe with two fingers — left, right, up or down — to scroll the screen in that direction. This is equivalent to swiping one finger across the screen in the given direction when the screen reader is not running. For example, a two-finger swipe left on the first home screen will flip to the second one, and a two-finger swipe upwards on a home screen or browser would cause the screne to scroll downwards to show more content.</li>
+</ul>
+
+<div class="note">
+<p><strong>Note</strong>: If you have turned the screen reader on and wish to disable it again, you must navigate back to the setting via these new gestures and double-tap the checkbox once it is highlighted to turn it off again. That will restore the touch screen functionality to its default behaviour.</p>
+</div>
+
+<p><strong>Note</strong>: In Firefox 1.4 and above, there is a quick toggle for the screen reader. Press volume up, then down, three times (up, down, up, down, up, down). The screen reader will instruct you to perform this same action again (volume up, down, up, down, up, down) to turn it on if it is not running, or to turn it off if it is already running. If you do not want to change the current toggle state, simply do something else. That way, you can turn it on and off at will to test your web application for accessibility without having to navigate the accessibility settings menu each time.</p>
+
+<h4 id="Speech_volume(読み上げ音量)">Speech volume(読み上げ音量)</h4>
+
+<p>A slider that controls how loud the speech is delivered.</p>
+
+<h4 id="Speech_rate(読み上げの速さ)">Speech rate(読み上げの速さ)</h4>
+
+<p>A slider that controls how fast the speech is delivered.</p>
+
+<h3 id="Use_Marketplace_reviewer_certs">Use Marketplace reviewer certs</h3>
+
+<p>TBD</p>
+
+<h3 id="Shake_to_save_system_log">Shake to save system log</h3>
+
+<div class="note">
+<p><strong>Note</strong>: Introduced in Firefox 2.2</p>
+</div>
+
+<p>Enables Logshake, which polls the phone for high-acceleration movements. Upon detecting such a movement — i.e. when you shake the phone — it logs contents of the system log/logcat to the device's SD card, at <em>logs/&lt;datetime&gt;</em>. See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019816" title="FIXED: Developer option to store logcat to sdcard by shaking the phone">バグ 1019816</a> for more information.</p>
+
+<h3 id="Verbose_app_permissions">Verbose app permissions</h3>
+
+<div class="note">
+<p><strong>Note</strong>: Introduced with Firefox 2.1</p>
+</div>
+
+<p>When this is enabled, developers (and privacy enthusiasts) may modify all permissions granted to installed privileged apps, using The "App Permission" pane in the Settings app. The app sub-pages under here are updated upon enabling the setting to provide a list of each API permission is requested for in the app's manifest file, along with choices to set that permission to. For example, "Schedule Alarms" appears with choices of <em>Ask</em>, <em>Deny</em> and <em>Grant</em>. Note that some apps may be unable to deal with changed permissions. If you experience any odd behavior, consider resetting the permission or re-installing the app.</p>
+
+<h2 id="Launch_first_time_use">Launch first time use</h2>
+
+<p>The "Launch first time use" button runs the "First-Time Use" (FTU) program; this lets you go through the initial setup and tutorial process, and is useful when trying to debug that process, or if you want to re-configure your device from scratch.</p>
+
+<h2 id="Unlock_privileges">Unlock privileges</h2>
+
+<h3 id="Reset_and_enable_full_DevTools">Reset and enable full DevTools</h3>
+
+<div class="note">
+<p><strong>Note</strong>: Introduced in Firefox 2.2</p>
+</div>
+
+<p>This button allows you to enable <a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE#Unrestricted_app_debugging_%28including_certified_apps.2C_main_process.2C_etc.%29">unrestricted devtools mode</a> where you can debug and override system applications from <a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE">WebIDE</a>. For security reasons, enabling this mode is going to wipe device data. Note that once this mode is enabled, it is highly suggested to setup a pincode to unlock your device as this features enables easy access to internal data of your system applications (private informations, passwords, ...).</p>
+
+<h2 id="ソフトウェア更新">ソフトウェア更新</h2>
+
+<h3 id="Update_channel(更新チャンネル)">Update channel(更新チャンネル)</h3>
+
+<p>Enables you to specify different update channels to get software updates from when your device receives OTA updates. Options are <code>nightly</code>, <code>aurora</code> ... (others?)</p>
+
+<h3 id="Update_URL(更新URL)">Update URL(更新URL)</h3>
+
+<p>Enables you to specify different URLs from which to receive your updates.</p>
+
+<h2 id="古い設定">古い設定</h2>
+
+<p>This section lists settings that are no longer provided, or no longer exist in the same state, but might still be interesting if you are running an older version of Firefox OS.</p>
+
+<h3 id="Accessibility(アクセシビリティ)">Accessibility(アクセシビリティ)</h3>
+
+<p>In versions of Firefox earlier than newer 1.4 versions, this controls the accessibility settings, as explained in the <a href="#Show_accessibility_settings">Show_accessibility_settings</a> section above.</p>
+
+<h3 id="Grid(グリッド)">Grid(グリッド)</h3>
+
+<p>The "Grid" option, when enabled, causes the Firefox OS display to be overlaid with a grid pattern to help you gauge positioning and alignment of items. For example, below we see the Browser app running with the Grid option enabled:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/5071/Grid.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p>
+
+<p>The grid's heavier lines are 32 pixels apart, both horizontally and vertically.</p>
+
+<h3 id="Show_frames_per_second(秒間のフレームを表示)">Show frames per second(秒間のフレームを表示)</h3>
+
+<p>In Firefox OS versions older than newer 1.4, enabling this displays frames per second, as explained in the <a href="#Frames_per_second">Frames_per_second</a> section above.</p>
+
+<h3 id="Show_time_to_load(ロード時間を表示)">Show time to load(ロード時間を表示)</h3>
+
+<p>In Firefox OS versions older than newer 1.4, enabling this displays time to load information, as explained in the <a href="#Time_to_load">Time_to_load</a> section above.</p>
+
+<h3 id="Rocketbar_enabled(ロケットバー有効)">Rocketbar enabled(ロケットバー有効)</h3>
+
+<p>In Firefox OS versions older than newer 1.4, this option enables the new <a href="https://groups.google.com/forum/#!topic/mozilla.dev.gaia/Nlfbrq1KMP0">Firefox Rocketbar</a> on your device, which provides a useful new way to switch between apps, search, and more. When enabled, you'll find a search icon at the top left of the device, and the RocketBar can be brought up by swiping from the top left of the device towards the bottom left.</p>
+
+<div class="note">
+<p><strong>Note</strong>: In newer versions of Firefox OS, Rocketbar is enabled automatically and cannot be turned off.</p>
+</div>
+
+<h3 id="Contacts_debugging_output_in_adb(adbのデバッグ出力に接触)">Contacts debugging output in adb(adbのデバッグ出力に接触)</h3>
+
+<p>Enabling this option adds debugging information about contacts to the adb logs (error logs from the console can be accessed using <code>adb logcat | grep "Error"</code> in the Terminal.)</p>
+
+<h3 id="Progressive_paint_(以前は_Layers_Progressive_paint)(進歩的な描画)">Progressive paint (以前は Layers: Progressive paint)(進歩的な描画)</h3>
+
+<p>This was introduced to help with debugging of the <a href="https://wiki.mozilla.org/Platform/GFX/APZ">Async Panning/Zoom module</a> (APZ) during its implementation. Now APZ implementation is complete, this option is deprecated, and will be removed from future versions (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1003228" title="FIXED: Remove unnecessary APZ-related settings and menu items">バグ 1003228</a>).</p>
+
+<h3 id="Displayport_Heuristics">Displayport Heuristics</h3>
+
+<ul>
+ <li>Default</li>
+ <li>Center displayport</li>
+ <li>Assume perfect paints</li>
+ <li>Taller displayport</li>
+ <li>Faster paints</li>
+ <li>No checkerboarding</li>
+</ul>
+
+<p>These options were introduced to help with debugging of the <a href="https://wiki.mozilla.org/Platform/GFX/APZ">Async Panning/Zoom module</a> (APZ) during its implementation, specifically to allow QA to experiment with different repainting heuristics to see which resulted in the least amount of checkboarding.. Now APZ implementation is complete, these options are deprecated, and will be removed from future versions (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1003228" title="FIXED: Remove unnecessary APZ-related settings and menu items">バグ 1003228</a>).</p>
+
+<h3 id="Enable_APZ_for_all_content_(Async_PanZoom)">Enable APZ for all content (Async Pan/Zoom)</h3>
+
+<p>When enabled, the Async Pan/Zoom module allows panning and zooming to be performed on asynchronously, on another thread, with some noticeable differences to rendering behaviour. To find out more, read the <a href="https://wiki.mozilla.org/Platform/GFX/APZ">MozillaWiki APZ</a> article. Now APZ implementation is complete, this option is deprecated, and will be removed from future versions (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1003228" title="FIXED: Remove unnecessary APZ-related settings and menu items">バグ 1003228</a>).</p>
+
+<h3 id="Edges_gesture()">Edges gesture()</h3>
+
+<p>Enabling this option allows you to swipe left and right from outside the screen towards the center, to navigate to the next and previous sheets (either web pages in the browser, or views inside another app.) This basically works like the browser navigator bar in Firefox, but is enabled by default in Firefox 2.1+.</p>
+
+<h2 id="Keyboard_layouts(キーボードレイアウト)">Keyboard layouts(キーボードレイアウト)</h2>
+
+<p>上記の開発者固有オプションに加え、Firefox OS 1.4より前の開発者設定はキーボードレイアウトオプション機能がありました。これらにより実験的な中国語入力のオプションのオンオフ切り替えができます。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/5079/InputMethods.png"></p>
+
+<p>Firefox 1.4では、これらのオプションは削除されました。これは中国語キーボードレイアウト実装 (zhuyin と pinyin) が今や完了したためです。</p>
+
+<div class="note">
+<p><strong>記</strong>: 日本語といった、まだ開発中のキーボードレイアウトのため、オプトインするビルド時の設定があります。</p>
+</div>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/debugging/firefox_os_crash_reporting/index.html b/files/ja/archive/b2g_os/debugging/firefox_os_crash_reporting/index.html
new file mode 100644
index 0000000000..5ff8dcca7f
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/firefox_os_crash_reporting/index.html
@@ -0,0 +1,119 @@
+---
+title: Firefox OS クラッシュレポート
+slug: Archive/B2G_OS/Debugging/Firefox_OS_crash_reporting
+tags:
+ - Debugging
+ - Firefox OS
+ - QA
+ - Testing
+translation_of: Archive/B2G_OS/Debugging/Firefox_OS_crash_reporting
+---
+<div class="summary">
+<p>このページは Firefox OS でクラッシュレポートを扱う方法を詳解します、それにはクラッシュレポートの取得や、強制クラッシュが含まれます。</p>
+</div>
+
+<div class="note">
+<p>記: たいていのデスクトップ版 Firefox の貢献者は about:crashes を使うのに慣れています (詳細は<a href="/ja/docs/Crash_reporting">Crash reporting</a> を読んで下さい)、しかしこれは Firefox OS でサポートされていません。</p>
+</div>
+
+<h2 id="その他のものを試みる前に">その他のものを試みる前に</h2>
+
+<p>下記の手順は、すでにこれら3ステップに従っていると仮定しています:</p>
+
+<ol>
+ <li>端末の<a href="/ja/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">リモートデバッグ</a>が有効で、<a href="/ja/Firefox_OS/Debugging/Installing_ADB">ADB</a> がインストールされているのを確認します。これはコンピュータと端末との通信を可能にします。</li>
+ <li>端末とコンピュータをUSB経由で接続します。</li>
+ <li>必要なポートフォワードを扱う <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">ADB Helper アドオン</a> をデスクトップ版Firefox にインストールします。</li>
+</ol>
+
+<h3 id="BusyBoxをインストールする">BusyBoxをインストールする</h3>
+
+<p>BusyBoxユーティリティという、Firefox OSのテストやデバッグに役立つ ADB コマンドを追加するものをインストールするのも推奨されます。</p>
+
+<p>インストールするには、端末がスリープでないのを確認してから:</p>
+
+<ol>
+ <li><a href="https://wiki.mozilla.org/images/3/32/Busybox-b2g.tar.gz">BusyBoxをダウンロードします</a>。</li>
+ <li>tarballをそれなりの場所に展開します。</li>
+ <li>出てきた busybox-b2g ディレクトリに移動します。</li>
+ <li><code>./install.sh</code> を実行してインストールします。</li>
+</ol>
+
+<p>busybox ユーティリティの全ては <code>/system/bin 内にシンボリックリンクを追加します、よって</code> <code>ping</code> などのコマンドを直接使えます。次にサンプルコマンドを挙げます:</p>
+
+<pre class="brush: bash">adb shell ping 8.8.8.8 =&gt; ping command
+
+adb shell ifconfig wlan0 =&gt; check tx/rx bytes
+
+adb shell cat /proc/net/route =&gt; check the default route
+
+adb shell iptables -t nat -nvL =&gt; check if the packets are sent from application to IP layer, check Chain OUTPUT (policy ACCEPT 2 packets, 168 bytes)</pre>
+
+<h2 id="Firefox_OS_端末からクラッシュレポートを取得する">Firefox OS 端末からクラッシュレポートを取得する</h2>
+
+<p>クラッシュレポートを取得するFirefox OS アプリ — <a href="http://jds2501.github.io/webapi-permissions-tests/about-crashes.zip">About Crashes</a> — を作りました、これはバージョン 1.2+ で動きます。<br>
+ <br>
+ 端末にこれをインストールするには、次のステップに従います:</p>
+
+<ol>
+ <li>About Crashes は認定アプリなので、認定アプリのデバッグを有効にします (<a href="/ja/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a>と<a href="/ja/docs/Tools/WebIDE#Debugging_certified_apps">WebIDE</a>用の操作方法を見ます)。</li>
+ <li>About Crashes アプリのzip ファイルを上記リンクからダウンロードしてローカルに展開します。</li>
+ <li>デスクトップ版Firefox で、<a href="/ja/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a>か<a href="/en-US/docs/Tools/WebIDE">WebIDE</a> (お使いのFirefox バージョンによります) を開きます、場所は ツール&gt; Web 開発。</li>
+ <li>いずれのツールでも、About Crashes アプリをパッケージアプリに追加します (アプリマネージャ: <em>Add Packaged App</em> オプションの隣のプラス記号をクリック、WebIDE: 左側のドロップダウンメニューで <em>Add Packaged App...</em> を選択)。</li>
+ <li>端末をアプリマネージャ/WebIDEに接続します (アプリマネージャ: UIの底部にある一覧から見つける、WebIDE: <em>Select Runtime</em>から見つける)。</li>
+ <li>端末にアプリをインストールして開く (アプリマネージャ: アプリの <em>Update</em> ボタンを押す、WebIDE: "Play" ボタンを押す(<em>Install and Run</em>))。</li>
+ <li>端末でAbout Crashes の中の<em>Update</em> ボタンを押して最も最近のクラッシュを見る。</li>
+</ol>
+
+<h2 id="コマンドラインでクラッシュIDを取得する">コマンドラインでクラッシュIDを取得する</h2>
+
+<p>クラッシュIDをコマンドライン経由で取得でき、そうするにはターミナルで次のコマンドを入力します:</p>
+
+<pre class="brush: bash">adb shell ls -l /data/b2g/mozilla/Crash\ Reports/submitted/</pre>
+
+<p>クラッシュの一覧が長くて日付順にソートしたい場合、代わりに次のコマンドを使います:</p>
+
+<pre class="brush: bash">adb shell busybox ls -ltr /data/b2g/mozilla/Crash\ Reports/submitted/</pre>
+
+<h2 id="クラッシュレポートを取得・検証する">クラッシュレポートを取得・検証する</h2>
+
+<p>クラッシュレポートを検証するには:</p>
+
+<ol>
+ <li>拡張子なしのファイル名をコピーします。</li>
+ <li><a href="http://crash-stats.mozilla.org">Mozilla Crash Reports</a>に移動します。</li>
+ <li>拡張子なしのファイル名を右上の検索ボックスにペーストします。</li>
+</ol>
+
+<p>これで送信済みのクラッシュレポートが表示されます。</p>
+
+<h2 id="クラッシュを強制する方法">クラッシュを強制する方法</h2>
+
+<p>Firefox OS システムのクラッシュを引き起こすには、ターミナルで次のコマンドを入れてroot のプロセスIDを見つけます:</p>
+
+<pre class="brush: bash">adb shell ps | grep b2g</pre>
+
+<p>最初の行に <code>root</code> のある行を、そして<code>/system/b2g/b2g</code> を最後に見つけるでしょう。次のように見えるはず:</p>
+
+<pre class="brush: bash">root 109 1 191120 66024 ffffffff 400fa330 S /system/b2g/b2g</pre>
+
+<p>行の最初の数字は、プロセスをkill(強制停止)するのに必要となる kill プロセスid です。次のコマンドをこのIDをプレースホルダに当てはめて実行します:</p>
+
+<pre class="brush: bash">adb shell kill -11 [ENTER ID HERE]</pre>
+
+<p>root プロセスの停止は端末をクラッシュされるでしょう。</p>
+
+<h3 id="b2g用の_GDBスクリプトの実行方法">b2g用の GDBスクリプトの実行方法</h3>
+
+<ol>
+ <li>電話機でギャラリーアプリを起動し、ターミナルで次のコマンドを実行します:
+ <pre class="brush: bash">adb shell b2g-ps</pre>
+ </li>
+ <li>ギャラリーアプリのpid を控えて、次のコマンドを実行します:
+ <pre class="brush: bash">./run-gdb.sh attach &lt;pid&gt;</pre>
+ </li>
+ <li>クラッシュを起こす。</li>
+ <li>このコマンドを実行します:
+ <pre class="brush: bash">(gdb) bt</pre>
+ </li>
+</ol>
diff --git a/files/ja/archive/b2g_os/debugging/index.html b/files/ja/archive/b2g_os/debugging/index.html
new file mode 100644
index 0000000000..2d497eb057
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/index.html
@@ -0,0 +1,90 @@
+---
+title: Firefox OSをデバッグする
+slug: Archive/B2G_OS/Debugging
+tags:
+ - B2G
+ - Debugging
+ - Firefox OS
+ - NeedsTranslation
+ - QA
+ - Testing
+ - TopicStub
+translation_of: Archive/B2G_OS/Debugging
+---
+<div class="summary">
+ <p>Firefox OS では二つの主なデバッグのタイプがあります。アプリケーションのデバッグ、およびシステムのその他の部分です。このセクションでは Firefox OS のコードをデバッグするためのさまざまなツールを解説した記事を提供しています。</p>
+</div>
+<h2 id="アプリをデバッグする">アプリをデバッグする</h2>
+<p>webアプリをデバッグする時、利用できるベストなツールはMozillaの強力な<a href="/en-US/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a>です。実機上やシミュレータ上でアプリを直接実行できるし、変更をすぐに反映できるし、Mozillaの優秀な <a href="https://developer.mozilla.org/ja/docs/Tools" title="en-US/docs/Tools">開発ツール</a>を用いて端末上で直接デバッグできます。これはapp/Gaiaのデバッグには最初の選択になるでしょう。</p>
+<dl>
+ <dt>
+ <a href="/ja/docs/Tools/WebIDE">WebIDE を使用する</a></dt>
+ <dd>
+ WebIDE はアプリマネージャの置き換えです。アプリマネージャ同様に、Firefox OSシミュレータやFirefox OSの実機を使って、Firefox OSアプリを実行、デバッグできます。しかしながら、アプリを作成、開発する環境を編集する事もできます。</dd>
+</dl>
+<dl>
+ <dt>
+ <a href="/ja/Firefox_OS/Using_the_App_Manager">アプリマネージャを使用する</a></dt>
+ <dd>
+ アプリマネージャはデスクトップ版Firefoxで利用できる新ツールです。これはテストや、Firefox OSの電話機やFirefox OSシミュレータ上へのHTML5ウェブアプリのデプロイ、デバッグを補助する、数々の便利ツールを提供します。</dd>
+ <dt>
+ <a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_OOMs">Firefox OSでの"Out of memory"エラーをデバッグする </a></dt>
+</dl>
+<dl>
+ <dd>
+ この記事では、out of memoryエラーが起きた時にB2Gのマルチプロセスアーキテクチャが電話機の動作にどんな影響を及ぼすか、OOMクラッシュをどう理解してデバッグするか、について述べます。</dd>
+</dl>
+<h2 id="GaiaB2Gをデバッグする">Gaia/B2Gをデバッグする</h2>
+<p>GaiaアプリまたはB2G自体をデバッグしたい場合は以下に示すツールが利用できます。</p>
+<dl>
+ <dt>
+ <a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_using_the_desktop_B2G_client" title="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_using_the_desktop_B2G_client">デスクトップB2Gクライアントを使ったデバッグ</a></dt>
+ <dd>
+ B2GとGaiaの複数の側面をデバッグするために、専用のB2Gデスクトップアプリケーション(および関連ツール)を使用することができます。</dd>
+ <dt>
+ <a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Firefox_OS_crash_reporting">Firefox OS クラッシュレポート</a></dt>
+ <dd>
+ このページはFirefox OSのクラッシュレポートの扱い方法を、クラッシュレポートの取得やクラッシュを強制する事を含めて詳解します。</dd>
+ <dt>
+ <a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb" title="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb">gdbを使ったB2Gのデバッグ</a></dt>
+ <dd>
+ デバイス上またはエミュレータ上で実行しているFirefox OSとウェブアプリケーションをデバッグするためにポピュラーなgdbデバッガを使用することができます。このガイドではその使用方法を紹介します。</dd>
+ <dt>
+ <a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_valgrind" title="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_B2G_using_gdb">Valgrindを使ったB2Gのデバッグ</a></dt>
+ <dd>
+ Valgrindは開発者に、メモリ割り当て、スレッド、およびパフォーマンスにとって重要なその他の情報へのアクセスを提供します。このガイドではデスクトップB2Gか携帯電話ハードウェアでValgrindを実行する方法を示しています。</dd>
+ <dt>
+ <a href="/ja/docs/Mozilla/Debugging/HTTP_logging#Firefox_OS_phones" title="/ja/docs/Mozilla/Debugging/HTTP_logging#Firefox_OS_phones">B2GのNSPRログ取得</a></dt>
+ <dd>
+ HTTP、他のネットワーク通信の記録をNSPRログとして取得できます。</dd>
+ <dt>
+ <a href="/ja/docs/Mozilla/Debugging/Debugging_OpenGL" title="/ja/docs/Mozilla/Debugging/Debugging_OpenGL">OpenGLのデバッグ</a></dt>
+ <dd>
+ Firefox OS でOpenGLコードをデバッグする方法を示しています。</dd>
+</dl>
+<h2 id="一般的なセットアップと情報"><strong>一般的なセットアップと情報</strong></h2>
+<p>下記の記事には、Firefox OS開発向けの個々のセットアップ局面の情報が載っています。特にアプリマネージャを使ってアプリをデバッグしている場合、ひょっとして必要ないでしょう。しかし、もし必要となった場合のため、ここで利用できるようにしています。</p>
+<dl>
+ <dt>
+ <a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Developer_settings" title="/ja/docs/Mozilla/Firefox_OS/Debugging/Developer_settings">Firefox OSの開発者設定</a></dt>
+ <dd>
+ Firefox OS開発者用の設定オプションが多数あります。このガイドでは、それらが何をするのか、またそれらをどう利用するかを説明します。</dd>
+ <dt>
+ <a href="/ja/Firefox_OS/Debugging/Installing_ADB">ADBをインストールして使用する</a></dt>
+ <dd>
+ Firefox OS開発の多くの局面で<code>adb</code>、つまりAndroid Debug Bridgeのインストールを求められます。この記事では、その方法を説明し、よくあるADBの便利コマンドを共有します。</dd>
+ <dt>
+ <a href="/ja/Firefox_OS/Debugging/On-device_console_logging" title="/ja/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging">デバイス上でコンソールログを取る</a></dt>
+ <dd>
+ Firefox OS端末でログを取る方法や、コンピュータ上で見直すためにログ出力にアクセスする方法。</dd>
+ <dt>
+ <a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Connecting_a_Firefox_OS_device_to_the_desktop" title="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_Firefox_OS_apps_in_desktop_Firefox">Firefox OS端末とコンピュータを接続する</a></dt>
+ <dd>
+ この短いガイドは、コンピュータと端末をUSB経由で通信できるように、Firefox OS端末やコンピュータのセットアップ方法を説明します。</dd>
+ <dt>
+ <a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Setting_up" title="/ja/docs/Mozilla/Firefox_OS/Debugging/Setting_up">Firefox OSコードをデバッグするためにセットアップする</a></dt>
+ <dd>
+ Firefox OSのデバッグコード実行用の、Firefoxに統合されたツールの大半を使用開始が可能になる前に、少しの設定作業が必要です。この記事では、何をすべきかを説明します。</dd>
+</dl>
+<div style="background-color: transparent; color: #000000; position: absolute; top: 834px; left: 340px; padding: 0px; border-radius: 2px;" id="divLookup">
+ <img></div>
diff --git a/files/ja/archive/b2g_os/debugging/installing_adb/index.html b/files/ja/archive/b2g_os/debugging/installing_adb/index.html
new file mode 100644
index 0000000000..6e83e5a625
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/installing_adb/index.html
@@ -0,0 +1,105 @@
+---
+title: ADBをインストールして使用する
+slug: Archive/B2G_OS/Debugging/Installing_ADB
+tags:
+ - ADB
+ - B2G
+ - Firefox OS
+ - インストール
+translation_of: Archive/B2G_OS/Debugging/Installing_ADB
+---
+<div class="summary">
+<p><span class="seoSummary">Firefox OS 開発の色々な面で、<code>ADB</code>(Android Debug Bridge=Androidデバッグブリッジの略)のインストールが必要となってきます。この記事ではインストール方法を説明し、便利なADBコマンドを共有します。</span></p>
+</div>
+
+<h2 id="ADBをインストールする">ADBをインストールする</h2>
+
+<p>MacやLinuxやWindows向けのAndroid SDKパッケージの一部として、adbをダウンロード・インストールできます。 <a href="http://developer.android.com/sdk/index.html">Get the Android SDK</a>のページを参照してください。</p>
+
+<p>または<a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Firefoxアドオン</a>をインストールでき、これが最速の方法です。</p>
+
+<p>新しめのLinuxディストリビューションでは、すでに<code>リポジトリ内にadbがあります。</code>Ubuntu 12.10以降では下記のコマンドを実行します:</p>
+
+<pre>sudo apt-get install android-tools-adb</pre>
+
+<p>Fedora 19/20/21は次を:</p>
+
+<pre>sudo yum install android-tools</pre>
+
+<p>OSXで<a href="http://brew.sh/"> Homebrew</a> を使っている時はこちら:</p>
+
+<pre class="language-html"><code class="language-html">brew install android-platform-tools</code></pre>
+
+<p><code>adbがパッケージされていないディストリビューション</code> (つまりUbuntu 12.04 やFedora 17<span class="diff_add">/18</span>) では、<a class="external" href="http://developer.android.com/sdk/index.html" title="http://developer.android.com/sdk/index.html">Android SDK starter package</a>をインストールする必要があります (<em>SDKツールだけ</em>のオプションよりは、<em>ADTとのバンドル(セットになったもの)</em>が欲しくなるでしょう) 。<code>$SDK_HOME/tools/androidにあるパッケージマネージャを実行し、GUI を使用して</code> "Android SDK Platform-tools" をインストールします。</p>
+
+<p><code>adb</code> のインストール場所(通常は /usr/bin で、インストール方法によっては更に<code> $SDK_HOME/platform-tools </code>の中にもインストールされることもある)を探しておいてください。<code>忘れずにPATH</code> にこのディレクトリを追加してください。これを行うには、<code>~/.bashrc</code> やそれに相当するものに対して、次の行を付け加え、</p>
+
+<pre>PATH=$SDK_HOME:$PATH</pre>
+
+<p><code>$SDK_HOME</code> の値にAndroid SDK の場所を設定し直します。</p>
+
+<h2 id="トラブルシューティング">トラブルシューティング</h2>
+
+<p>64-bitのOSを使用していて、adbコマンドを使用する時にファイルが存在するにもかかわらず "File not found"(ファイルがありません) というエラーが出る時には、32-bitの互換ライブラリをインストールする必要があります。 aptでは以下のように実行します:</p>
+
+<pre class="language-html">sudo apt-get install ia32-libs</pre>
+
+<p id=".E3.82.88.E3.81.8F.E3.81.82.E3.82.8BADB.E3.82.B3.E3.83.9E.E3.83.B3.E3.83.89">'adb devices'を実行して端末が見つからない場合、<a href="https://gist.github.com/justinpotts/f0b0c3883d5947c219b5">ここ</a> をクリックして修正手順に従って下さい。</p>
+
+<h2 id="よくあるADBコマンド">よくあるADBコマンド</h2>
+
+<p><code>以下のセクションではよくある、便利なadbコマンドを説明します。</code></p>
+
+<h2 id="b2gプロセスを再起動する">b2gプロセスを再起動する</h2>
+
+<p>b2gはAndroidベースのカーネルの頂点にあってスマホ上で動作する <a href="/en-US/docs/XULRunner" title="/en-US/docs/XULRunner">XULRunner</a> アプリケーションと同等なものです。時にはこれを再起動したくなるかもしれません。これは端末全体を再起動することなしにアプリケーション環境をリセットする方法です。端末とコンピューターを接続した状態(またはデバッガを走らせた状態)で、ターミナル上で下記のように入力することで可能です:</p>
+
+<pre>adb shell killall b2g</pre>
+
+<h2 id="デバッグ用のポート転送を有効にする">デバッグ用のポート転送を有効にする</h2>
+
+<p>単なるポート転送をするには(例えばアプリマネージャで Firefox OS 端末上のアプリをデバッグしている時)、ターミナル上で下記のように入力します:</p>
+
+<pre class="language-html">adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</pre>
+
+<p>電話を再起動したり、抜き差ししたりした時、毎回必ずこれを行う必要があります。必要に応じソケット番号を変更できます。</p>
+
+<h2 id="ローカルマシンへポート転送する">ローカルマシンへポート転送する</h2>
+
+<p>ローカルマシンへポート転送するには、<a href="http://people.mozilla.org/~jmuizelaar/forward/">netcat and ssh binaries</a>をダウンロードし、下記コマンドを実行する必要があります:</p>
+
+<pre class="brush: bash language-html"><code class="language-html"># this is an awful hack but does in fact work...
+host$ adb forward tcp:7979 tcp:6969
+
+# make some named pipes so that we can make a bidirectional netcat
+phone$ mknod readback p
+host$ mknod readback p
+
+# this sets up a one time use connection to back to the host
+# listen on ports 6969 and 5959 and forward all the information between them
+phone$ ./netcat -l -p 6969 &lt; readback | ./netcat -l -p 5959 &gt; readback
+# connect to port 7979 (port 6969 on the device) and the local ssh server and forward all information between them
+host$ ./netcat localhost 7979 &lt; readback | ./netcat localhost 22 &gt; readback
+
+# now when we connect to port 5959 on the phone it will be like connecting to ssh server on the host
+
+# use the netcat reversal to set up an ssh connection back to the host and forward port 9999 on the device to 'localhost:8000' (this could be anything like 'google.com:80')
+phone$ ./ssh localhost -p 5959 -L 9999:localhost:8000</code></pre>
+
+<p>これは端末の9999番ポートをホストの8000番ポートに転送します。</p>
+
+<p>別の方法として、sshサーバー(<a href="http://people.mozilla.org/%7Ejmuizelaar/forward/dropbear">dropbear</a> と <a href="http://people.mozilla.org/%7Ejmuizelaar/forward/host_key">host_key</a>)を端末上で直接使う方法があります。それには下記コマンドを使用します:</p>
+
+<pre class="brush: bash language-html"><code class="language-html">phone$ DROPBEAR_PASSWORD=root ./dropbear -p 9000 -F -v -a -r host_key ./dropbear
+host$ adb forward tcp:8888 tcp:9000
+# public key authentication has been hard coded to succeed (make sure you have a public key for ssh to use)
+host$ ssh -vvv root@localhost -p 8888 -R 9999:people.mozilla.org:80</code></pre>
+
+<p>詳細な情報:</p>
+
+<ul>
+ <li><a href="http://k.japko.eu/android-dropbear.html">dropbearをビルドするマニュアル(英語)</a></li>
+ <li>環境変数値の不足によるクラッシュを無効にし、認証成功をハードコードする<a href="http://people.mozilla.org/%7Ejmuizelaar/forward/dropbear-b2g.patch">dropbear パッチ</a></li>
+</ul>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 2686px; left: 83px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/debugging/intercepting_traffic_using_a_proxy/index.html b/files/ja/archive/b2g_os/debugging/intercepting_traffic_using_a_proxy/index.html
new file mode 100644
index 0000000000..48d3387375
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/intercepting_traffic_using_a_proxy/index.html
@@ -0,0 +1,185 @@
+---
+title: プロキシを使って Firefox OS トラフィックを傍受する
+slug: Archive/B2G_OS/Debugging/Intercepting_traffic_using_a_proxy
+tags:
+ - Apps
+ - B2G
+ - Debugging
+ - Firefox OS
+ - Gaia
+ - Security
+ - Testing
+translation_of: Archive/B2G_OS/Debugging/Intercepting_traffic_using_a_proxy
+---
+<p></p><div style="text-align: right;" class="prevnext">
+ <p><a style="float: left;" href="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_and_security_testing">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Apps/Testing_in_a_privileged_context">次のページ »</a></p>
+</div><p></p>
+
+<div class="summary">
+<p>デバッグとセキュリティテスト記事のこの部分では、プロキシツールを使ったFirefox OS トラフィックの傍受を見ます、それには プロキシの SSL 証明書をホワイトリストにしてFirefox OS が誰かが傍受しているのを記にしなくするのと、HTTPS通信の再カプセル化が含まれます。B2G デスクトップを使う場合、チュートリアルの最初にある、Marionette JavaScriptデバッグシェルのインストール・アタッチの方法の部分は、 <a href="/ja/docs/Mozilla/Firefox_OS/Security/Debugging_and_security_testing" title="/en-US/docs/Mozilla/Firefox_OS/Security/Debugging_and_security_testing">Debugging and security testing with Firefox OS</a>で説明されています。</p>
+</div>
+
+<p>HTML と JavaScript だけのアプリで作業している時、Web上でデータ転送する API を含む、本当に面白い作品がたくさん見つかるでしょう。このことは、それらのアプリが実行するHTTPリクエストを観察する事がしばしば役立つことを意味します。<a href="http://portswigger.net/burp/">Burp</a> や <a href="https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project">ZAP</a> といったプロキシーツールには、そんなトラフィックを観測するのに役立つ機能があります。これらはクライアントがどうやって自分自身を調節するのかについてや、TLS終端などをインストールするルート証明書などの情報を含んだマニフェストを提供しています。</p>
+
+<p><a href="/ja/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a> の 'Firefox OS の main プロセスのデバッグ' 機能に関連して、スクラッチパッドで <a href="https://github.com/mozfreddyb/b2g-misc/blob/master/PnH-FxOS.js">いくつかのコードを</a> 実行して、プロキシーのルート証明書をあなたの端末にインストールできます。</p>
+
+<h2 id="Firefox_OS_の_mainプロセスをデバッグする">Firefox OS の mainプロセスをデバッグする</h2>
+
+<p>それでどうやって Firefox の mainプロセスをデバッグするのでしょう? Firefox Simulator か実端末のどちらでも、<a href="https://developer.mozilla.org/ja/Firefox_OS/Using_the_App_Manager#Debugging_Certified_Apps">プロファイルにいくつかの設定を入れる事で</a>認定アプリをアプリマネージャ経由でデバッグできます。 まず次のステップに従い、次にプラウザを再起動する前に <code>about:config</code> 内の<code>devtools.chrome.enabled</code> 設定を <code>true</code> にします。</p>
+
+<p>次に、アプリマネージャを使って端末・simulator に接続し、そして端末画面に "DEBUG MAIN PROCESS" ボタンが見えます; それをクリックすると JSMs のデバッグと、スクラッチパッドないでの権限つき JavaScript 実行ができるようになります。</p>
+
+<div class="note">
+<p><strong>記</strong>: mainプロセスで何を実行するかについては注意して下さい: たまたま端末を破壊してしまう可能性があります!</p>
+</div>
+
+<h2 id="ZAPを導入する">ZAPを導入する</h2>
+
+<p>まずは、ZAP を使ってプロセスを使い続けましょう。ZAP は、簡単にデバッグするためにHTTPS通信を妨害して再暗号化する防御プロキシーです。<a href="https://www.owasp.org/index.php/ZAP" title="https://www.owasp.org/index.php/ZAP">ZAP ホームページ</a> の大きな青いボタンをクリックしてダウンロードします。他のプロキシーを使用する事を選んだ場合、このアプローチは両方とも動作するはずなので、どうぞ併用して下さい。</p>
+
+<h3 id="ZAP_証明書">ZAP 証明書</h3>
+
+<p>いま、どのプロキシを使っていても、その証明書を <code>owasp_zap_root_ca.cer といったファイルにエクスポートします(メニューでは <em>Tools &gt; Options &gt; Dynamic SSL Certificates &gt; Save</em>)</code>。ZAP が初回起動した時、1年間有効な証明書を生成します。ダイナミック SSL 証明書のセクションから、新しい証明書を生成することもできます。</p>
+
+<h3 id="ローカルプロキシ">ローカルプロキシ</h3>
+
+<p>B2G デスクトップを使っている場合、必ず ZAP が <code>localhost</code> ではなく、代わりに属性 IP アドレス (イーサーネットかWi-Fi) をリッスンしているのを確かめる必要があります。これは B2G デスクトップの <code>localhost</code> はデスクトップコンピュータではなく、b2g バイナリ自身を指しているためです。例えば、次のIP アドレスを使うでしょう: <code>10.264.1.5</code>.</p>
+
+<p>実機で作業している時、必ず電話機とコンピュータが同一ネットワーク/VLANに接続していて、お互い通信できるようにしておきます (疑う場合、片方の端末の IP からもう一方をpingしてみて下さい)。</p>
+
+<h2 id="端末をプロキシに接続する">端末をプロキシに接続する</h2>
+
+<p>次に色々な方法でプロキシと接続できます:</p>
+
+<p>端末からデフォルト設定を取り出したり、それらを変更して関連するプロキシ設定を追加したり、戻したりできます。</p>
+
+<p>あるいは、ツール構成して <a href="https://www.computerist.org/blog/2014/07/23/Transparent-HTTPS-proxying-with-ZAP/">proxy HTTP and HTTPS transparently</a> にあわせて、端末がプロキシを指すように <code>iptables</code> をセットアップできます。例えば HTTPS トラフィックがプロキシツールを通過するようには:</p>
+
+<div class="codehilite">
+<pre><span class="n">adb</span> <span class="n">shell</span> <span class="n">iptables</span> <span class="o">-</span><span class="n">t</span> <span class="n">nat</span> <span class="o">-</span><span class="n">A</span> <span class="n">OUTPUT</span> <span class="o">-</span><span class="n">p</span> <span class="n">tcp</span> <span class="o">--</span><span class="n">dport</span> <span class="mi">443</span> <span class="o">-</span><span class="n">j</span> <span class="n">DNAT</span> <span class="o">--</span><span class="n">to</span><span class="o">-</span><span class="n">destination</span> <span class="mf">192.168.0.14</span><span class="o">:</span><span class="mi">8443</span>
+</pre>
+</div>
+
+<p>そして、完了後にリセットするには:</p>
+
+<div class="codehilite">
+<pre><span class="n">adb</span> <span class="n">shell</span> <span class="n">iptables</span> <span class="o">-</span><span class="n">t</span> <span class="n">nat</span> <span class="o">-</span><span class="n">F</span>
+</pre>
+</div>
+
+<h3 id="LANのプロキシをセットアップする">LANのプロキシをセットアップする</h3>
+
+<p>この種の活動が大変だと思う場合、ずっと便利な方法があります; 全てのトラフィックがデフォルトでプロキシを通るテストの LAN をセットアップすることです。この方法で、接続する無線LANを変更するだけで、プロキシのオンオフができます。</p>
+
+<p>raspberry pi を使ってビルドしていて、<a href="http://raspberry-at-home.com/hotspot-wifi-access-point/">手順はこれらと同様です</a>。<code>iptables</code> ルールを次のように変更しました:</p>
+
+<div class="codehilite">
+<pre class="brush: bash">*filter
+:INPUT ACCEPT [49:3128]
+:FORWARD ACCEPT [0:0]
+:OUTPUT ACCEPT [37:3924]
+-A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
+-A FORWARD -i wlan0 -o eth0 -j ACCEPT
+COMMIT
+*nat
+:PREROUTING ACCEPT [1:72]
+:INPUT ACCEPT [1:72]
+:OUTPUT ACCEPT [1:148]
+-A PREROUTING -i wlan0 -p tcp -m tcp --dport 80 -j DNAT --to-destination &lt;proxy_host&gt;:&lt;http_port&gt;
+-A PREROUTING -i wlan0 -p tcp -m tcp --dport 443 -j DNAT --to-destination &lt;proxy_host&gt;:&lt;https_port&gt;
+:POSTROUTING ACCEPT [0:0]
+-A POSTROUTING -o eth0 -j MASQUERADE
+COMMIT
+</pre>
+</div>
+
+<h2 id="証明書データベースを作成する">証明書データベースを作成する</h2>
+
+<p>Accepting certificates happens in settings, which are stored in profiles. Here's a short primer on Firefox profiles:</p>
+
+<ol start="1" style="list-style-type: decimal; margin-left: 40px;">
+ <li>Start the Firefox profile manager using the -P option on the command line, and make sure that Firefox is not using any existing Firefox sessions (<code>-no-remote</code>):
+
+ <ul style="margin-left: 40px;">
+ <li>On Linux, you need to do:
+ <pre class="brush: bash">firefox -P -no-remote</pre>
+ </li>
+ <li>On Mac OS X:
+ <pre class="brush: bash">/Applications/Firefox.app/Contents/MacOS/firefox -P -no-remote</pre>
+ </li>
+ </ul>
+ </li>
+ <li>Now create a new profile called "zapped." Go to the certificate settings — <em>Edit &gt; Preferences &gt; Advanced &gt; Encryption &gt; View Certificates &gt; Import</em>. Now select the <code>owasp_zap_root_ca.cer</code> file created by your proxy and tell Firefox that it should trust this CA to identify web sites (this is really only valid for this profile).</li>
+ <li>Having used Firefox to create a certificate database for us, we can now use this database for our B2G profile. The name of your Firefox profile directory is a random string that ends with <em>zapped</em>. The location depends on your operating system; see <a href="/en-US/docs/Runtime_Directories" title="/en-US/docs/Runtime_Directories">Runtime Directories</a> for details on where it can be found.</li>
+ <li><strong>For B2G desktop</strong>, we only need the <code>cert8.db</code> file, which is the profile's certificate database. Copy it over to your b2g profile directory <code>b2g/gaia/profile/</code>.</li>
+ <li><strong>On a device,</strong> copy the cert9.db on your device profile directory:
+ <pre>$ adb shell stop b2g
+$ adb push cert9.db /data/b2g/mozilla/*.default</pre>
+ </li>
+</ol>
+
+<div class="note">
+<p><strong>Note</strong>: This will overwrite the existing file.</p>
+</div>
+
+<h2 id="B2Gをセットアップする">B2Gをセットアップする</h2>
+
+<p>The next step is to set ZAP as the default proxy for all network communication. The proxy settings, like the certificate settings, are currently not available from the Firefox OS user interface.</p>
+
+<h3 id="B2G_デスクトップでは">B2G デスクトップでは</h3>
+
+<p>You need to append these custom settings to the preferences file, <code>b2g/gaia/profile/prefs.js</code>:</p>
+
+<pre><code class="brush: bash">user_pref("network.proxy.backup.ftp", "10.264.1.5");
+user_pref("network.proxy.backup.ftp_port", 8080);
+user_pref("network.proxy.backup.socks", "10.264.1.5");
+user_pref("network.proxy.backup.socks_port", 8080);
+user_pref("network.proxy.backup.ssl", "10.264.1.5");
+user_pref("network.proxy.backup.ssl_port", 8080);
+user_pref("network.proxy.ftp", "10.264.1.5");
+user_pref("network.proxy.ftp_port", 8080);
+user_pref("network.proxy.http", "10.264.1.5");
+user_pref("network.proxy.http_port", 8080);
+user_pref("network.proxy.no_proxies_on", "");
+user_pref("network.proxy.share_proxy_settings", true);
+user_pref("network.proxy.socks", "10.264.1.5");
+user_pref("network.proxy.socks_port", 8080);
+user_pref("network.proxy.ssl", "10.264.1.5");
+user_pref("network.proxy.ssl_port", 8080);
+user_pref("network.proxy.type", 1);</code>
+</pre>
+
+<div class="note">
+<p><strong>Note</strong>: Remember to replace my IP address 10.264.1.5 with yours, and if your proxy does not listen on port 8080, make sure you change it in this file too.</p>
+</div>
+
+<p>At this point, you should be ready to go! Start B2G Desktop again, and try some browsing. Network traffic should appear in ZAP.</p>
+
+<h3 id="端末では">端末では</h3>
+
+<p>To enable this functionality on a device, you'll need to modify the <code>prefs.js</code> file located in your profile on the device. Connect the device to your computer which has previously been set up with the adb tools.</p>
+
+<p>First, you need to know what the name of your profile directory is. You can find it like this:</p>
+
+<pre>adb shell ls /data/b2g/mozilla</pre>
+
+<p>Among the output, you'll see a directory named with a number of random numbers and letters ending with ".default". This is your profile directory. Use that name where you see "xxxxxxxx" from here on in these instructions.</p>
+
+<p>Next, grab the <code>prefs.js</code> file so you can edit it:</p>
+
+<pre>adb pull /data/b2g/mozilla/xxxxxxx.default/prefs.js</pre>
+
+<p>Open the resulting file in your favorite text editor; at the end of the file, add the custom settings indicated in the section above and save your changes. Now all you need to do is push the changed file back to the device and restart the b2g process to pick up the changes, as follows (the B2G process should already be stopped if you followed the earlier instructions to push cert9.db):</p>
+
+<pre>adb push pref.js /data/b2g/mozilla/xxxxxxxx.default
+adb shell start b2g</pre>
+
+<p></p><div style="text-align: right;" class="prevnext">
+ <p><a style="float: left;" href="/ja/docs/Mozilla/Firefox_OS/Debugging/Debugging_and_security_testing">« 前のページ</a><a href="/ja/docs/Mozilla/Firefox_OS/Apps/Testing_in_a_privileged_context">次のページ »</a></p>
+</div><p></p>
+
+<h3 id="Charles_Proxy">Charles Proxy</h3>
+
+<p>Users looking to use Charles Proxy should see this blog post: <a href="https://muffinresearch.co.uk/proxying-connections-from-ffos/">https://muffinresearch.co.uk/proxying-connections-from-ffos/</a></p>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/debugging/on-device_console_logging/index.html b/files/ja/archive/b2g_os/debugging/on-device_console_logging/index.html
new file mode 100644
index 0000000000..64b3104b5b
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/on-device_console_logging/index.html
@@ -0,0 +1,66 @@
+---
+title: デバイス上でコンソールログを取る
+slug: Archive/B2G_OS/Debugging/On-device_console_logging
+tags:
+ - B2G
+ - Firefox OS
+ - デバッグ
+translation_of: Archive/B2G_OS/Debugging/On-device_console_logging
+---
+<div class="summary">
+ <p><span class="seoSummary"><a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Using_the_Remote_Web_Console" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Using_the_Remote_Web_Console">remote web console</a>を使ってコンソールログを出力、閲覧できるのに加え、 端末のファイル保存領域にログ出力できて、次に後ほど<a href="http://developer.android.com/tools/help/logcat.html" title="http://developer.android.com/tools/help/logcat.html"><code>logcat</code></a>ユーティリティを使ってUSB接続したコンピュータからログを取得できます。この記事ではこの機能を有効化し、ログを出力し、ログを取る方法を網羅します。</span></p>
+</div>
+<h2 id="コンソールログ取得の有効化">コンソールログ取得の有効化</h2>
+<p><span style="line-height: 1.5;">製品版のFirefox OS端末ではコンソールログの出力(例えば、</span><span style="line-height: 1.5;"><a href="/ja/docs/Web/API/Console/log" title="デバッガの Web コンソールにメッセージを出力します。"><code>console.log()</code></a>)</span><span style="line-height: 1.5;">は標準では無効となっています。有効にするには端末の</span><a style="line-height: 1.5;" href="/ja/Firefox_OS/Debugging/Developer_settings">開発者メニュー</a>に行き<em>コンソールを有効化</em><span style="line-height: 1.5;">の設定を有効にして下さい。</span></p>
+<h2 id="ログを取得する">ログを取得する</h2>
+<p>一度、コンソールを有効化にすれば、デスクトップのFirefox OSと同じように動作します。<a href="/ja/docs/Web/API/Console" title="Console オブジェクトは、ブラウザのデバッグコンソール(例えば Firefox の Web コンソール)へアクセスする機能を提供します。このオブジェクトの詳細な動作はブラウザによって異なりますが、一般的に共通の機能セットがサポートされています。"><code>console</code></a> のメソッドを使うことでテキストログをコンソールに出力することができます。以下に例を記載します。</p>
+<pre class="brush: js">console.info("Starting up the foobar hardware!");
+var err = foobar.start();
+if (err) {
+ console.error("--Error %d starting up the foobar hardware!", err);
+}
+</pre>
+<div class="note">
+ <p><b>注意</b>: <a href="/ja/docs/Web/API/Console" title="Console オブジェクトは、ブラウザのデバッグコンソール(例えば Firefox の Web コンソール)へアクセスする機能を提供します。このオブジェクトの詳細な動作はブラウザによって異なりますが、一般的に共通の機能セットがサポートされています。"><code>console</code></a> にコンソールログ機能の使い方について記載されています。</p>
+</div>
+<h2 id="logcatを使用する">logcatを使用する</h2>
+<p>Firefox OS端末では出力されたログは端末内に保存されるのですが、端末からはログを確認する為のインタフェースはありません。その為、コンピュータを使用してそのログを確認する必要があります。<span style="line-height: 1.5;">Android SDKに含まれる</span><code style="font-style: normal; line-height: 1.5;">adb</code><span style="line-height: 1.5;">から</span><code style="font-style: normal; line-height: 1.5;">logcat</code><span style="line-height: 1.5;">コマンドを使う必要があります(</span><a style="line-height: 1.5;" href="/en-US/Firefox_OS/Debugging/Installing_ADB">Installing ADB</a> もあわせて見てみて下さい<span style="line-height: 1.5;">)。</span></p>
+<p>幸運なことに、<code style="font-style: normal; line-height: 1.5;">logcat</code><span style="line-height: 1.5;"> はとてもシンプルに使うことが出来ます。一度</span><code style="font-style: normal; line-height: 1.5;">adb</code><span style="line-height: 1.5;">をインストールしてしまえば、端末をUSBをでコンピュータに繋いでターミナルから以下のコマンドを入力するだけです。</span></p>
+<pre class="brush: bash">adb logcat</pre>
+<p>以下は実際の端末で出力されたログになります( これらのログは端末内の <span style="font-family: 'Courier New', 'Andale Mono', monospace; line-height: 1.5;">/dev/log/system/</span><span style="line-height: 1.5;">に保存されています)。</span></p>
+<pre class="brush: bash">I/Vold ( 107): Vold 2.1 (the revenge) firing up
+D/Vold ( 107): Volume sdcard state changing -1 (Initializing) -&gt; 0 (No-Media)
+D/Vold ( 107): Volume emmc state changing -1 (Initializing) -&gt; 0 (No-Media)
+D/Vold ( 107): Volume sdcard state changing 0 (No-Media) -&gt; 2 (Pending)
+D/Vold ( 107): Volume sdcard state changing 2 (Pending) -&gt; 1 (Idle-Unmounted)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+W/Vold ( 107): Duplicate state (1)
+D/Vold ( 107): Volume emmc state changing 0 (No-Media) -&gt; 2 (Pending)
+D/Vold ( 107): Volume emmc state changing 2 (Pending) -&gt; 1 (Idle-Unmounted)
+D/VoldCmdListener( 107): volume list
+D/VoldCmdListener( 107): volume mount sdcard
+I/Vold ( 107): /dev/block/vold/179:20 being considered for volume sdcard
+D/Vold ( 107): Volume sdcard state changing 1 (Idle-Unmounted) -&gt; 3 (Checking)
+W/Vold ( 107): Skipping fs checks
+I/Vold ( 107): Device /dev/block/vold/179:20, target /mnt/sdcard mounted @ /mnt/secure/staging
+D/Vold ( 107): Volume sdcard state changing 3 (Checking) -&gt; 4 (Mounted)
+D/VoldCmdListener( 107): volume mount emmc
+I/Vold ( 107): /dev/block/vold/179:33 being considered for volume emmc
+D/Vold ( 107): Volume emmc state changing 1 (Idle-Unmounted) -&gt; 3 (Checking)
+W/Vold ( 107): Skipping fs checks
+I/Vold ( 107): Device /dev/block/vold/179:33, target /mnt/emmc mounted @ /mnt/secure/staging
+D/Vold ( 107): Volume emmc state changing 3 (Checking) -&gt; 4 (Mounted)
+
+etc.
+</pre>
diff --git a/files/ja/archive/b2g_os/debugging/setting_up/index.html b/files/ja/archive/b2g_os/debugging/setting_up/index.html
new file mode 100644
index 0000000000..526442b910
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/setting_up/index.html
@@ -0,0 +1,57 @@
+---
+title: Firefox OSコードをデバッグするためにセットアップする
+slug: Archive/B2G_OS/Debugging/Setting_up
+tags:
+ - B2G
+ - Firefox OS
+ - デバッグ
+translation_of: Archive/B2G_OS/Debugging/Setting_up
+---
+<div class="summary">
+<p>Firefox OS はAndroidのモバイル版Firefoxがサポートするのと同じデバッグプロトコルをサポートします。つまりFirefox OS 端末やエミュレータ上で実行するGaiaアプリケーションをデバッグするのにFirefox開発ツールを使用できます。端末上のFirefox OS やFirefox OS Simulatorをデバッグするためには、Firefox 18以降が必要で、加えて設定変更が、ブラウザのコンフィグレーションと、Firefox OS端末やsimulatorの両方で必要となります。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: Firefox OS 端末でアプリをデバッグしたい場合、Firefox OS 1.2以上を使っているなら代わりに<a href="/ja/docs/Tools/WebIDE">WebIDE</a>を使うのがベストな選択肢です。</p>
+</div>
+
+<h2 id="デスクトップ版Firefox">デスクトップ版Firefox</h2>
+
+<p>リモートデバッグのサポートには、Firefox 18かそれ以降のビルドがあるのを確認する必要があります。Firefoxの最近のコピーをまだ持っていない場合、最新の<a href="http://nightly.mozilla.org/" title="http://nightly.mozilla.org/">Nightly</a> ビルドをダウンロードして全ての最新機能にアクセスできるようにします。</p>
+
+<p>いったんコンピュータ上で Firefox の適切なバージョンを実行し、URLバー内で <code>about:config</code> とタイプして、<code>devtools.debugger.remote-enabled</code> の値を <code>true に変更します。次に</code>リモートデバッグを有効にするため、 Firefox を再起動する必要があります。Firefoxを再起動後に、Web開発メニューには新しいオプションがあるでしょう、 <em>Tools &gt; Connect...</em></p>
+
+<h2 id="デバッグを有効にする">デバッグを有効にする</h2>
+
+<p><a href="/ja/docs/Tools/Firefox_OS_Simulator" title="Tools/Firefox OS Simulator">Firefox OS Simulator</a> (かB2Gデスクトップ) を使っている時、デバッグ用セットアップはとても簡単です。物理端末のデバッグする時のようなポート転送の必要はありません。ただ端末で <a href="/ja/Firefox_OS/Debugging/Developer_settings">Developer settings</a> を開いて <em>Remote Debugging</em> を有効化します。</p>
+
+<div class="warning">
+<p>記: 2013年1月10日以後のFirefox OS端末ではもはや動作しません。この日以降のFirefox OS端末用ビルドはデバッグが無効になっています。結局は再度有効化したビルドを作る道はできるでしょうが、まだ存在していません。この文書はそうなった時に更新されるでしょう。加えて、out-of-processサポートを切る設定は削除されました。これからはFirefox OS Simulatorでデバッグを行う必要があるでしょう。</p>
+</div>
+
+<p>実際の Firefox OS 端末を使っている場合、 <a href="/ja/Firefox_OS/Debugging/Developer_settings">Developer settings</a> を開いて:</p>
+
+<ul>
+ <li><em>Remote Debugging</em> をオンにします。</li>
+ <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=797627" title="Remote Debugging Protocol needs a way to contact B2G subprocesses">バグ 797627</a> が修正されるまでは <em>Out-of-process</em> サポートをオフにします。それをしないと、ただシステムスクリプトだけをデバッグできます。</li>
+</ul>
+
+<div class="note">
+<p><strong>記:</strong> 端末に書き込む時、これらの設定変更をし直す必要があるでしょう。</p>
+</div>
+
+<p><a href="/ja/docs/Tools/Debugger" title="/en-US/docs/Tools/Debugger">デバッガを使用</a>する準備ができました!</p>
+
+<h2 id="Firefox端末でコンソールログを有効にする">Firefox端末でコンソールログを有効にする</h2>
+
+<p>Firefox OSの製品版ビルドでは、コンソールログ (例えば <a href="/ja/docs/Web/API/Console/log" title="デバッガの Web コンソールにメッセージを出力します。"><code>console.log()</code></a>) はデフォルトで無効です。それを有効化するには、端末の<a href="/ja/Firefox_OS/Debugging/Developer_settings">Developer settings</a> に移動して<em> Console Enabled</em> を有効にします。</p>
+
+<p>記: Firefox OSのコンソールログを使用する詳細については、<a href="/ja/docs/Mozilla/Firefox_OS/Debugging/On-device_console_logging">端末上のコンソールログ</a> を読んで下さい。</p>
+
+<h2 id="参考情報">参考情報</h2>
+
+<ul>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/Debugging" title="/en-US/docs/Mozilla/Firefox_OS/Debugging">Firefox OSをデバッグする</a></li>
+ <li><a href="/ja/docs/Tools/Debugger" title="/en-US/docs/Tools/Debugger">デバッガ</a></li>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Developer_settings" title="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings">Firefox OSの開発者設定</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/debugging/taking_screenshots/index.html b/files/ja/archive/b2g_os/debugging/taking_screenshots/index.html
new file mode 100644
index 0000000000..18415d310c
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/taking_screenshots/index.html
@@ -0,0 +1,89 @@
+---
+title: スクリーンショットを取る
+slug: Archive/B2G_OS/Debugging/taking_screenshots
+tags:
+ - Firefox OS
+ - スクリーンショット
+ - デバッグ
+translation_of: Archive/B2G_OS/Debugging/taking_screenshots
+---
+<div class="summary">
+<p><span class="seoSummary">アプリケーションのスクリーンショットを撮ることは、多くの状況で役立ちます。例えば顧客に成果を見せたり、アプリを Marketplace に発行したり。この記事では Firefox OS 電話機でスクリーンショットを撮る方法を説明します。</span></p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: Android 開発者は手馴れているでしょう: 手順は全く一緒です。</p>
+</div>
+
+<h2 id="電話機を準備する">電話機を準備する</h2>
+
+<ol>
+ <li>電話機で、<a href="/ja/Firefox_OS/Debugging/Developer_settings">Developer Settings</a> に移動し、<em>Remote Debugging</em> と <em>Console Enabled</em> をチェックします。</li>
+ <li>電話機に <a href="/ja/Firefox_OS/Debugging/Installing_ADB">ADB がインストールされていて</a>、動作するのを確認します。</li>
+ <li>電話機を USB 経由でコンピュータに接続します。</li>
+</ol>
+
+<h2 id="スクリーンショットを取る">スクリーンショットを取る</h2>
+
+<p>4 つの選択肢があります: ターミナルを使用するか、Eclipse で DDMS を使用するか、電話機で専用のボタンの組み合わせを使うか、アプリマネージャを使用するかです。</p>
+
+<h3 id="ターミナル">ターミナル</h3>
+
+<p>ターミナルウィンドウを開き、下記 3 つのコマンドを入力します:</p>
+
+<ol>
+ <li>下記のコマンドを使用しスクリーンショットを撮ります (<code>screenshot.png</code> の名前は変更可能です):<br>
+ <code>adb shell screencap -p /sdcard/screenshot.png</code></li>
+ <li>コンピュータに画像を移動します:<br>
+ <code>adb pull /sdcard/screenshot.png</code></li>
+ <li>端末からスクリーンショットを削除します:<br>
+ <code>adb shell rm /sdcard/screenshot.png</code></li>
+</ol>
+
+<p>あるいは、ffmpeg を使用することもできます:</p>
+
+<ol>
+ <li>ffmpeg がインストールされているのを確認します:
+ <ol>
+ <li>Mac で MacPorts を使用している場合、<code>sudo port install ffmpeg</code> を実行します。homebrew では、<code>brew install ffmpeg</code> を実行します。</li>
+ <li>Linux (Ubuntu/Debian) では、<code>sudo apt-get install ffmpeg</code> を使用します。</li>
+ </ol>
+ </li>
+ <li><code>cd</code> コマンドで <code>B2G/gaia</code> ディレクトリに移動します。</li>
+ <li><code>make screenshot</code> コマンドを使ってスクリーンショットを撮ります。</li>
+ <li><code>screenshot.png</code> という名前のスクリーンショットができます。</li>
+</ol>
+
+<h3 id="DDMS">DDMS</h3>
+
+<p>Eclipse を起動します。</p>
+
+<ol>
+ <li>DDMS を開きます: <em>Window &gt; Open Perspective &gt; Other &gt; DDMS</em></li>
+ <li>左側のパネルにある <em>Devices</em> タブ内で、<em>Screen capture</em> ボタンをクリックします。</li>
+ <li>いくつかのオプション付きの新規ウィンドウが開きます; <em>Save</em> ボタンをクリックしてスクリーンショットを保存します。</li>
+</ol>
+
+<div class="note">
+<p><strong>記</strong>: DDMS についてもっと学ぶには、<a href="http://developer.android.com/tools/debugging/ddms.html" title="DDMS documentation">DDMS documentation</a> をご覧ください。</p>
+</div>
+
+<h3 id="電話機のボタンの組み合わせ">電話機のボタンの組み合わせ</h3>
+
+<ol>
+ <li>Firefox OS バージョン 2.0 以下では、<em>Home</em> ボタンと <em>電源</em> ボタンを同時に数秒間長押しします。</li>
+ <li>Firefox OS バージョン 2.1 以降では、<em>Volume Down</em> ボタンと <em>電源</em> ボタンを同時に数秒間長押しします。</li>
+</ol>
+
+<p>これでスクリーンショットが撮られ、Gallery に保存されます。画像は SD カードからコンピュータに、最もやりやすい方法でコピーできます。</p>
+
+<div class="note">
+<p><strong>記</strong>: 多くの人にとって <em>Home</em> ボタンと <em>電源</em> ボタンが想定より難しい (特に片手では) ために、ボタンの組み合わせが変更されました。加えて、ハードウェアの <em>Home</em> ボタンがない端末がきちんとサポートされいていなかった (ロック画面のように Gaia のあちこちでソフトウェア <em>Home</em> ボタンが使えない)のが変更の原因です。</p>
+</div>
+
+<h3 id="アプリマネージャSimulator">アプリマネージャ/Simulator</h3>
+
+<ol>
+ <li><a href="https://developer.mozilla.org/ja/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a> を開き、電話機と接続し、左の <strong>Device</strong> タブに移ります。</li>
+ <li>ページ下部 (Simulator を起動したのと同じ場所) にある <strong>スクリーンショット</strong> ボタンをクリックします。</li>
+</ol>
diff --git a/files/ja/archive/b2g_os/debugging/testing_in_a_privileged_context/index.html b/files/ja/archive/b2g_os/debugging/testing_in_a_privileged_context/index.html
new file mode 100644
index 0000000000..43d823683a
--- /dev/null
+++ b/files/ja/archive/b2g_os/debugging/testing_in_a_privileged_context/index.html
@@ -0,0 +1,113 @@
+---
+title: '特権アプリとしてテストする: 自身のGaiaアプリを配信する'
+slug: Archive/B2G_OS/Debugging/Testing_in_a_privileged_context
+tags:
+ - セキュリティ
+ - テスト
+translation_of: Archive/B2G_OS/Debugging/Testing_in_a_privileged_context
+---
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Intercepting_traffic_using_a_proxy" style="float: left;">« 前のページ</a><br></p>
+</div><p></p>
+
+<div class="summary">
+<p id="Testing_in_a_Privileged_Context.3A_Shipping_your_own_Gaia_Apps">お気づきの通り、JavaScriptを実行しても<a href="/docs/WebAPI">輝かしい全てのWebAPI</a>にアクセスできるわけではありません。特定のAPIを利用するアプリは、そのAPIへのアクセスを<a href="/docs/Apps/Manifest">アプリマニフェスト</a>のなかで要求しなければなりません。 <span class="seoSummary">この記事では、マーケットに特権アプリを配信する前にアプリをテストする方法をお伝えします。</span></p>
+</div>
+
+<p>現在起動しているアプリのメタデータとマニフェストを変数として取得するには、このようなコードを利用できます。</p>
+
+<p> </p>
+
+<pre class="brush: js">navigator.mozApps.getSelf().onsuccess = function(e) {
+ appself = e.result;
+}</pre>
+
+<p>このコードではアプリのメタデータを<code>appself</code>という変数に格納します。</p>
+
+<p>同様に、もし起動しているものと別のアプリのパーミッションを閲覧したい場合、b2gデスクトップのテストビルドで利用できる"許可設定 (Permissions)"からテストしたいアプリを確認してみてください。b2gデスクトップは現在インストールされている全てのアプリの許可設定をエミュレートするものです。</p>
+
+<p>いくつかの既存のWebAPIは、どんな種類のアプリでも利用できません。それらのAPIを利用するには、最上級の権限で (つまり、認定アプリとして) インストールする必要があります。自身でそれを行うには、b2gレイヤのトップであるGaiaをカスタマイズしたバージョンをビルドする必要があります。これを行うには、<code>git</code>や<code>make</code>といった環境で作業しなければなりません。Firefox OSのビルド環境の設定について詳しくは<a href="/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Firefox OS ビルドの必要条件</a>を確認してください。</p>
+
+<p>この場合は、Firefox OS全てをビルドする必要はなく、Gaiaだけで十分です。どのようにするか見てみましょう。</p>
+
+<h2 id="Gaiaをダウンロードしてビルドする"><strong>Gaiaをダウンロードしてビルドする</strong></h2>
+
+<p>最初に、Gaiaをダウンロードしてビルドする必要があります。これによってb2gデスクトップでロードできるプロファイルを作成します。以下のコマンドを使えば完了です。</p>
+
+<pre class="brush: bash">$ git clone https://github.com/mozilla-b2g/gaia
+$ cd gaia
+$ make
+</pre>
+
+<div class="warning">
+<p><strong>警告:</strong> 初めてGaiaをビルドする場合、<a href="/docs/XULRunner" title="/docs/XULRunner">XULRunner</a>のダウンロードを要求されます。これは500MBほどあるため、ダウンロードに少々時間がかかり、また多くの空き容量が必要です。</p>
+</div>
+
+<p> </p>
+
+<p>この操作は標準的なGaiaをビルドします。つまりカスタマイズの準備が整ったということです。</p>
+
+<h3 id="カスタマイズしたアプリを準備する"><strong>カスタマイズしたアプリを準備する</strong></h3>
+
+<p>XULRunnerがダウンロードされている間、<a href="https://github.com/mozilla-b2g/gaia">Gaiaのソースコードを読むこと</a>をおすすめします。ダウンロードが進行している間にカスタマイズしたアプリを準備してしまえるでしょう。</p>
+
+<p>Gaiaに内容されている全てのアプリ (設定、電話帳、ブラウザ等) は<code>apps/</code>ディレクトリに保存されています。これはあなたの特権アプリもそこに置く必要があるということです。この記事のために、<a href="https://github.com/freddyb/allperms"><em>allperms</em></a>という名前のサンプルアプリを作り、GitHubで公開しています。</p>
+
+<p>Gaiaの<code>apps/</code>ディレクトリのなかにサンプルアプリを clone して、コードツリーを変更してみましょう:</p>
+
+<pre>cd apps
+git clone <span class="nolink">https://github.com/freddyb/allperms.git</span>
+</pre>
+
+<p>最初のGaiaのビルドが完了し、<code>xulrunner-sdk</code>がダウンロードされたら、<code>apps/</code>のなかに<code>allperms</code>を含めてGaiaを再ビルドすることができます。しかし心配ありません、ほとんどのものはすでにコンパイルされているため、再ビルドは非常に早いはずです。単に以下を実行します:</p>
+
+<pre>make
+</pre>
+
+<h2 id="新しいプロファイルを使ったB2G_デスクトップを読み込む"><span class="mw-headline">新しいプロファイルを使ったB2G デスクトップを読み込む</span></h2>
+
+<p><a href="/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client">B2G デスクトップ</a>には主に2つの実行ファイルがあります: <code>b2g</code>と<code>b2g-bin</code>です。コマンドラインの引数を指定したい場合は後者を利用します。</p>
+
+<div class="note">
+<p><strong>Note:</strong> B2G デスクトップアプリケーションについての補足情報については<a href="/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client" title="/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client">B2G デスクトップクライアントを使用する</a>を確認してください。</p>
+</div>
+
+<p><code>-profile</code>オプションであなたがビルドしたGaiaのプロファイルへのパスを指定し、<code>b2g</code>の実行ファイルを読み込みます。</p>
+
+<h3 id="Linux">Linux</h3>
+
+<pre class="brush: bash">$ b2g-bin -profile /path/to/gaia/profile
+</pre>
+
+<h3 id="Mac_OS_X">Mac OS X</h3>
+
+<p>Max OS Xでは、gaiaのディレクトリからコマンドを起動するには以下のようにします。(あなたが標準的なアプリケーションフォルダにB2Gをインストールしていると想定しています)</p>
+
+<pre class="brush: bash">$ /Applications/B2G.app/Contents/MacOS/b2g-bin -profile /path/to/gaia/profile
+</pre>
+
+<h3 id="Windows">Windows</h3>
+
+<p>この部分は準備中です。</p>
+
+<h3 id="期待する動作">期待する動作</h3>
+
+<p>全てがうまくいくと、ロックスクリーンが見えているはずです:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/5059/lockscreen.png" style="width: 320px; height: 480px;"></p>
+
+<p>B2G デスクトップを利用する際には、<a href="/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client#Command_line_options" title="/docs/Mozilla/Firefox_OS/Using_the_B2G_desktop_client#Command_line_options">いくつかの便利なコマンドラインオプションがあります</a>。</p>
+
+<div class="note">
+<p><strong>Note: </strong>このプロファイルは<strong>標準の設定</strong>で再度スタートします。テストの環境を整えるために行った全てのカスタマイズは、再度行う必要があります。これには<a href="/docs/Marionette" title="/docs/Marionette">Marionette</a>やプロキシ、証明書の設定も含みます。</p>
+</div>
+
+<h2 id="完了">完了</h2>
+
+<p>あなたの<code>allperms</code>アプリはインストールされ、全ての利用可能なパーミッションを備えているはずです。</p>
+
+<p>次に、<a href="/docs/Mozilla/Firefox_OS/Debugging_and_Security_Testing_with_Firefox_OS" title="/docs/Mozilla/Firefox_OS/Debugging_and_Security_Testing_with_Firefox_OS">Debugging and security testing with Firefox OS</a>を参考にしてMarionetteのステップを再度繰り返すことで、全てのWebAPIにアクセスできるテスト用の環境を用意することができます。</p>
+
+<p></p><div class="prevnext" style="text-align: right;">
+ <p><a href="/ja/docs/Mozilla/Firefox_OS/Debugging/Intercepting_traffic_using_a_proxy" style="float: left;">« 前のページ</a><br></p>
+</div><p></p>
diff --git a/files/ja/archive/b2g_os/developer_mode/index.html b/files/ja/archive/b2g_os/developer_mode/index.html
new file mode 100644
index 0000000000..0a90ad93f5
--- /dev/null
+++ b/files/ja/archive/b2g_os/developer_mode/index.html
@@ -0,0 +1,139 @@
+---
+title: 開発者モード
+slug: Archive/B2G_OS/Developer_Mode
+translation_of: Archive/B2G_OS/Developer_Mode
+---
+<div class="warning">
+<p><span style="font-size: 14px; line-height: 21px;"><strong>重要</strong></span>: Developer Mode basically removes most of the security checks associated with using sensitive APIs on Firefox OS; it is a useful testing tool, but it is not recommended to have it activated on your everyday device for any period of time.</p>
+</div>
+
+<p class="summary">The current Firefox OS permissions model precludes modification and installation of certified/internal apps, which makes some device APIs completely unavailable to Marketplace and web apps. <strong>Developer Mode (DM)</strong> allows the user to indicate that they would like to relax the permissions model and expose all device APIs to content, as well as setting a group of related preferences. This article provides a high-level overview.</p>
+
+<div class="note">
+<p><strong>記</strong>: Developer Mode is only supported on Firefox OS 3.0+, including Spark.</p>
+</div>
+
+<h2 id="Features">Features</h2>
+
+<p>Once DM has been enabled on a device, the user receives the following benefits:</p>
+
+<ul>
+ <li>Certified/internal apps can be installed from anywhere.</li>
+ <li>All developer-related prefs and settings are enabled, such as certified app debugging, web components, etc.</li>
+ <li>Apps can install add-ons for themselves using the "import-app" activity.</li>
+</ul>
+
+<h3 id="Certified_apps_can_be_installed">Certified apps can be installed</h3>
+
+<p>Normally, certified/internal apps must be shipped with a Firefox OS distribution. With DM enabled, any app with the <code>certified</code> type can be installed, and can request any certified permissions. Thus, all device API's are unlocked with DM enabled.</p>
+
+<h3 id="Developer_prefs_and_settings_enabled">Developer prefs and settings enabled</h3>
+
+<p>As of this writing, the following preferences are set when DM is enabled:</p>
+
+<ul>
+ <li><code>dom.apps.developer_mode: true</code></li>
+ <li><code>devtools.debugger.forbid-certified-apps: false</code></li>
+ <li><code>network.disable.ipc.security: true</code></li>
+ <li><code>dom.webcomponents.enabled: true</code></li>
+</ul>
+
+<p>This also sets the following settings:</p>
+
+<ul>
+ <li><code>developer.menu.enabled: true</code></li>
+</ul>
+
+<h3 id="Add-on_import_activity">Add-on import activity</h3>
+
+<p>Apps can normally not install apps or add-ons without requesting the <code>webapps-manage</code> permission, which is available to certified/internal apps only. With DM enabled, apps can create add-ons for themselves using the "import-app" activity. The imported app must meet the following criteria:</p>
+
+<ul>
+ <li>It must be an add-on.</li>
+ <li>Its filter(s) must only match the app initiating the activity.</li>
+</ul>
+
+<p>The following example demonstrates this:</p>
+
+<pre class="brush: js">var activity = new MozActivity({
+ name: 'import-app',
+ data: {
+ blob: blob /* app blob */
+ }
+});
+
+activity.onsuccess = function() {
+ // The Settings app has imported the app blob.
+};
+
+activity.onerror = function(e) {
+ // The Settings app failed to import the app for some reason.
+};
+</pre>
+
+<h2 id="Enabling_and_disabling">Enabling and disabling</h2>
+
+<p>DM can be toggled using the Settings app, WebIDE, or an activity. All have the same net effect, but enabling it through WebIDE is the only method that doesn't require a factory reset.</p>
+
+<h3 id="Settings_app">Settings app</h3>
+
+<div class="note">
+<p><strong>Note</strong>: Enabling DM via the Settings app or activity will factory reset your device. Use the WebIDE method if you'd like to avoid this.</p>
+</div>
+
+<p>To enable or disable DM via the Settings app:</p>
+
+<ol>
+ <li>Open the Settings app.</li>
+ <li>If you see a "Developer" panel near the end, skip to #6.</li>
+ <li>Tap on the "Device Information" panel near the end.</li>
+ <li>Tap on the "More Information" panel.</li>
+ <li>Enable "Developer Menu."</li>
+ <li>Tap on "Factory Reset and Enable Full DevTools" near the end to toggle it.</li>
+ <li>Your device will reboot and go into recovery mode. It'll reboot again in a minute or so into Firefox OS with developer mode toggled.</li>
+</ol>
+
+<h3 id="WebIDE">WebIDE</h3>
+
+<div class="note">
+<p><strong>Note</strong>: DM cannot currently be disabled via WebIDE.</p>
+</div>
+
+<p>To enable DM via <a href="/en-US/docs/Tools/WebIDE">WebIDE</a>:</p>
+
+<ol>
+ <li>Open WebIDE.</li>
+ <li>Connect to your device using the "Select Runtime" menu.</li>
+ <li>Open "Runtime Info" from the device menu.</li>
+ <li>Look at "ADB is root." If there's a button next to it, press it. If it says "maybe", or "no", or anything like that, there's a problem. If it says "yes," it's already set, and you can skip to step 5.
+ <ol>
+ <li>When WebIDE is disconnected from the device, reconnect it.</li>
+ <li>Re-open the "Runtime Info" menu.</li>
+ </ol>
+ </li>
+ <li>Look at "Unrestricted DevTools privileges." If there's a button next to it, press it. If not, it should say "yes." If it says "maybe", or "no", or anything like that, there's a problem.</li>
+ <li>Developer mode is now enabled.</li>
+</ol>
+
+<h3 id="Activity">Activity</h3>
+
+<div class="note">
+<p><strong>Note</strong>: Enabling DM via the Settings app or activity will factory reset your device. Use the WebIDE method if you'd like to avoid this.</p>
+</div>
+
+<div class="note">
+<p><strong>Note</strong>: The user's Developer Menu must already be enabled for this to work.</p>
+</div>
+
+<p>The activity to dispatch to enable or disable developer mode is "full-developer-mode". Here is an example:</p>
+
+<pre class="brush: js">var activity = new MozActivity({
+ name: 'configure',
+ data: {
+ target: 'device',
+ section: 'full-developer-mode'
+ }
+});
+</pre>
+
+<p>This will take the user to the Settings app, where they will be prompted to toggle developer mode, with a lot of warnings about the consequences.</p>
diff --git a/files/ja/archive/b2g_os/developing_firefox_os/customizing_the_b2g.sh_script/index.html b/files/ja/archive/b2g_os/developing_firefox_os/customizing_the_b2g.sh_script/index.html
new file mode 100644
index 0000000000..dce377a90d
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_firefox_os/customizing_the_b2g.sh_script/index.html
@@ -0,0 +1,49 @@
+---
+title: b2g.shスクリプトをカスタマイズする
+slug: Archive/B2G_OS/Developing_Firefox_OS/Customizing_the_b2g.sh_script
+tags:
+ - B2G
+ - Firefox OS
+ - デバッグ
+ - ハック
+translation_of: Archive/B2G_OS/Developing_Firefox_OS/Customizing_the_b2g.sh_script
+---
+<div class="summary">
+ <p>電話機では、<code><a href="/en-US/docs/Mozilla/Firefox_OS/Architecture#The_userspace_process_architecture" title="/en-US/docs/Mozilla/Firefox_OS/Architecture#The_userspace_process_architecture">b2g</a></code> アプリケーション(とりわけFirefox OS API群を提供します)は <code>/system/bin/b2g.sh</code> スクリプト経由で起動します。このスクリプトをカスタマイズしてFirefox OSの挙動を変更でき、この記事で方法を説明します。</p>
+</div>
+<h2 id="環境変数のセット">環境変数のセット</h2>
+<p>単にB2Gを一度実行するために環境変数をセットしたい場合、下記のようにします:</p>
+<pre class="brush: bash">adb shell stop b2g
+adb shell "export ENV_VAR=value &amp;&amp; /system/bin/b2g.sh"
+</pre>
+<p>ずっと同じ環境変数を使いたい場合、<code>次の節に書いてあるように<code> b2g.sh を</code>編集できます。</code></p>
+<h2 id="b2g.shを編集する">b2g.shを編集する</h2>
+<p>デバッグ用途で、ログ取得やb2gプログラムの動作に影響を与えるために環境変数をセットしたい場合があります。<code>b2g.sh</code><code><code>スクリプトを</code>編集</code>することで、これが可能です。電話機上でファイルを書き換えるツールはないので、まずコンピュータにファイルをコピーしないといけません。</p>
+<ol>
+ <li>電話機をコンピュータに接続し、ターミナルウィンドウを開き、下記コマンドを実行してスクリプトを編集します:
+ <pre>adb pull /system/bin/b2g.sh</pre>
+ </li>
+ <li>お好みの変更となるようスクリプトを編集します。例えば、ログ出力が見たいとすると(デバッグビルドが必要です)、下記のようなものを追加します:
+ <pre>export NSPR_LOG_FILE=/data/local/tmp/mylog.txt
+export NSPR_LOG_MODULES=Layers:5
+</pre>
+ </li>
+ <li>下記のコマンドを実行し、更新された<code>b2g.sh</code>スクリプトを電話機に保存してb2gを再起動します:
+ <pre>adb shell stop b2g
+adb remount
+adb push b2g.sh /system/bin
+adb shell chmod 0755 /system/bin/b2g.sh
+adb shell start b2g
+</pre>
+ </li>
+</ol>
+<div class="note">
+ <p><strong>記:</strong> <code>/data/local/tmp</code> は、コンテントプロセスから書き込み可能となる、ファイルシステム上の唯一の場所です。</p>
+</div>
+<h2 id="参考">参考</h2>
+<ul>
+ <li><a href="/ja/Firefox_OS/Building_and_installing_Firefox_OS" title="/en-US/docs/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko">Firefox OS のビルドとインストール</a></li>
+ <li><a href="/ja/Firefox_OS/Platform/Architecture" title="/en-US/docs/Mozilla/Firefox_OS/Architecture">Firefox OSのアーキテクチャ</a></li>
+ <li><a href="/ja/Firefox_OS/Debugging" title="/en-US/docs/Mozilla/Boot_to_Gecko/Debugging_on_Boot_to_Gecko">Firefox OSをデバッグする</a></li>
+</ul>
+<p> </p>
diff --git a/files/ja/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html b/files/ja/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html
new file mode 100644
index 0000000000..addbd49074
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_firefox_os/filing_bugs_against_firefox_os/index.html
@@ -0,0 +1,199 @@
+---
+title: Firefox OSのバグを登録する
+slug: Archive/B2G_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS
+tags:
+ - Bugzilla
+ - Firefox
+ - Firefox OS
+ - QA
+translation_of: Archive/B2G_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS
+---
+<div class="summary">
+<p><span class="seoSummary">この記事ではFirefox OSプロジェクト(GaiaとB2Gを含む)のバグを登録するためのガイドを提供します。</span></p>
+</div>
+
+<h2 id="Bugzilla">Bugzilla</h2>
+
+<p>Mozillaでは、ほとんどのプロジェクトでバグおよび課題の状況のトラッキングのために<a href="/docs/Mozilla/Bugzilla">Bugzilla</a>を使っています。バグを見つけた時は誰でも<a href="https://bugzilla.mozilla.org/">bugzilla</a>に登録できます。Bugzillaの中に、<a style="line-height: 1.5;" href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">Firefox OS 向けに独立したプロダクトカテゴリ</a>があって、<a style="line-height: 1.5;" href="/Firefox_OS/Platform/Gaia">Gaia</a><span style="line-height: 1.5;">、</span><a style="line-height: 1.5;" href="/Firefox_OS/Platform/Gonk">Gonk、</a><a style="line-height: 1.5;" href="/docs/Mozilla/Gecko">Gecko</a>などのトピック用のコンポーネントを含んでいます。Firefox OS、Gaia、その他のバグはこのコンポーネントに登録してください。</p>
+
+<h3 id="バグを登録する">バグを登録する</h3>
+
+<p>効果的にバグを登録するために、<a href="http://mzl.la/1KL4ktp">Bugzilla template</a>を使い、下記の手順にしたがってテンプレートを埋めてください。</p>
+
+<h3 id="必須のフィールドと任意のフィールド">必須のフィールドと任意のフィールド</h3>
+
+<p>新しいバグを登録する時、下記を含むいくつかのフィールドは必須項目です。</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col"><strong>フィールド</strong></th>
+ <th scope="col"><strong>内容</strong></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Component</td>
+ <td>バグの所属するカテゴリを選択します。もし、バグがどのカテゴリに所属するかわからない時には、"General"(一般)を選択してください。</td>
+ </tr>
+ <tr>
+ <td>Summary</td>
+ <td>バグの内容を簡潔に記述します。</td>
+ </tr>
+ <tr>
+ <td>Description</td>
+ <td>
+ <p>できるだけ明確に状況を記述します。良いバグレポートをするには、再現手順(STR)、あるべき結果と実際の結果を含めてください。また、可能であれば発生頻度 (つまり、何度も再現手順を繰り返した場合、バグが何度発生するか) を含めてください。</p>
+ </td>
+ </tr>
+ <tr>
+ <td>Build Information</td>
+ <td>
+ <p>Firefox OS端末の画面で、「環境設定 &gt; 端末情報 &gt; その他の情報」の順に操作し、下記の項目をバグレポートに含めてください。​</p>
+
+ <ul>
+ <li>OS のバージョン</li>
+ <li>ビルドナンバー</li>
+ <li>プラットフォームのバージョン</li>
+ <li>ビルド ID</li>
+ <li>更新チャンネル</li>
+ <li>Git コミット情報</li>
+ </ul>
+
+ <p>もし、MacやLinuxなどで adb や git をインストールして使っているのであれば、<a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/check_versions.py">このスクリプト</a>を実行して、その結果をテキストでコピー&amp;ペーストしてください。</p>
+ </td>
+ </tr>
+ <tr>
+ <td>Screenshots</td>
+ <td>バグを解析するのに役立つスクリーンショットを添付します。(Flameでは、電源ボタンと音量下げボタンを2秒以上同時に押し続けると、音や画面のフラッシュがしてスクリーンショットが撮れます。それをUSBを経由してコンピュータに転送してください。)</td>
+ </tr>
+ <tr>
+ <td>Video</td>
+ <td>バグが画面遷移をする中で発生し、スクリーンショットで説明するのが難しい場合は、動画を撮影してください。その動画を添付ファイルとしてアップロードできます。また、YouTubeにアップロードしてそのURLをバグレポートにコピー&amp;ペーストすることもできます。</td>
+ </tr>
+ <tr>
+ <td>ADB logs</td>
+ <td>コンピューターに adb がインストールされている場合、電話機に接続しておいて | adb logcat | を実行して表示される結果をプレーンテキストに保存し、バグレポートに添付してください。</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>下記のフィールドは任意です:</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col"><strong>フィールド</strong></th>
+ <th scope="col"><strong>内容</strong></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Depends/Block</td>
+ <td>バグ同士の依存関係を表します。</td>
+ </tr>
+ <tr>
+ <td>Keywords</td>
+ <td>bugzilla用のキーワードです。特定のグループがバグをトラッキングするのに使われます。</td>
+ </tr>
+ <tr>
+ <td>Whiteboard</td>
+ <td>タグを含みます。トラッキング用にあらゆるタグを追加して下さい。他人のタグを許可なく削除してはいけません。</td>
+ </tr>
+ <tr>
+ <td>See Also</td>
+ <td>異なるバグが関連している際に、このフィールドで指定できます。</td>
+ </tr>
+ <tr>
+ <td>Flags</td>
+ <td>ステータストラッキング用のフラグです。Firefox OSでは、 blocking-b2g というフラグが最もよく使われます。バグが blocking-b2g にセットされた場合、そのバグはリリースをブロックするため、そのバグにより注意を払う必要があります。</td>
+ </tr>
+ <tr>
+ <td>Security</td>
+ <td>バグが個人情報のセキュリティや、資産の損失や、そのような問題に関連している場合、このチェックボックスをチェックしてください。このチェックによって、そのバグは専任の従業員のみが見ることができるようになります。</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>bugzillaのフィールドの詳細な説明については、Bugzilla内にある<a href="https://bugzilla.mozilla.org/page.cgi?id=fields.html">Bugzilla Fields</a>ページを参照してください。</p>
+
+<h3 id="ローカライゼーションのバグを登録する">ローカライゼーションのバグを登録する</h3>
+
+<p>翻訳されていない文字列がある場合、以下の2通りの可能性があります。</p>
+
+<ul>
+ <li>翻訳者がまだ文字列を翻訳していない場合。この場合はバグを登録しないでください。</li>
+ <li>ローカライザビリティ(localizability - l12y)の問題で翻訳者が文字列を翻訳できなかった場合。この場合はバグを登録してください。</li>
+</ul>
+
+<h4 id="ローカライザビリティ(l12y)バグを登録するには">ローカライザビリティ(l12y)バグを登録するには</h4>
+
+<ol>
+ <li>Firefox OSで「環境設定 &gt; 端末情報 &gt; その他の情報」を開き、「開発者メニュー」をオンにしてください。</li>
+ <li>「環境設定 &gt; 開発者」で「Pseudo-Localization」をオンにしてください。</li>
+ <li>「環境設定 &gt; 言語」で「Accented English」(奇妙な文字列で表示されています)を選択してください。</li>
+ <li>文字列が翻訳されていなかった画面に戻ります。もし、文字列が通常の英語で表示されていれば(Accented Englishの奇妙な文字列で表示されていなければ)、多くの場合それは l12y の問題です。</li>
+ <li>Bugzillaで、 product に「Firefox OS」を指定し、さらに翻訳されていない文字列があるコンポーネントを指定してください。キーワードには「l12y」を指定してください。</li>
+ <li>必須事項を記入し、バグを登録してください。</li>
+</ol>
+
+<h3 id="よくあるキーワード">よくあるキーワード</h3>
+
+<p>Firefox OS のバグでよく使われるキーワードを下記の表に示します。</p>
+
+<p>バグを検証したり、バグにコメントをしたり、バグの <em>Status</em> を <em>Verified</em> に設定するときには、必ず ビルド/OS/プラットフォーム を明示する必要があります。もし、バグが3つのプラットフォームで報告されて、あなたが確認や修正したのがそのうち1つである場合、それをバグのノートに明示し、バグを <em>Verified</em> に変更しないでください。 <em>Status</em> が <em>Verified</em> に変更されるときには、全てのプラットフォームでチェックが行われる必要があります。</p>
+
+<p>最終的に、その他のバグがあなたの検証しているバグの複製であるとマークされた場合、それらにチェック、言及する事を確実にしてください。しばしば開発者は関連した(だが同一でない)バグを複製としてマークし、これらがチェックされていないと見過ごされる事があります。</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col"><strong>キーワード</strong></th>
+ <th scope="col"><strong>内容</strong></th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>meta</td>
+ <td>バグがステータストラッキングバグであることを示します。Mozillaは複数のバグや、ユーザーストーリーの実装状況を追跡するのにこのタグを使います。一旦このマークがなされると、開発者はこうしたバグの上部にパッチを置くべきではありません。プロジェクトマネージャーやQAスタッフが追跡のためにmetaバグを使うのを覚えておいて下さい。</td>
+ </tr>
+ <tr>
+ <td>qablocker</td>
+ <td>テスト (手動や自動の機能テスト)をブロックするバグにこのキーワードを使用します。このバグは、次の Beta や RC のマイルストーンまでには修正する必要があります。</td>
+ </tr>
+ <tr>
+ <td>qawanted</td>
+ <td>もっと情報が必要な時や、再現法やテストケースが必要であったり、複製だったり (だが複製元のオリジナルバグが見つからない)する時に、このキーワードを使います。必要なQA作業の進捗はホワイトボードに記録されます;つまり必要なQA作業が完了した 時は、このキーワードを削除すべきです。</td>
+ </tr>
+ <tr>
+ <td>regression</td>
+ <td>
+ <p>このキーワードは、問題が修正され、また戻ってきて(退行して)いて、新規バグとは疑わしいという意味であり、退行を追跡するために記録します。またpre-check inテストやスモークテストでは特定できず、以前のビルドで動作していたが現在のビルドで見つかった問題を参照することもあります。こうしたバグの追跡は、ぜい弱な場所や、故障の傾向や、スモークテストやpre-check inテストの追加の良い候補の見極めに役立ちます。</p>
+ </td>
+ </tr>
+ <tr>
+ <td>regressionwindow-wanted</td>
+ <td>バグがregression(退行)であり、バグがどの期間に、理想的にはどのチェックインで起きたのかが特定できると大変有益であることを示します。</td>
+ </tr>
+ <tr>
+ <td>steps-wanted</td>
+ <td>再現手順を特定すると大変有益なバグを強調します。</td>
+ </tr>
+ <tr>
+ <td>verifyme</td>
+ <td>このバグはQA連絡先が指示した以外の人が、最新のB2Gビルドで検証するのがokという意味です。このバグは、修正を検証するのに詳しく指定された特定マシンの設定があります。失敗の再現を試みて、<em>Fixed</em> の解決法が正しいと思う場合に、ステータスを <em>Verified</em> とマークすべきです。</td>
+ </tr>
+ <tr>
+ <td>crash</td>
+ <td>FX OSがクラッシュするときにこのキーワードを追加してください。</td>
+ </tr>
+ </tbody>
+</table>
+
+<div class="note">
+<p><strong>記</strong>: 追加の資料として、 <a href="https://developer.mozilla.org/docs/Mozilla/QA/Bug_writing_guidelines">Bug writing guideline</a> を参照してください。Mozillaの <a href="https://wiki.mozilla.org/B2G/QA">B2G QA Wiki</a> ページ(英語)もFirefox OSのバグを扱うのに役立ちます。中でも、 <a href="https://wiki.mozilla.org/B2G/QA/Bugzilla">Bugzilla Usage</a> (英語)や <a href="https://wiki.mozilla.org/Bugmasters/Projects/FirefoxOS">Incoming bug triage for Firefox OS</a> (英語)は特に役立ちます。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: Gaia開発中のバグの扱いについての詳細情報は、<a href="/Firefox_OS/Developing_Gaia/Submitting_a_Gaia_patch">Gaiaのパッチを提出する</a>を読んで下さい。</p>
+</div>
diff --git a/files/ja/archive/b2g_os/developing_firefox_os/index.html b/files/ja/archive/b2g_os/developing_firefox_os/index.html
new file mode 100644
index 0000000000..f11a68211d
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_firefox_os/index.html
@@ -0,0 +1,48 @@
+---
+title: Firefox OS の開発
+slug: Archive/B2G_OS/Developing_Firefox_OS
+tags:
+ - B2G
+ - Developing
+ - Firefox OS
+translation_of: Archive/B2G_OS/Developing_Firefox_OS
+---
+<div class="summary">
+ <p><span class="seoSummary">このセクションでは、次の役に立つドキュメンテーションを提供します。 Firefox OS(コードネーム Boot2Gecko、あるいは、B2G)でのビルドプロセス中で修正・変更可能な様々な方法、そして、 <a href="/Mozilla/Gecko">Gecko</a> や <a href="/Firefox_OS/Platform/Gonk">Gonk</a> のような低レベルプラットフォームの開発を支援するための方法。</span></p>
+</div>
+<div class="note">
+ <p><strong>注</strong>: 特に Gaia (FirefoxOS のユーザインタフェース)の開発の支援に興味があるのなら、<a href="/Firefox_OS/Developing_Gaia">Gaia の開発</a> のページも参照してください。</p>
+</div>
+<h2 id="一般的な貢献についてのノート">一般的な貢献についてのノート</h2>
+<p>Gecko は Firefox ブラウザになくてはならない部分であり、Gecko の Firefox OS に関連する部分に貢献することは、一般的な Gecko に対するものと非常に似ています。つまり、Gonk に貢献する場合もほぼ同様です。基本として知るべきことは、コミュニティについて、コードベースの仕組み、そして、バグをどのように見つけるかということです。貢献の方法について学び始めるのに良いところは、<a href="/Introduction">Mozilla コードベースへの貢献</a>です。</p>
+<p>まず、Gecko、それがどのように動作し、構造化されているかについて学ぶべきです。 <a href="/Mozilla/Gecko">MDN  の Gecko ホームページ</a> には、このことについての有用なノートがいくつかあります。Mozilla Wiki の <a href="https://wiki.mozilla.org/Gecko:Overview">Gecko:Overview</a> も同様です。(Firefox OS 固有の)API についての情報は、動作の概要を知るには、Mozilla Wiki の <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> ページを、ドキュメント化された API の すべての索引を見るには、<a href="/WebAPI">MDN の WebAPI</a> ページを参照してください。</p>
+<p>次に、上部でFirefox OS が動作しているカーネルである <a href="/Firefox_OS/Platform/Gonk">Gonk</a> を見てみましょう。Gonk は基本的に デスクトップ版 Firefox のケースのように、Mac OS X、Windows、そして  Linux のように、Gecko のもうひとつの移植の対象です。Gonk 自身は Android Open Source Project のものを基にして作られただけのものです。私たちはGonk 自身の大部分を変更しようとは考えていません。なぜなら、ソースコードの大部分は私たちの管理下ではないからです。また、私たちと一緒に Firefox OS デバイスを作っているデバイスパートナーは、たいてい、デバイスと Gecko・Gonk の間のインターフェースに対するデバイス固有のコードを提供しています。</p>
+<p>しかし、API がまだ残っています。多くの Gonk 固有の Gecko コードは <code>#ifdef MOZ_WIDGET_GONK を用いて、</code>Firefox OS や <code>gecko-dev/hal/gonk のような<code> gonk</code> サブディレクトリ内</code>でだけ有効になっています。<a href="https://github.com/mozilla/gecko-dev">gecko-dev</a> レポジトリをローカルにクローンして、中身を見てみてください。<a href="/Mozilla_Source_Code_Directory_Structure">Mozilla Source Code Directory Structure</a> の記事も役立ちます。</p>
+<p>次に、<a href="/Firefox_OS/Platform/Architecture">Firefox OS のアーキテクチャ</a> について、<a href="/Firefox_OS/Building">Firefox OS のビルド</a>(<a href="/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_process_summary">Firefox OS のビルドの概要</a>から始めてください)方法、そして、他のデバイスへの <a href="/Firefox_OS/Developing_Firefox_OS/Porting">Firefox OS の移植</a>方法について学ぶべきです。</p>
+<p>Firefox OS は一連の分割されたモジュールとして開発されています。<a href="https://wiki.mozilla.org/Modules/FirefoxOS">Firefox OS Modules</a> ページを参照し、コードベースがどのようにグループ化されているかを知り、助けが必要な場合に話すべきメインモジュールオーナーが誰かを知ってください。</p>
+<div class="note">
+ <p><strong>注</strong>: 助けを得るために最初に訪ねるべき場所は、<a href="https://lists.mozilla.org/listinfo/dev-b2g">dev-b2g メーリングリスト</a> と <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a> の #b2g チャットルームです。</p>
+</div>
+<h2 id="固有の_Firefox_OS_開発トピック">固有の Firefox OS 開発トピック</h2>
+<dl>
+ <dt>
+ <a href="/Firefox_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS">Firefox OS のバグを登録する</a></dt>
+ <dd>
+ この記事は Firefox OS でのあらゆる面に関するバグを登録するためのガイドを提供します。</dd>
+ <dt>
+ <a href="/Firefox_OS/Developing_Firefox_OS/modifying_hosts_file" title="/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks/modifying_hosts_file">hosts ファイルを編集する</a></dt>
+ <dd>
+ Firefox OS の hosts ファイルを編集することによって何ができるかのガイドです。</dd>
+ <dt>
+ <a href="/Firefox_OS/Customization_with_the_.userconfig_file" title="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">.userconfig ファイルをカスタマイズする</a></dt>
+ <dd>
+ <code>.userconfig</code> ファイルを変更することで Firefox OS のビルドと実行を変更する方法です。</dd>
+ <dt>
+ <a href="/Firefox_OS/Developing_Firefox_OS/Customizing_the_b2g.sh_script">b2g.sh スクリプトをカスタマイズする</a></dt>
+ <dd>
+ b2g アプリケーションで実行されてシステムの様々な面をコントロールする、b2g.sh スクリプトを変更することによって何ができるかの説明です。</dd>
+ <dt>
+ <a href="/Firefox_OS/Porting" title="/en-US/docs/Mozilla/Firefox_OS/Porting">Firefox OS を移植する</a></dt>
+ <dd>
+ Firefox OS を新しいデバイスに移植する方法についての情報です。</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/developing_firefox_os/localizing_firefox_os/index.html b/files/ja/archive/b2g_os/developing_firefox_os/localizing_firefox_os/index.html
new file mode 100644
index 0000000000..edbe94277a
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_firefox_os/localizing_firefox_os/index.html
@@ -0,0 +1,185 @@
+---
+title: Firefox OSをローカライズする
+slug: Archive/B2G_OS/Developing_Firefox_OS/Localizing_Firefox_OS
+tags:
+ - Firefox OS
+ - ローカライズ
+translation_of: Archive/B2G_OS/Developing_Gaia/Localizing_B2G_OS
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">このガイドでは、Firefox OS、特にGaiaインターフェイスやアプリのローカライズがいかに簡単かを示します。コンピュータのセットアップに始まり、Gaiaの文字列をローカライズする方法や、最後にはl10nをテストする方法まで付き添います。</span></p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: これはFirefox OSのローカライズを希望するローカライザー向けのガイドです。ローカライズ可能なアプリを書きたい開発者は <a href="https://developer.mozilla.org/ja/Apps/Build/Localization/Localizing_Firefox_OS_Apps">Firefox OS アプリをローカライズする</a>から始めて、 その次に <a href="https://developer.mozilla.org/ja/Firefox_OS/Developing_Gaia/localization_code_best_practices">L10n ベストプラクティス</a> を確認します。</p>
+</div>
+
+<h2 id="初期セットアップ">初期セットアップ</h2>
+
+<p>Gaiaのソースファイルを入手し、お使いのデスクトップマシンにてローカライゼーションのテストを行うにはまず、これらの基本プログラムおよび言語がインストールされていることを確認してください。 </p>
+
+<dl>
+ <dt>GNU make</dt>
+ <dd>ソースコードからビルドを生成するのに役立つ細かなツールです。デスクトップ L10n のテスト準備ができれば、大変重宝するでしょう。 ダウンロードとインストール作業は容易で、<a href="http://www.gnu.org/software/make/">GNUのウエブサイト</a>から直接行えます。OS Xユーザであれば XCode および XCode コマンドラインツールを<a href="https://itunes.apple.com/us/app/xcode/id497799835?mt=12">アップルストア</a>からインストールする必要があります。</dd>
+ <dt>git</dt>
+ <dd>git は Gaiaソースコードを保存するために使用されるバージョンコントロールシステムです。git のダウンロードおよびインストールは容易で <a href="http://git-scm.com/">ウエブサイト</a>から直接行うことができます。</dd>
+ <dt>Python</dt>
+ <dd>Python はプログラミング言語であり<span style="line-height: inherit;">L10nテスト用のFirefox OSビルド生成に貢献します。ダウンロードおよびインストールは容易で<a href="http://www.python.org/getit/">Pythonウェブサイト</a></span><span style="line-height: inherit;">から直接行うことができます。</span></dd>
+ <dt>Mercurial (hg)</dt>
+ <dd>Mercurial (hg) はもうひとつのバージョン管理システムです。 l10nの利用に際し、<span style="line-height: inherit;">ロケールリポジトリをはじめとする</span><span style="line-height: inherit;">Gaiaの安定したバージョンを管理します。ダウンロードおよびインストールは容易で<a href="http://mercurial.selenic.com/downloads/">このウエブサイト</a></span><span style="line-height: inherit;">から直接行うことができます。</span></dd>
+ <dt>compare-locales</dt>
+ <dd>compare-locales は Pythonのスクリプトのひとつで、ローカル化にあたっての作業評価や、diffと呼ばれる、すでにローカル化済のマテリアルからローカル化のための新しい内容を切り離すのに使用します。 <span style="line-height: inherit;">ダウンロードおよびインストールは容易で<a href="https://developer.mozilla.org/en-US/docs/Compare-locales">compare-locales ウィキページ</a></span><span style="line-height: inherit;">から直接行うことができます。</span><span style="line-height: inherit;">なお、これはGaiaのローカライズにあたってコマンドラインもしくはテキストエディタを使用する場合のみ</span><span style="line-height: inherit;">必要となります。Pootle, Transifex やPontoonなどのツールを使用する場合、インストール不要です。</span></dd>
+</dl>
+
+<h2 id="ローカルリポジトリをセットアップする">ローカルリポジトリをセットアップする</h2>
+
+<p>上記ソフトウエアのダウンロードとインストール作業が完了したら、いよいよマシンにソースとローカライズされた文字列を入手します。</p>
+
+<ol>
+ <li>コマンドラインユーティリティにおいて, Gaiaのソースと翻訳文字列の保存先を指定します。 </li>
+ <li>hgで 以下のコマンドを使ってen-US リポジトリのコピーを作ります。
+ <pre>hg clone https://hg.mozilla.org/gaia-l10n/en-US</pre>
+ </li>
+ <li><span style="font-size: 14px; line-height: 21px;">以下のコマンドを使ってロケールリポジトリのコピーを作ります。</span>例として、2行目は伝統的な中国語のリポジトリを適切なディレクトリにコピーしています。
+ <pre><code class="language-html">hg clone https://hg.mozilla.org/gaia-l10n/your-locale-code
+hg clone https://hg.mozilla.org/gaia-l10n/zh-TW/ B2G/gaia/locales/zh-TW</code></pre>
+ </li>
+ <li>最後に このコマンドを入力します。
+ <pre>LOCALE_BASEDIR<span class="operator token">=</span>locales<span class="operator token">/</span> LOCALES_FILE<span class="operator token">=</span>locales<span class="operator token">/</span>languages_mine<span class="punctuation token">.</span>json make</pre>
+ </li>
+</ol>
+
+<p>ロケールファイルは <code>languages_mine.json</code> に記載するべきで、それはこういう構造になります:</p>
+
+<pre class="brush: json language-json"><span class="punctuation token">{</span>
+ <span class="key token">"en-US" :</span> <span class="string token">"English (US)"</span><span class="punctuation token">,</span>
+ <span class="key token">"fr" :</span> <span class="string token">"Français (fr)"</span>
+<span class="punctuation token">}</span></pre>
+
+<p>このファイルでは、ずてに翻訳準備ができている文字列を一覧にすべきです! Firefox OSの新規ローカライゼーションを開始している場合、全部の文字列が翻訳すべき文字列であるようなdiffを作る必要はない事を気に留めて下さい。</p>
+
+<div class="note">
+<p><strong>記</strong>: ロケールビルドの自動化スクリプトは、<a href="https://gist.github.com/timdream/7716684">このgist</a> を参照して下さい。</p>
+</div>
+
+<p> </p>
+
+<h2 id="Gaiaの文字列を翻訳する">Gaiaの文字列を翻訳する</h2>
+
+<p>Gaiaの文字列を翻訳するワークフローは、翻訳に使用しているツールに大きく依存しています。この処理パートは他の Mozilla 製品の通常の翻訳フェーズと同様です。<a href="https://developer.mozilla.org/en-US/docs/Localization_Quick_Start_Guide/Translation_phase" title="https://developer.mozilla.org/en-US/docs/Localization_Quick_Start_Guide/Translation_phase">ローカライゼーションの翻訳フェーズのクイックスタートガイド(英語)</a> には、Mozilla製品内の文字列を翻訳するのに使うツール一覧のほか、これらのツールでどうやって翻訳するかのチュートリアルがあります。l10nチームの一員でGaia文字列を翻訳するツールを決める時も、あるいはあなたのチームが使っているツールのチュートリアルを探している時も、このページは役立ちます。</p>
+
+<h2 id="Firefox_OS向けの_l10n_をテストする">Firefox OS向けの l10n をテストする</h2>
+
+<p>Firefox OSのl10nをテストするために、主要な方法が2つあります: デスクトップビルドとモバイルビルドです。現在、デスクトップの方法がl10n のテストに最も広く使われている方法です。</p>
+
+<h3 id="デスクトップ版_l10n_をテストする">デスクトップ版 l10n をテストする</h3>
+
+<ol>
+ <li><a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/">最新のboot2gecko nightly デスクトップビルド</a> をダウンロード、インストールします— 使用するOSに相当するパッケージをダウンロードします。<em>localizer</em> という言葉が含まれるパッケージを探します。これは <a href="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_all.json" title="https://github.com/mozilla-b2g/gaia/blob/master/locales/languages_all.json"><code>languages-all.json</code></a> に載っている全てのロケールが有効であることを示します。</li>
+ <li>最新バージョンのGaiaをクローンするのに、デスクトップ上のダウンロードしたいディレクトリに移動して、コマンドラインユーティリティ上でこのコマンドを入力します: <code>git clone git://github.com/mozilla-b2g/gaia.git</code></li>
+ <li>チームにとってFirefox OSのローカライズが初めての場合、あなたのロケールを有効にする必要があります。そうでない場合、他の誰かがロケールを有効にするまで飲み物を取ります。
+ <ol>
+ <li>コマンドラインで、あなたのgaiaクローン内を移動し、下記コマンドを実行してあなたのロケールリポジトリをクローンします: <code>hg clone ssh://hg.mozilla.org/gaia-l10n/your-locale-code</code></li>
+ <li>クローンしたばかりのgaiaリポジトリ内の<code>shared/resources</code> ディレクトリにある<code>languages.jsonファイルを開きます。</code></li>
+ <li>このフォーマットでロケール情報を追加します: "en-US" : "English (US)"、そしてファイルを保存します。</li>
+ <li>最後に、次ののコマンドを実行します: <code>make multilocale</code> これでデスクトップビルドであなたのロケールが有効になります。</li>
+ </ol>
+ </li>
+ <li>Gaiaプロファイルを作成するのに、このコマンドを実行します: <code>DEBUG=1 make -C gaia profile</code></li>
+ <li>ついに、あなたのロケールプロファイルでFirefox OSを実行してテストを開始でできます。それにはこのコマンドを入力します: <code>b2g/b2g -profile gaia/profile</code> OS Xを使っている場合は、このコマンドを実行します: <code>/Applications/B2G.app/Contents/MacOS/b2g -profile gaia/profile</code></li>
+ <li>デスクトップビルドを更新するため、単にあなたのGaiaリポジトリクローンを移動してこのコマンドを入力します: <code>git pull</code></li>
+</ol>
+
+<h3 id="モバイル版l10n_をテストする">モバイル版l10n をテストする</h3>
+
+<p><em>もっと多くのFirefox OSサポート端末がローカライザーの手に届くにつれ、<em>この節は成長します。</em></em></p>
+
+<h3 id="l10n_をテストする時に何を探すのか">l10n をテストする時に何を探すのか</h3>
+
+<p>モバイルOS向けのローカライゼーションをテストするのは、デスクトップアプリのローカライゼーションをテストするのと同様な点があります。あなたの作業のローカライゼーションテストを実施する時に探すべきガイドラインがここにあります:</p>
+
+<ol>
+ <li>UIテキスト要素内から翻訳がはみ出していないかを見ます。</li>
+ <li>文調、スタイル、専門用語がプロタクト全体で一貫しているかを確認します。</li>
+ <li>翻訳されない英語文字列がUIの中にないか探します。これらはGaia内でハードコードされたり、要素IDのエラーにより起きている可能性があります。</li>
+ <li>時間と日付表示が地域の標準に一致しているかを確認します。</li>
+</ol>
+
+<h2 id="ローカライゼーション特有のバグを探す">ローカライゼーション特有のバグを探す</h2>
+
+<p>電話機を使用している時に起こったバグ例を与えるようなbugzillaリンクがこちらです。このような種類のバグ登録にあたり、ある例と同様なバグをどこで探すかのアイデアをもたらすでしょう。</p>
+
+<ul>
+ <li><a class="moz-txt-link-freetext" href="http://bit.ly/100bcsC">http://bit.ly/100bcsC</a> - これはB2G 翻訳バグの一般的なリストです</li>
+ <li><a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=846060">https://bugzilla.mozilla.org/show_bug.cgi?id=846060</a></li>
+ <li><a class="moz-txt-link-freetext" href="https://bugzilla.mozilla.org/show_bug.cgi?id=852739">https://bugzilla.mozilla.org/show_bug.cgi?id=852739</a></li>
+</ul>
+
+<p>ローカライゼーションバグを見つける一般ルールは:</p>
+
+<ul>
+ <li>バグが言語固有である場合、(他の製品の下の) Mozilla Localizationの下に登録し、翻訳者に cc します。忘れずにバグに適切なトラッキングフラグを立てます。</li>
+ <li>言語固有でない場合、FirefoxOS 製品の下に登録し、ローカライザーに cc します。忘れずにバグに適切なトラッキングフラグを立てます。</li>
+ <li>疑わしい場合、FirefoxOS 製品の下に登録し、ローカライザーに cc します。忘れずにバグに適切なトラッキングフラグを立てます。</li>
+</ul>
+
+<p><a href="http://moztrap.mozilla.org/" title="http://moztrap.mozilla.org/">Moztrap</a> を使う人用に、FirefoxOS "localization" タグの下の既存のテストケースを見たり、端末上でテストがパスするかを見てみることも、Firefox OSのローカライゼーションをテストする良い方法です。</p>
+
+<h2 id="次には">次には</h2>
+
+<p>今やローカライゼーションを始める準備完了です! なので好みの l10n ツールを開いて進みましょう!  通常どおり、この文書に載っていない疑問は、<a href="http://www.mozilla.org/about/forums/#dev-l10n" title="http://mailto:_dev-l10n@lists.mozilla.org">mozilla.dev.l10n newsgroup</a> へ送って下さい。</p>
diff --git a/files/ja/archive/b2g_os/developing_firefox_os/modifying_hosts_file/index.html b/files/ja/archive/b2g_os/developing_firefox_os/modifying_hosts_file/index.html
new file mode 100644
index 0000000000..1cc420bc50
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_firefox_os/modifying_hosts_file/index.html
@@ -0,0 +1,46 @@
+---
+title: hostsファイルを編集する
+slug: Archive/B2G_OS/Developing_Firefox_OS/modifying_hosts_file
+tags:
+ - Android
+ - B2G
+ - Firefox OS
+ - hosts
+translation_of: Archive/B2G_OS/Developing_Firefox_OS/modifying_hosts_file
+---
+<div class="summary">
+ <p>時々、マシンのhostsファイルを変更することが必要になるでしょう。攻撃のためや、望ましくない接続をブロックしたり、リクエストを特定IPにリダイレクトしたり、など。この記事ではFirefox OSの電話機でhostsファイルを変更する方法を説明します。それはLinuxの例では /system/etc に、新し目のMac OSXバージョンでは単に etc/ の場所にあります。</p>
+</div>
+<h2 id="電話機の準備">電話機の準備</h2>
+<p>電話機で<a href="/ja/Firefox_OS/Debugging/Developer_settings#The_Developer_panel">Developer settings panel</a>に移動して、下記をチェックします:</p>
+<ul>
+ <li>"Remote Debugging" (Firefox OS 1.4以上ではセレクトメニューで"ADB and Devtools"を選択します)</li>
+ <li>"Console Enabled"</li>
+</ul>
+<p>次に電話機をコンピュータに接続します。</p>
+<p>この時点で、hostsファイルの編集手順はAndroidと同様です。Android開発者は調子に慣れるでしょう。</p>
+<h2 id="ターミナルでのステップ">ターミナルでのステップ</h2>
+<ol>
+ <li>ターミナルウィンドウを開きます。</li>
+ <li>端末上に /system
+ &lt;style type="text/css"&gt;
+ &lt;/style&gt;
+ <span style="font-size: 90.0%; font-family: arial,sans,sans-serif; color: #000000; text-align: left;">パーティションを再マウントし、読み書きのパーミッションを得ます。</span>
+ <pre class="brush: bash">adb remount</pre>
+ </li>
+ <li>hostsファイルをコンピュータに取得します。
+ <pre class="brush: bash">adb pull /system/etc/hosts /tmp</pre>
+ </li>
+ <li>/tmp/hosts 内のhostsファイルを必要に応じ変更して保存します。例えば:
+ <pre class="brush: bash">127.0.0.1 localhost
+ip.to.re.direct hostName</pre>
+ </li>
+ <li>変更したhostsファイルを端末へプッシュします。
+ <pre class="brush: bash">adb push /tmp/hosts /system/etc/hosts</pre>
+ </li>
+</ol>
+<p>やりました; もうhostsファイルが更新されているはずです。</p>
+<div class="note">
+ <p><strong>記</strong>: ADBをもっと学習するには? <a href="http://developer.android.com/tools/help/adb.html" title="http://developer.android.com/tools/help/adb.html">ADB documentation</a>を見てみて下さい。</p>
+</div>
+<p> </p>
diff --git a/files/ja/archive/b2g_os/developing_gaia/customizing_build-time_apps/index.html b/files/ja/archive/b2g_os/developing_gaia/customizing_build-time_apps/index.html
new file mode 100644
index 0000000000..0b079cdd8d
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/customizing_build-time_apps/index.html
@@ -0,0 +1,173 @@
+---
+title: ビルド時のアプリをカスタマイズする
+slug: Archive/B2G_OS/Developing_Gaia/Customizing_build-time_apps
+tags:
+ - Apps
+ - Customization
+ - Firefox OS
+ - Gaia
+ - Guide
+ - ガイド
+translation_of: Archive/B2G_OS/Developing_Gaia/Customizing_build-time_apps
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">開発者や端末ベンダとして、様々な理由から Firefox OS 端末の初回実行時に出てくるアプリをカスタマイズしたくなるでしょう。この記事ではそうするための異なる仕組みを説明します。</span></p>
+</div>
+
+<h2 id="Gaia内のアプリの場所">Gaia内のアプリの場所</h2>
+
+<p>Firefox OS で動かされるアプリは、Gaiaソースツリー内の2つの場所に含まれます:</p>
+
+<ul>
+ <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/apps">gaia/apps/</a>: ここではシステムのデフォルトアプリ、例えばカレンダー、eメール、設定、などが見られます。</li>
+ <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/dev_apps">gaia/dev-apps</a>: ここではその他のアプリ、例えばカスタマイズ処理で入るものが見られます。</li>
+</ul>
+
+<p>あなたのGaia/B2Gビルドで省略/追加したい場合、下記に述べる色々な方法でできます。</p>
+
+<h2 id="ブルートフォースでカスタマイズする方法">ブルートフォースでカスタマイズする方法</h2>
+
+<p>"ブルートフォース"手法は、単に今回のビルドに入れたくないアプリを、ビルド前に削除します。</p>
+
+<h2 id="設定リストを編集する">設定リストを編集する</h2>
+
+<p>より洗練された方法は、<code>apps-*.list</code> ファイル (<a href="https://github.com/mozilla-b2g/gaia/tree/master/build/config">gaia/build/config/</a> の中の色々な端末ディレクトリ、例えば <code>phone/</code> や <code>tablet/</code> の中に見られる) を編集して、ビルド時に含めたいアプリへのパスを入れます。例えば、<a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-production.list">gaia/build/config/phone/apps-production.list</a> は下記のようです:</p>
+
+<pre class="brush: bash">apps/bluetooth
+apps/bookmark
+apps/browser
+apps/calendar
+apps/callscreen
+etc.</pre>
+
+<p>注意点として、ディレクトリ内の全アプリを指定できます、このように:</p>
+
+<pre class="brush: bash">apps/*</pre>
+
+<p><code>ビルド時に利用できるアプリを決定するのに、どのapps-*.list</code> ファイルが使われるかを選ぶ仕組みは <a href="https://github.com/mozilla-b2g/gaia/blob/master/Makefile">gaia/Makefile</a> 内にあり、下記のようです:</p>
+
+<pre class="brush: cpp"><span class="nv">GAIA_DEVICE_TYPE</span><span class="o">?=</span>phone
+ ...
+GAIA_APP_TARGET?=engineering
+ ...
+ifeq ($(MAKECMDGOALS), demo)
+GAIA_DOMAIN=thisdomaindoesnotexist.org
+GAIA_APP_TARGET=demo
+else ifeq ($(MAKECMDGOALS), dogfood)
+DOGFOOD=1
+else ifeq ($(MAKECMDGOALS), production)
+PRODUCTION=1
+endif
+ ...
+ifeq ($(PRODUCTION), 1)
+GAIA_OPTIMIZE=1
+GAIA_APP_TARGET=production
+endif
+
+ifeq ($(DOGFOOD), 1)
+GAIA_APP_TARGET=dogfood
+endif
+ ...
+ifndef GAIA_APP_CONFIG
+GAIA_APP_CONFIG=build$(SEP)config$(SEP)apps-$(GAIA_APP_TARGET).list
+endif</pre>
+
+<p>最初は、the <code>GAIA_APP_TARGET</code> 変数<code>に engineering が</code>、the <code><span class="nv">GAIA_DEVICE_TYPE</span></code>に<code> phone が</code>セットされます、なのでGaiaをソースからビルドするのにデフォルトでは <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-engineering.list">gaia/config/phone/app-engineering.list</a> (この中に全てのテスト、デモなどがあります)が使われます。</p>
+
+<p>他のアプリリストを使用するよう指定するには、<code>make</code> コマンド実行時に別のオプションを指定します。例えば<a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-production.list">gaia/build/config/phone/apps-production.list</a>を使ってビルドするには、これを使います。</p>
+
+<pre class="brush: bash">PRODUCTION=1 make</pre>
+
+<p><code>DEMO=1</code> を指定してビルドする場合、<a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-demo.list">apps-demo.list</a>が使われます。<code>DOGFOOD=1</code> を指定してビルドする場合、<a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/phone/apps-dogfood.list">apps-dogfood.list</a>が使われます。</p>
+
+<p><a href="https://github.com/mozilla-b2g/gaia/blob/master/Makefile">gaia/Makefile</a> 内の <code>GAIA_APP_CONFIG</code> を編集して、完全に指定を上書きしたり、自分自身の <code>apps-*.list</code> ファイルを提供したりできます。</p>
+
+<p><a href="https://github.com/mozilla-b2g/gaia/blob/master/Android.mk#L24-L28">gaia/Android.mk</a> には下記の行が含まれます:</p>
+
+<pre class="brush: cpp">ifneq ($(filter user userdebug, $(TARGET_BUILD_VARIANT)),)
+GAIA_MAKE_FLAGS += PRODUCTION=1
+B2G_SYSTEM_APPS := 1
+endif</pre>
+
+<p>ビルド時に、<code>VARIANT=user</code> <code>や VARIANT=userdebug</code> がセットされた場合 (これらは<code>TARGET_BUILD_VARIANT</code> 変数の反映まで巻き戻ります)、 <code>Gaiaビルド時に PRODUCTION=1</code> が自動的にセットされます。</p>
+
+<div class="note">
+<p><strong>記</strong>: 他にどんな make オプションが使えるのかは<a href="/Firefox_OS/Developing_Gaia/make_options_reference">make オプションのリファレンス</a>で見つけられます。</p>
+</div>
+
+<h2 id="Marketのカスタマイズを使う">Marketのカスタマイズを使う</h2>
+
+<p>3つ目の、最も洗練された (だが最も複雑な) 方法はカスタマイズの使用です。これによってビルド時に個別のディレクトリ内でカスタマイズ指示をする事が、コアGaiaリポジトリを変更することなく可能になります。別個のディレクトリ内に独自のカスタマイズを入れたり、ソース由来の既存ディレクトリを使用したりできます。</p>
+
+<p>例えば、<code>GAIA_DISTRIBUTION_DIR</code> 変数により、場所の指定をカスタマイズするサンプルは、このようになります:</p>
+
+<pre class="brush: bash"><code class="language-html">GAIA_DISTRIBUTION_DIR=<span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>DISTRIBUTION_PATH</span><span class="punctuation token">&gt;</span></span> make production</code></pre>
+
+<p>配布の仕組みをもっとカスタマイズする例は、<a href="https://github.com/mozilla-b2g/gaia/tree/master/customization">https://github.com/mozilla-b2g/gaia/tree/master/customization</a>を参照して下さい。</p>
+
+<p>カスタマイズは完全に別の話題です。これをもっと知るには、<a href="/Firefox_OS/Developing_Firefox_OS/Market_customizations_guide">Market Customizations guide</a>を読んで下さい。</p>
+
+<div class="note">
+<p><strong>記</strong>: あなたのGaiaビルドの一部に特別な外部アプリを入れたい場合、それらを特定の方法でビルドして、次に <code>gaia/dev-apps/</code> フォルダ内に置く必要があります。<a href="/Firefox_OS/Developing_Firefox_OS/Market_customizations_guide#Building_Prebundled_web_apps">Building Prebundled web apps</a>を読んで詳細を見つけて下さい。</p>
+</div>
+
+<div class="warning">
+<p><strong>重要</strong>: 端末ベンダーが配布用の B2G/Gaia ビルドを作成する場合、Firefox Marketplaceアプリを電話・タブレット・その他に含める許可を得る前に、一定の条件を満たす必要があります。詳細は Mozilla まで連絡して下さい。</p>
+</div>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/developing_gaia/customizing_the_keyboard/index.html b/files/ja/archive/b2g_os/developing_gaia/customizing_the_keyboard/index.html
new file mode 100644
index 0000000000..d1bb0a1b8c
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/customizing_the_keyboard/index.html
@@ -0,0 +1,234 @@
+---
+title: Firefox OS 内でキーボードをカスタマイズする
+slug: Archive/B2G_OS/Developing_Gaia/Customizing_the_keyboard
+tags:
+ - Firefox OS
+ - ガイド
+ - キーボード
+translation_of: Archive/B2G_OS/Developing_Gaia/Customizing_the_keyboard
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p>この文書では Firefox OS v1.2 以上で、独自の言語/スクリプトを含んだカスタムキーボードレイアウトをどうやって追加するのかを説明します。</p>
+</div>
+
+<h2 id="Gaiaビルトインのキーボードアプリと、システム構造の状況">Gaiaビルトインのキーボードアプリと、システム構造の状況</h2>
+
+<p>Firefox OSには、2013年10月以降、2つの主流なキーボード機能が実装されています。</p>
+
+<ul>
+ <li>キーボード/スペルチェック辞書をビルトインのデフォルトGaiaキーボードアプリに含めるかを切り替えるビルドフラグ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=884752" title="FIXED: keyboard build-time customization">バグ 884752</a>を見よ)。</li>
+ <li>Firefox Marketplaceからユーザにサードパーティ製キーボードアプリをインストール可能にするOSレベルの機能。これはFirefox OS v2.0で提供を開始します。詳細は<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816869" title="FIXED: [Meta] Enable third-party keyboards">バグ 816869</a> と <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=964670" title="FIXED: [Keyboard][User Story] Enable 3rd party keyboard framework with OOP">バグ 964670</a>を見よ。</li>
+</ul>
+
+<p>電話機に新しいキーボードレイアウトを含めるには、Gaiaの中にカスタムレイアウトのファイルを置いてからビルドコンフィグを用いてキーボードアプリをビルドするか、自分自身のキーボードアプリを開発して電話機にインストールすることができます。それぞれの方法を見て行きましょう。</p>
+
+<h2 id="独自のキーボードアプリを開発する">独自のキーボードアプリを開発する</h2>
+
+<p>Gaiaのビルトインアプリをテンプレートに使うか、フォークできます。 基本的な考え方は:</p>
+
+<ul>
+ <li>マニフェストファイルにて、<a href="/ja/Apps/Build/Manifest#role"><code>role</code></a> プロパティ内に <code>input</code> のrole(役割)付きで宣言します。</li>
+ <li><a href="/ja/Apps/Build/Manifest#permissions"><code>permissions</code></a> プロパティ内で指定する<code> input パーミッションを持っているか確認します。</code></li>
+</ul>
+
+<p>その後に、キーボードをインストールできて、ユーザが入力フィールドにフォーカスさせる度にスクリーンの下端側にキーボードが出るようになります。 これによって起きるスペースの問題は、下記のように処理できます:</p>
+
+<ul>
+ <li>古く、古典的な <code>window.resizeTo</code> を使って、アプリが占める領域を更新する。</li>
+ <li>新しく、輝かしい <code>navigator.mozInputMethod</code> APIを使って、所与の入力内容を変化させる; 詳しくは<a href="http://dxr.mozilla.org/mozilla-central/source/dom/webidl/InputMethod.webidl"> WebIDL of the API </a>を見て下さい。これらのメソッドの多くは同じ文字列を出力しますが、異なるイベント(<a href="/ja/docs/Web/API/KeyboardEvent">KeyboardEvent</a>、<a href="/ja/docs/Web/API/CompositionEvent">CompositionEvent</a>など)を生成します、このため<a href="https://wiki.mozilla.org/WebAPI/KeboardIME#Use_cases_for_each_of_the_methods">ユースケースに合うメソッドを使っているか</a>確認して下さい。</li>
+</ul>
+
+<div class="note">
+<p><strong>記</strong>: <a href="https://github.com/mozilla-b2g/gaia/tree/master/dev_apps/test-keyboard-app">LOL キーボード</a> のデモは、キーボードアプリがどう構築されるのかをより良く理解する助けになり、かつあなた自身のキーボードアプリのテンプレートになるでしょう。</p>
+</div>
+
+<h2 id="Gaiaキーボードアプリにカスタムレイアウトを含める">Gaiaキーボードアプリにカスタムレイアウトを含める</h2>
+
+<ol>
+ <li>詳細情報は <a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/keyboard/CONFIGURE">keyboard CONFIGURE details</a> を見ます。辞書を追加したり、(アジア言語用の)双方向なIMEを入れたりしたい言語に依存します。</li>
+ <li>新規サポート言語のレイアウトを追加したい場合、それを <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/keyboard-layouts.json">build/config/keyboard-layouts.json</a> 内の、言語のデフォルトレイアウトに追加したいかもしれません。</li>
+</ol>
+
+<h3 id="アジアのIME">アジアのIME</h3>
+
+<p>東アジア言語 (<a href="https://en.wikipedia.org/wiki/CJK">中国語、日本語、韓国語</a>) は幾千の文字を含んだ、遥かに複雑な活字を使っています。ハードウェア・ソフトウェアキーボード上に数千のキーを配置する方法はないので、ユーザは一連のシンボルを文字選択に変換するため、<a href="https://en.wikipedia.org/wiki/Input_method">input method editor</a>、略してIMEに頼っています。<br>
+ <br>
+ シンボル変換の方法やIMEが "スマート" であるかは、選んだIMEや、実装自体や、またしばしば、この文書の範囲外の<a href="https://en.wikipedia.org/wiki/Natural_language_processing">NLP science</a>に依存します。メモリを節約するため、データをバイナリブロブにコンパイルしてアレイバッファとして読み込むのが推奨されます; 複雑なJSON構造は実端末では動作しないでしょう。</p>
+
+<h4 id="Gaiaキーボードアプリ内のIMEインターフェイス">Gaiaキーボードアプリ内のIMEインターフェイス</h4>
+
+<p>シンボルを文字列に変換するIMEライブラリ(専門用語で''IM エンジン''という) がすぐ使える場合、レイアウトからシンボルを受け取って文字列を出力する定義済みインターフェイスが、Gaiaキーボードアプリ内に必要になるでしょう。<a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/keyboard/js/keyboard/input_method_manager.js">今のAPIはGithub上に文書化されています</a>。</p>
+
+<p>我々は更にGaia内でAPIを洗練させるため、実装を促しています。</p>
+
+<h4 id="IMエンジンをあなたのレイアウトで動作させる">IMエンジンをあなたのレイアウトで動作させる</h4>
+
+<p>IMエンジンがあなたのキーボードレイアウトで動作するようにするには:</p>
+
+<ol>
+ <li>IMエンジンに新規レイアウトを導入する、下記記載の通りに。</li>
+ <li><code>imEngine</code> プロパティでIMエンジンを参照する。レイアウトが有効な時、キーボードアプリは<code>keyboard/js/imes/&lt;imEngine&gt;/&lt;imEngine&gt;.js</code>にあるスクリプトをロードするでしょう。</li>
+ <li>スクリプトがロードされて初期化された時、キー/文字を送受信するためにAPIをセットアップします。</li>
+ <li>ユーザ入力に応答を望むあらゆることをします。ユーザがキーボードのキーをタップした時、典型的にはIMエンジンに送られます。</li>
+</ol>
+
+<h4 id="知られている実装">知られている実装</h4>
+
+<ul>
+ <li><a href="https://github.com/timdream/jszhuyin">JSZhuyin</a> は繁体字向けの最初のGaiaキーボードのアジアIMエンジン実装でZhuyin IMEを組み入れています。</li>
+ <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/keyboard/js/imes/jskanji">JSKanji</a> は日本語用のプロトタイプIM エンジンです。</li>
+ <li><a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/keyboard/js/imes/jspinyin">JSPinyin</a> は簡体字向けに書かれていてピンイン記号で動作します。</li>
+ <li>デモとして<a href="http://chewing.csie.net/">Chewing</a> (C/C++ の繁体字用オープンソースZhuyin IME) は<a href="/en-US/docs/Mozilla/Projects/Emscripten">Emscripten</a>でクロスコンパイルされてGaiaキーボードにリンクされています。</li>
+ <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=835261">JSHangul</a> は韓国語用のプロトタイプIM エンジンで、現在開発中です。</li>
+</ul>
+
+<h3 id="ローカライズ担当者の視点からの新規ロケール">ローカライズ担当者の視点からの新規ロケール</h3>
+
+<div class="note">
+<p><strong>記</strong>: この節は主にアルファベットの言葉について当てはまります; (アムハラ語のような)アブギダ や、(中国語のような)象形文字システムはもっと複雑です。</p>
+</div>
+
+<p>一般的に、新規ロケール追加には2つの事が必要です: <strong>キーボードレイアウト </strong>と <strong>辞書</strong>(テキスト予想機能用に)です。</p>
+
+<h4 id="キーボードレイアウトを作成する">キーボードレイアウトを作成する</h4>
+
+<p>キーボードレイアウトファイルはJavaScriptファイルに含まれていて、どのキーがキーボードにあるかと、どのキーがどの文字とシンボルになるかを、長押しで使える2つ目のオプションを含めて定義します。最も率直な方法は、既存のキーボード <a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/keyboard/js/layouts">GitHub</a> から取って、名前を変更して調整する事です。</p>
+
+<p>最初にヘッダを変更する必要があります。キーボードが en-US に近く、ロケールをスコットランド ゲール語 (gd)としてみましょう。こうなっているのを:</p>
+
+<pre>Keyboards.en = {
+ label: 'English',
+ shortLabel: 'En',
+ imEngine: 'latin',
+ types: ['text', 'url', 'email', 'number', 'password'],
+ autoCorrectLanguage: 'en_us',
+ menuLabel: 'English',</pre>
+
+<p>こう変更します:</p>
+
+<pre>Keyboards.gd = {
+ label: 'Scottish Gaelic',
+ shortLabel: 'gd',
+ imEngine: 'latin',
+ types: ['text', 'url', 'email', 'number', 'password'],
+ autoCorrectLanguage: 'gd_gb',
+ menuLabel: 'Gàidhlig',</pre>
+
+<p><code>label 欄は</code>英語でのあなたの言語で、<code>shortLabel</code> 欄は最大3文字です; これは画面上のキーボードに表示される省略形で、ユーザが現在使っている言語がわかるようになっています。ISOコードも使えますが、その他の適切なものも使えます。<code>menuLabel</code> 欄はあなたの言語での言語名です: これはユーザがメニューオプションで見るものです。</p>
+
+<p>レイアウトが終わった場合、唯一調整が必要となる事は、(UIでは長押しでアクセスできる) 代替文字です:</p>
+
+<pre>alt: {
+ a: 'áàâäåãāæ',
+ c: 'çćč',
+ e: 'éèêëēę€ɛ',
+ i: 'ïíìîīį',
+ o: 'öõóòôōœøɵ',
+ u: 'üúùûū',
+ s: 'ßśš$',
+ S: 'ŚŠ$',
+ n: 'ñń',
+ l: 'ł£',
+ y: 'ÿ¥',
+ z: 'žźż',
+ '.': ',?!;:'
+},</pre>
+
+<p>長押し時の文字の順番と文字数の両方を変更できます。この場合、ゲール語のユーザは "鋭アクセント" よりも "重アクセント" をよく使うため、順番をこう変更します:</p>
+
+<pre>a: 'àáâäåãāæ',</pre>
+
+<p>ドットつき子音のオプションを与えたいため、このような新規行を追加します:</p>
+
+<pre><span class="nx">b</span><span class="o">:</span> <span class="s1">'ḃ'</span><span class="p">,</span></pre>
+
+<p>たぶん代わりのレイアウト(数字や句読点など用) や、通貨シンボルが正しく表示されているかを確認したくなるでしょう。</p>
+
+<h4 id="辞書を作成する">辞書を作成する</h4>
+
+<p>変換辞書もあると良いでしょう、ない場合はユーザは各単語毎にタイプしなければならず、単語予想を使えなくなります。</p>
+
+<p>この用途で (理想的には) なんらかの形の、頻度で単語をランクづけるコーパスが必要になるでしょう。例えば <em>there</em> という単語は <em>thespian より遥かによく出る</em>ので、ユーザが the とタイプした時に、 <em>there</em> は <em>thespian</em> より前にサジェストされるべきです。</p>
+
+<p>これは辞書 (XML ファイル; 既存のものは<a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/keyboard/js/imes/latin/dictionaries">ここ</a>で見られます)の中で、1 (最小頻度) から 255 (最大頻度) を各単語 (または 行) に割当てることで完了します。次が作成を要するものです:</p>
+
+<pre>&lt;wordlist locale="gd" description="Gàidhlig" date="1401554807" version="1"&gt;
+ &lt;w f="255" flags=""&gt;a&lt;/w&gt;
+ &lt;w f="254" flags=""&gt;an&lt;/w&gt;
+ &lt;w f="247" flags=""&gt;agus&lt;/w&gt;</pre>
+
+<p>素早く汚い辞書 (例えば大きなテキストを取ってきて頻度を数えたもの) でも役立つでしょう。あなたのロケールでそんなデータが全くなく、デジタルテキストが多くない場合には、言語の知識を使って、共通経験を元に手動で単語のランクづけをします。</p>
+
+<h4 id="ファイルをビルドする">ファイルをビルドする</h4>
+
+<p>いったん js と 辞書ファイルができたら、<a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/keyboard/js/imes/latin/dictionaries">ここのgaiaディレクトリ</a> に移動して<em>Makefile<em> </em></em>を開きます。辞書の名前をリスト (例えば <em>gd_wordlist.xml</em> と言う場合) に追加して、置きます:</p>
+
+<pre>ga.dict \
+gd.dict \</pre>
+
+<p><code>gd_worldlist.xml</code> ファイルがフォルダに入っているのを確認して、次を実行します <code>$ make gd.dict</code></p>
+
+<p>ここまで来たけども、<em>.dict</em> ファイルをビルドする最終ステップで詰まった場合、<a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">バグ登録して</a> (<strong>Componentは: Gaia Keyboard</strong>) ファイルを添付して何が問題なのかを説明して下さい。誰かが助ける事ができるでしょう<strong>。パッチをプルリクエストとして投稿するのを確認して <em>for review to someone(だれかのレビュー用)のフラグを立てます</em>、そうしないとバグは気づかれないでしょう。</strong></p>
+
+<h4 id="あなたの新ロケールをテストする">あなたの新ロケールをテストする</h4>
+
+<p>新規ロケールのビルドとコミットを終えたら、新キーボードと事象をテストする最速の手順は、キーボードアプリを走らせる我々の<a href="https://github.com/timdream/gaia-keyboard-demo">webベースのデモページ </a>です。En をクリックしてロケールを循環させて下さい。あなたのぶんが見えない場合、(右上の)スパナのシンボルをクリックして、テストしたいキーボードを tick/untick します。</p>
+
+<h2 id="議論と質疑">議論と質疑</h2>
+
+<p><a href="https://lists.mozilla.org/listinfo/dev-gaia">dev-gaia</a> メーリングリストに来るか、 irc.mozilla.org の #gaia チャンネルに来て下さい(詳しくは <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a> へ)。#mozilla-taiwan はこのトピック向けの、中国語のデファクトのチャンネルです。</p>
diff --git a/files/ja/archive/b2g_os/developing_gaia/different_ways_to_run_gaia/index.html b/files/ja/archive/b2g_os/developing_gaia/different_ways_to_run_gaia/index.html
new file mode 100644
index 0000000000..2eb6addb95
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/different_ways_to_run_gaia/index.html
@@ -0,0 +1,159 @@
+---
+title: Gaiaを実行する色々な方法
+slug: Archive/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia
+tags:
+ - B2G
+ - Firefox
+ - Firefox OS
+translation_of: Archive/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia
+---
+<div class="summary">
+<p><span class="seoSummary">Gaiaを実行するのは、WebIDE経由のsimulatorや、デスクトップ版Firefox内で直接や、専用のデスクトップビルド(デスクトップ B2G)や、エミュレータや、互換のモバイル端末で可能です。この記事ではそれぞれの方法の要約と、詳細情報へのリンクを提供します。</span></p>
+</div>
+
+<h2 id="実物にどれだけ近いか">実物にどれだけ近いか?</h2>
+
+<p dir="ltr" id="docs-internal-guid-46d8bd5f-ac65-2c23-a6c9-cc3bc3dc3cd5">この記事で詳しく述べるGaia実行用の方法は、他のものより実端末の経験に近いです。実行が簡単な順だと、次の通りです:</p>
+
+<ol dir="ltr">
+ <li>Simulator内でのGaia</li>
+ <li>B2Gデスクトップ内でのGaia</li>
+ <li>Firefox Mulet内でのGaia</li>
+ <li>エミュレータ内でのGaia</li>
+ <li>電話機に焼いたGaia</li>
+ <li>電話機に焼いたGaia+Gecko</li>
+</ol>
+
+<p>“出荷製品に近いか” の順番はこの正反対です。取り組む機能によっては、問題に合った環境を見つけないといけないでしょう。</p>
+
+<h2 id="Firefox_OS_SimulatorによってWebIDE内のGaiaを使用する">Firefox OS SimulatorによってWebIDE内のGaiaを使用する</h2>
+
+<p>最速の方法は<a href="/ja/docs/Tools/WebIDE">WebIDE</a>(デスクトップ版Firefoxで利用できる開発ツール)経由でGaiaを試す事です。これはHTML5のwebアプリをFirefox OS端末・Firefox OS Simulatorでテスト、デプロイ、デバッグするための数々の便利なツールを、ブラウザから直接に提供します。<br>
+ <br>
+ デスクトップ版 Firefox ブラウザ 34+で、WebIDE を <em>ツール &gt; Web 開発 &gt; WebIDE </em>から開きます。右上の実行メニューを開いて Simulator をインストール、起動します。</p>
+
+<p>自分の Gaia ビルドを実行するには、手順が少し複雑ですが、まだとても簡単です:</p>
+
+<ol>
+ <li>これを実行してみる前に、自身で Gaia デバイスデバッグプロファイルをビルドすべきです — 自分のGaia リポジトリクローンに移動し、 <code>DEVICE_DEBUG=1 make を実行します。これは</code>内部の Gaia アプリをすぐにデバッグできることと、加えてsimulatorを起動するごとにリモートデバッグの確認ダイアログを承認しなくてよいことを意味します。</li>
+ <li>Firefox を開きます(<a href="https://nightly.mozilla.org/">Nightly</a> 推奨)</li>
+ <li>WebIDE を <em>ツール &gt; Web 開発 &gt; WebIDE</em> から開きます。</li>
+ <li>WebIDEで<em> ランタイム &gt; シミュレータをインストール</em> を選びオプションを選択してFirefox OS Simulator をインストールします。Gaia バージョンと同じシミュレータバージョンを使っているのを確認します (例えば、あなたのGaia ブランチが 2.1 の場合、Firefox OS Simulator 2.1を使う必要があります)。</li>
+ <li>デスクトップ版Firefox に戻り <em>ツール &gt; アドオン</em> を選択します。Firefox OS Simulator 2.2 の<em>設定</em> ボタン(または自身の Gaia を組み込もうとするあらゆるバージョン)をクリックします。</li>
+ <li>設定で <em>Select a custom Gaia directory</em>をクリックし、次にGaia デバイスデバッグプロファイルのディレクトリを選択します。</li>
+ <li>WebIDE内でSimulatorを起動すると、今度はあなたの Gaia プロファイルを実行しているはずです。</li>
+</ol>
+
+<div class="note">
+<p><strong>記</strong>: シミュレータをリセットしたい場合、カスタムGaiaプロファイルはもう動作していません。Firefoxの <a href="/about:config">about:config</a>へ移動する必要があり、<code>extensions.fxos_2_2_simulator@mozilla.org.gaiaProfile</code> 設定を探し (2_2 はカスタマイズするシミュレータのバージョンによって違うかもしれません)、ダブルクリックして、出てきたダイアログボックスで空の値を入れ、OKを押します。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: Gaia の master ブランチは速く変わるため、時々最新発行のシミュレータがいくらか遅れをとります。master ブランチを実行しようとしていてそれが動作しないのに気づいた場合、 (この時 WebIDE は通常 "Operation timed out" のエラーメッセージを出します)、最新のnightly シミュレータ ブランチをダウンロードして、それで代用してみるべきです — <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/">Nightly Mozilla Central</a> を見て、自身のシステムにあった <em>fxos-simulator-*.xpi</em> ファイルをダウンロードします。記憶すべきは、この nightly ビルドは機能リリースするために自動更新はしません。更新を所得したい場合、公式ビルドに戻る必要があるでしょう。</p>
+</div>
+
+<h2 id="B2G_デスクトップ">B2G デスクトップ</h2>
+
+<p>B2G デスクトップは、Firefox OS 端末で使われるアプリのランタイムのデスクトップ版で、Gaia をデスクトップコンピュータで実行できます。これはもうすぐFirefox Mulet (下記を見て)に置き換えられます(いったんMulet が十分安定した時に)。</p>
+
+<p><a href="http://nightly.mozilla.org/#Desktop%20Boot2Gecko">B2G デスクトップのnightly ビルド</a>を<a href="http://nightly.mozilla.org/">Firefox Nightly サイト</a>からダウンロードできます。 どのバージョンをターゲットにするかによって、latest-mozilla-b2g18 の特定バージョンが望まれるかもしれません。Linux (32 bit と 64 bit)や OS X や Windows用のビルドがあります。</p>
+
+<p>Nightlyビルドはgaiaの最近のバージョンでパッケージされています。いったんアーカイブをダウンロードしたら、必要なのはフォルダに展開して b2g バイナリを展開済みフォルダから実行するだけです。</p>
+
+<pre class="brush: bash">$ cd b2g
+$ ./b2g</pre>
+
+<p>あなた自身の開発用バージョンの Gaia と共にB2G を実行するには、まずあなたのクローンからのビルドプロファイルが必要です:</p>
+
+<pre class="brush: bash">$ cd /path/to/gaia
+$ DEBUG=1 DESKTOP=0 make</pre>
+
+<p>これは <code>gaia</code> ディレクトリ内に <code>profile</code> というディレクトリを生成します。<code>DEBUG</code>パートは Gaia を、デフォルトのパッケージアプリ(変更のたびに再度パッケージ化が要る)ではなく、ビルトインのwebサーバ上のホスト型アプリとして実行します。profileディレクトリへのパスは、上記コマンド実行後の最終行を見ることで見つけられて、それは次のようなものです:</p>
+
+<pre class="brush: bash">Profile Ready: please run [b2g|firefox] -profile /path/to/gaia/profile</pre>
+
+<p>B2G デスクトップを生成されたプロファイルで、このように実行できます:</p>
+
+<pre class="brush: bash">$ ./b2g /path/to/gaia/profile</pre>
+
+<p>望むなら、あなた自身の B2G デスクトップをソースからビルドできます。</p>
+
+<div class="note">
+<p><strong>記:</strong> OS Xでは、 <code>b2g</code> バイナリは B2G.app の内部にあるでしょう。このプラットフォームで B2G デスクトップを実行するには、下記のコマンドが必要となるでしょう:<br>
+ <code>./B2G.app/Contents/MacOS/b2g /path/to/gaia/profile</code></p>
+</div>
+
+<h2 id="Firefox_Mulet内のGaiaを使用する">Firefox Mulet内のGaiaを使用する</h2>
+
+<p>Firefox Muletと呼ぶFirefoxの特殊ビルド内でGaiaを実行することもできます。これには素早い開発サイクルと、標準web開発ツールやデバッガが利用できるメリットがあります。</p>
+
+<div class="note">
+<p><strong>記</strong>: Firefox Mulet は現在開発の初期段階で、たぶんバグを見つけるでしょう。それらに出くわしたら報告して下さい。</p>
+</div>
+
+<ol>
+ <li>まず最初に、 <a href="https://github.com/mozilla-b2g/gaia">Gaia</a> リポジトリを自身のマシンにクローンします (このプロジェクトに貢献したい場合、一番よい方法は<a href="https://developer.mozilla.org/ja/Firefox_OS/Developing_Gaia/Running_the_Gaia_codebase#Running_your_own_Gaia_build">Running your own Gaia build</a> を見て下さい。) Mulet は Gaia 2.2 以上だけで動作するので、master ブランチを使うのが妙案でしょう。</li>
+ <li>次に、Gaiaリポジトリに <code>cd</code> して、<code>make</code> を使って自身のプロファイルをビルドします (色々な変数の種類については <a href="/ja/Firefox_OS/Developing_Gaia/make_options_reference">make オプションのリファレンス</a>を見て下さい。)  将来的には、Mulet は複数のビルドタイプをサポートし、もっと簡単にアプリをデバッグできるツールが追加されるでしょう。 (例えば、更新をテストする場合に個々のアプリを再起動すること)</li>
+ <li>いまやnightly Firefox Mulet ビルドのダウンロードが必要です — <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/">Mozilla Central</a> で見つかります。 Mulet ビルドは <code>firefox-*</code> で始まる名前のパッケージ、例えば <code>firefox-36.0a1.en-US.mac64.dmg</code> — となり、あなたの開発マシンに適切なビルドを選択して下さい。</li>
+ <li>いったんダウンロードすると、Mulet ビルドを Firefox Nightly ビルドを上書きしない安全な場所にインストールします。例えばMac OS Xでは、"mulet"というアプリケーションの中にフォルダを作り、そこにドラッグします。</li>
+ <li>いまや Mulet ビルドを、 開いた時に使うプロファイルとしてGaia プロファイルを渡して ( <code>-profile</code> オプションで指定) コマンドラインから実行します。例えば Mac OS Xではアプリケーションフォルダ内からこのように実行できます:
+ <pre class="brush: bash">./mulet/FirefoxNightly.app/Contents/MacOS/firefox-bin -profile /Users/my-home-folder/git/gaia/profile/</pre>
+ </li>
+</ol>
+
+<p>結果 Mulet ビルドが、次のように起動します:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/9467/mulet-screenshot.png" style="width: 800px; height: 491px; display: block; margin: 0px auto;"><br>
+ この画面で、Gaiaアプリをデバッグするために使える標準 Firefox <a href="https://developer.mozilla.org/ja/docs/Tools/Tools_Toolbox">Toolbox</a>や、更に左側に実行している Firefox OS のエミュレーションや、その他数々のGaiaコンテキストに有益なツールを入手しました。エミュレータの上のコントロールは次のことができます:</p>
+
+<ul>
+ <li>エミュレータの色々な画面サイズが選べます (これは基本的に<a href="/ja/docs/Tools/Responsive_Design_View">レスポンシブデザインビュー</a>です)。</li>
+ <li>エミュレータ画面の回転</li>
+ <li>タッチイベントシミュレーションのオン・オフ (オフの時、マウスでUIとopenアプリのドラッグはできません。)</li>
+ <li>スクリーンショットを撮る</li>
+</ul>
+
+<div class="note">
+<p><strong>記</strong>: 現在ホームボタンは動作しておらず、時には画面が不調になります。ブラウザのタブをリフレッシュする事で、この問題を回避できます。</p>
+</div>
+
+<h2 id="実端末にGaiaを書き込む">実端末にGaiaを書き込む</h2>
+
+<div class="warning">
+<p><strong>重要</strong>: Gaia をTarako や Spice Fire Oneといった低メモリ端末に書き込んでみる場合、特別に低メモリに最適化されたGaiaブランチ、例えば <a href="https://github.com/mozilla-b2g/gaia/tree/v1.3t">1.3t branch</a>を焼くべきです。低メモリ端末にGaiaのmasterブランチを焼いてみるのは、たぶん電話機が反応しない結果になるでしょう。</p>
+</div>
+
+<p dir="ltr" id="docs-internal-guid-46d8bd5f-ac6a-0884-5265-76e0fe740fa6">実端末に Gaia の新バージョンを書き込むには:</p>
+
+<ol dir="ltr">
+ <li>まずGaiaリポジトリがあなたのコンピュータにクローンされていて、 <a href="/ja/Firefox_OS/Debugging/Installing_ADB">ADB</a> がインストールされているのを確認します。</li>
+ <li><a href="/ja/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">USB経由のデバッグ</a> が有効になっているのを確認します。</li>
+ <li>端末をUSB経由でコンピュータに接続します。</li>
+ <li>端末が接続すると、下記のコマンドを処理できます。あるいは (Windows や Linux ディストリビューションのユーザは) OEM USB ドライバのページを確認して、コンピュータに正しいUSBドライバをセットアップしないといけない可能性もあります。</li>
+ <li>Gaia リポジトリで次のコマンドを実行して、電話機を再起動して Gaia ソースコードを更新します:
+ <pre class="brush: bash">$ make reset-gaia</pre>
+ </li>
+ <li>非システムアプリをテストするには、端末わ再起動することなく、次のコマンドでインストールできます:
+ <pre class="brush: bash" dir="ltr">$ make install-gaia</pre>
+ </li>
+ <li>特定アプリだけをインストールする場合、APP 変数で次のように引き渡せます:
+ <pre class="brush: bash">$ make install-gaia APP=browser</pre>
+ </li>
+</ol>
+
+<div class="note">
+<p dir="ltr"><strong>記</strong>: <code>make install-gaia</code> / <code>make reset-gaia</code> を使って端末にGaiaをプッシュすると、デフォルトで 1倍の解像度アセットのGaiaをビルドします。もっと高い解像度アセットを指定するには、makeオプションの <code>GAIA_DEV_PIXELS_PER_PX</code> or <code>GAIA_DPPX</code> を使う必要があります (このオプションについてのより詳細は<a href="/ja/Firefox_OS/Developing_Gaia/make_options_reference#High_resolution_image_assets"> 高解像度イメージアセット</a> を見て下さい)。この方法で端末に Gaia をプッシュした時は、関連の make オプションに端末のスケールファクタを付けて指定します、例えば Flame端末向けには <code>make install-gaia GAIA_DEV_PIXELS_PER_PX=1.5</code> とする (または 2, や 2.5, など; スケールファクタの値は <a href="/ja/Apps/Build/Icon_implementation_for_apps#512_icon_for_device_display">512 icon for device display</a>内の表を見て下さい。)</p>
+</div>
+
+<p dir="ltr">端末が正しくUSB接続されているか確認するには、こう打ちます:</p>
+
+<pre class="brush: bash" dir="ltr">$ adb devices</pre>
+
+<p dir="ltr">こんな結果を得るでしょう:</p>
+
+<pre class="brush: bash" dir="ltr">List of devices attached
+emulator-5554 device</pre>
+
+<h2 id="エミュレータや実機でGeckoとGaiaをビルドして使用する">エミュレータや実機でGeckoとGaiaをビルドして使用する</h2>
+
+<p>互換モバイル端末を持っていれば、<a href="/ja/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">あなた独自バージョンの Firefox OSをビルド・インストール</a>できて、エミュレータ上や端末にプッシュして、これを実行できます。</p>
diff --git a/files/ja/archive/b2g_os/developing_gaia/gaia_tools_reference/index.html b/files/ja/archive/b2g_os/developing_gaia/gaia_tools_reference/index.html
new file mode 100644
index 0000000000..678038e952
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/gaia_tools_reference/index.html
@@ -0,0 +1,189 @@
+---
+title: Gaia ツールのリファレンス
+slug: Archive/B2G_OS/Developing_Gaia/Gaia_tools_reference
+tags:
+ - Firefox OS
+ - Gaia
+ - Reference
+ - Référence(2)
+ - Tools
+translation_of: Archive/B2G_OS/Developing_Gaia/Gaia_tools_reference
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p><span class="short_text" id="result_box" lang="ja"><span>この記事では、</span><span>Gaia </span><span>での作業</span><span>のための</span><span>利用可能な</span><span>便利なツール</span><span>を紹介します。</span></span></p>
+</div>
+
+<div class="note">
+<p><strong>Note</strong>: You can find a number of very useful tips and tricks on debugging Firefox OS at the <a href="https://wiki.mozilla.org/B2G/QA/Tips_And_Tricks">B2G QA Tips and tricks page</a>.</p>
+</div>
+
+<h2 id="MozITP">MozITP</h2>
+
+<p><a href="https://developer.mozilla.org/docs/Mozilla/Firefox_OS/Automated_testing/MozITP">MozITP</a> is an all-in-one package bundle for Gaia related tools. It contains pre-configured flash tool (b2g_util), b2g-installer and Gaia Integration Test environment. You can use MozITP to test Gaia Integration Test on Mulet, emulator or real devices. You can also flash builds from TaskCluster or b2g-installer blob-free builds.</p>
+
+<h2 id="Foxbox">Foxbox</h2>
+
+<p><a href="https://github.com/gasolin/foxbox">Foxbox</a> is a build automation script that builds a full Gaia development environment with the Gaia build hosted inside a VM, which is also accessible from the host machine (meaning you can still workon it using your favourite text editor, etc.) This works on all platforms, but should be especially useful to Windows users as the regular Gaia build procedure doesn't work on a standard Windows environment.</p>
+
+<h2 id="Backuprestoreflashing_tools">Backup/restore/flashing tools</h2>
+
+<p>Tools to backup your profile, etc.</p>
+
+<h3 id="b2g_util">b2g_util</h3>
+
+<p>The <a href="https://pypi.python.org/pypi/b2g_util">b2g_util tools package</a> provides a variety of tools to help you with debugging Firefox OS. It can:</p>
+
+<ul>
+ <li>Check the installed b2g version</li>
+ <li>Get the crash report link</li>
+ <li>Reset the device</li>
+ <li>Enable/disable the cert apps for WebIDE</li>
+ <li>Backup/restore your profile (currently not complete, but a workaround is provided for now.)</li>
+</ul>
+
+<p>To install it, you first need Python 2.7, <a href="https://pypi.python.org/pypi/pip/">pip</a>, and <a href="https://pypi.python.org/pypi/setuptools">setuptools</a>. then you can run:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">sudo pip install -U b2g_util</code></pre>
+
+<p>Once installation is complete, you can connect your device and test it by issuing the following command to get the installed b2g version:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">b2g_check_versions</code></pre>
+
+<h3 id="pc-sync-tool">pc-sync-tool</h3>
+
+<p><a href="https://marketplace.firefox.com/app/pcsync">The pc-sync-tool</a> is an app available in the Firefox Marketplace that backs up your data/profile. It must be used in conjunction with the <a href="http://download.firefox.com.cn/ffosassistant.xpi">Firefox OS assistant add-on</a> for desktop.</p>
+
+<h3 id="Backup_and_restore_profile">Backup and restore profile</h3>
+
+<p>To backup and restore data you can use our <code>backup_restore_profile.py</code> tool, which is contained in the <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool">B2G-flash-tool Git repo</a>.</p>
+
+<ol>
+ <li>Clone the above repo (<code>git clone https://github.com/Mozilla-TWQA/B2G-flash-tool</code>.)</li>
+ <li><strong>M</strong>ake sure that your phone is connected via USB to your computer, and that ADB (see <a href="#Important_steps_to_follow_first">Important steps to follow first</a> above) and Debugging via USB (in your device's <a href="https://developer.mozilla.org/Firefox_OS/Debugging/Developer_settings">Developer settings</a>) are enabled.</li>
+ <li>cd into the cloned directory</li>
+</ol>
+
+<p>To backup data:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">python backup_restore_profile.py -b</code></pre>
+
+<p>This should save your device profile to a directory called <code>mozilla-profile</code>, in the same directory as the script is located. To restore your backup:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">python backup_restore_profile.py -r</code></pre>
+
+<div class="note">
+<p><strong>Note</strong>: To display a full list of options for the tool, run it with a <code>-h</code> or <code>--help</code> flag.</p>
+</div>
+
+<h3 id="B2G-flash-tool">B2G-flash-tool</h3>
+
+<p>The <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool">B2G-flash-tool</a> repo also contains many other tools for rapid flashing of new builds to devices and related tasks — ideal for QA work. For example:</p>
+
+<ul>
+ <li><a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/flash_pvt.py">flash_pvt.py</a> — The main tool for flashing new builds.</li>
+ <li><a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/change_channel.sh">change_channel.sh</a> — Allows you to quickly change a phone's update channel.</li>
+ <li><a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/check_versions.py">check_versions.py</a> — Returns the version og B2G installed on a device.</li>
+ <li><a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/shallow_flash.sh">shallow_flash.sh</a> — Shallow flashes Gaia and/or Gecko onto a device (<a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/shallow_flash.bat">shallow_flash.bat</a> available for Windows, too).</li>
+ <li><a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/update_system_fonts.sh">update_system_fonts.sh</a> — Updates the system fonts on B2G v2.1 (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1032874" title="FIXED: [Flame][2.1] latest nightly update changed fonts to something which looks like Courier New">バグ 1032874</a>).</li>
+</ul>
+
+<h2 id="Debugging_tools">Debugging tools</h2>
+
+<p>Tools that perform debugging functions.</p>
+
+<h3 id="WebIDE">WebIDE</h3>
+
+<p>Firefox's <a href="https://developer.mozilla.org/docs/Tools/WebIDE">WebIDE</a> tool deserves a special mention here — as well as just testing and debugging apps, it is also useful for monitoring performance, memory usage, etc. (see <a href="https://developer.mozilla.org/docs/Tools/WebIDE#Monitoring_performance">Monitoring performance</a>.)</p>
+
+<h3 id="get_crashreports.sh">get_crashreports.sh</h3>
+
+<p>Contained with the the <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool">B2G-flash-tool</a> repo, <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/get_crashreports.sh">get_crashreports.sh</a> retrieves device crash reports (<code>/data/b2g/mozilla/Crash Reports/</code>.)</p>
+
+<h3 id="B2G_root_directory_tools">B2G root directory tools</h3>
+
+<p>There are a number of scripts in the <a href="https://github.com/mozilla-b2g/B2G">B2G root directory</a> that perform various useful debugging functions, such as:</p>
+
+<ul>
+ <li><a href="https://github.com/mozilla-b2g/B2G/blob/master/run-gdb.sh">run-gdb.sh</a>: Runs the gdb command line debugger (see <a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Debugging_B2G_using_gdb">Debugging B2G using gdb and related tools</a> for more details.)</li>
+ <li><a href="https://github.com/mozilla-b2g/B2G/blob/master/run-valgrind.sh">run-valgrind.sh</a>: Runs the Valgrind debugger (see <a href="https://developer.mozilla.org/Firefox_OS/Debugging/Debugging_B2G_using_valgrind">Debugging B2G using Valgrind</a> for more information.)</li>
+ <li><a href="https://github.com/mozilla-b2g/B2G/blob/master/watch-procrank.sh">watch-procrank.sh</a>: Returns memory consumption information via the procrank tool.</li>
+</ul>
+
+<h2 id="Other_misc_tools">Other misc tools</h2>
+
+<p>There are a number of helpful tools located in the <a href="https://github.com/mozilla-b2g/gaia/tree/master/tools">gaia/tools/</a> directory, and other places</p>
+
+<h3 id="png_recompress.sh">png_recompress.sh</h3>
+
+<p>Located at <a href="https://github.com/mozilla-b2g/gaia/tree/master/tools">gaia/tools/</a>, <a href="https://github.com/mozilla-b2g/gaia/blob/master/tools/png_recompress.sh">png_recompress.sh</a> is a PNG image compressor. You can run it with the following command structure:</p>
+
+<pre class="brush: bash line-numbers language-bash"><code class="language-bash">$ ./tools/png_recompress.sh -v bg.png</code></pre>
+
+<p>This will remove unnecessary metadata and further compress the png; it can save up to 99.5% of the file size, which has a very measurable impact on an app's ZIP size and memory footprint.</p>
+
+<h3 id="svg_recompress.sh">svg_recompress.sh</h3>
+
+<p>Located at <a href="https://github.com/mozilla-b2g/gaia/tree/master/tools">gaia/tools/</a>, <a href="https://github.com/mozilla-b2g/gaia/blob/master/tools/svg_recompress.sh">svg_recompress.sh</a> is an SVG compressor.</p>
+
+<h3 id="cache_sync.py">cache_sync.py</h3>
+
+<p>Located at <a href="https://github.com/mozilla-b2g/gaia/tree/master/tools">gaia/tools/</a>, <a href="https://github.com/mozilla-b2g/gaia/blob/master/tools/cache_sync.py">cache_sync.py</a> synchronizes the offline cache of an external app into a local directory structure. This should be run from the base directory of an app in gaia/external-apps. It builds a directory for each known origin in the offline cache.</p>
+
+<h3 id="edit_prefs.sh">edit_prefs.sh</h3>
+
+<p>Located in the <a href="https://github.com/mozilla-b2g/B2G">B2G root directory</a>, <a href="https://github.com/mozilla-b2g/B2G/blob/master/edit-prefs.sh">edit_prefs.sh</a> provides an easy way to retrieve device prefs.</p>
diff --git a/files/ja/archive/b2g_os/developing_gaia/index.html b/files/ja/archive/b2g_os/developing_gaia/index.html
new file mode 100644
index 0000000000..58186bcdcb
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/index.html
@@ -0,0 +1,129 @@
+---
+title: Gaia の開発
+slug: Archive/B2G_OS/Developing_Gaia
+tags:
+ - Firefox
+ - Gaia
+ - Mozilla
+ - OS
+ - UI
+translation_of: Archive/B2G_OS/Developing_Gaia
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">Gaia は B2G OS のユーザインタフェイスで、デフォルトアプリスイートです: 画面ロック、ホーム画面、電話、その他のアプリが含まれています。Gaia は本来 B2G OS プラットフォームの上位層で起動する Web アプリの集合です。Gaia プロジェクトに貢献するために知っておく必要がある記事を紹介します。</span></p>
+</div>
+
+<p>このガイドでは、<em>Gaia</em> に貢献するための効果的なワークフローを一通り紹介します - そして、これにより、<em>Gaia</em> コードベースに機能を追加し、<em>Gaia</em> プロジェクトについて登録されたバグに取り組むことを意味します。最初の記事群は、順番に読んでください。また、特定のプロセスの見方についてリフレッシュする必要がある場合は、関連したセクションまで読み飛ばすこともできます。</p>
+
+<p>その後には、追加のトピックスについてのリファレンスや情報が提供されています。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/7951/gaia-2.0-screen.png" style="float: right; height: 533px; padding: 0px 0px 30px 30px; width: 320px;"></p>
+
+<h2 id="基礎">基礎</h2>
+
+<ol>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Running_the_Gaia_codebase">Gaia コードベースを実行する</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Gaia コードベースを理解する</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Making_Gaia_code_changes">Gaia のコードに変更を加える</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Test_Gaia_code_changes">Gaia のコードの変更をテストする</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Submitting_a_Gaia_patch">Gaia のパッチを提出する</a></li>
+</ol>
+
+<h2 id="Gaia_ビルドリファレンス">Gaia ビルドリファレンス</h2>
+
+<ul>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Build_System_Primer">Gaia ビルドシステム入門</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Customizing_build-time_apps">ビルド時のアプリをカスタマイズする</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/make_options_reference">make オプションのリファレンス</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Gaia_tools_reference">Gaia ツールのリファレンス</a></li>
+</ul>
+
+<h2 id="補足情報">補足情報</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ja/Firefox_OS/Platform/Testing/Raptor">Raptor: Gaia 用パフォーマンスツール</a></li>
+ <li><a href="https://developer.mozilla.org/docs/Mozilla/Firefox_OS/Developing_Gaia/Localizing_Firefox_OS">B2G OS をローカライズする</a></li>
+ <li><a href="/ja/Firefox_OS/Firefox_OS_build_prerequisites">B2G OS ビルドの必要条件</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia">Gaia を実行する他の方法</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Market_customizations_guide">マーケットカスタマイズガイド</a></li>
+ <li><a href="/ja/Firefox_OS/Developing_Gaia/Customizing_the_keyboard">B2G OS アプリ内でキーボードをカスタマイズする</a></li>
+</ul>
+
+<p> </p>
+
+<p></p><div class="overheadIndicator communitybox">
+
+ <div class="column-container">
+ <h2 id="Gaiaコミュニティに参加してください">Gaiaコミュニティに参加してください</h2>
+ <div class="column-half">
+ <div class="communitysubhead">あなたの好きな方法でディスカッションに参加してください</div>
+ <ul class="communitymailinglist">
+ <li><a href="https://lists.mozilla.org/listinfo/dev-gaia"> メーリングリストとして</a></li>
+
+
+ <li><a href="http://groups.google.com/group/mozilla.dev.gaia"> ニュースグループとして</a></li>
+ <li><a href="http://groups.google.com/group/mozilla.dev.gaia/feeds"> フィードとして</a></li>
+</ul>
+ </div>
+ <div class="column-half">
+ <ul class="communitycontact"><li><strong>IRC: </strong><a href="irc://irc.mozilla.org/gaia">#gaia</a> <span class="smaller">(<a href="https://wiki.mozilla.org/IRC">さらに詳しく</a>)</span></li><li><strong>他の IRC チャンネル: </strong><a href="irc://irc.mozilla.org/b2g" title="Discuss B2G, the overall Firefox OS platform">#b2g</a>, <a href="irc://irc.mozilla.org/openwebapps" title="Talk with Web app developers">#openwebapps</a>, <a href="irc://irc.mozilla.org/webapi" title="Discuss Web APIs used to create powerful Web apps">#webapi</a></li></ul>
+ </div>
+ </div>
+</div><p></p>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 942px; left: 135px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/developing_gaia/make_options_reference/index.html b/files/ja/archive/b2g_os/developing_gaia/make_options_reference/index.html
new file mode 100644
index 0000000000..187410191d
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/make_options_reference/index.html
@@ -0,0 +1,383 @@
+---
+title: make オプションのリファレンス
+slug: Archive/B2G_OS/Developing_Gaia/make_options_reference
+tags:
+ - Apps
+ - Firefox OS
+ - Gaia
+ - Make
+ - Options
+ - Reference
+translation_of: Archive/B2G_OS/Developing_Gaia/make_options_reference
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p><span class="seoSummary"><code>make</code> コマンドは、Gaia リポジトリ内で Gaia プロファイルを作成するのに使われます。このプロファイルは、端末に読み込んだり <a href="/ja/Firefox_OS/Using_the_B2G_desktop_client">B2G デスクトップ</a> ビルド内で実行されます。この記事では、利用できる様々な make オプションを詳しく見ていきます。</span></p>
+</div>
+
+<div class="note">
+<p><strong>注記</strong>: Makefile には多くの環境変数があります。将来削除される可能性があるので、これらに依存しないでください。</p>
+</div>
+
+<p>作成したプロファイルは、一般的に gaia ディレクトリのルート、例えば <code>/gaia/profile</code> に作成され、次の項目を含みます:</p>
+
+<ul>
+ <li><code>defaults/</code>: 電話機の再起動後にリロードされるデフォルト設定を含むディレクトリ。</li>
+ <li><code>extensions/</code>: 拡張機能を含むディレクトリ。</li>
+ <li><code>settings.json</code>: 設定ファイル。</li>
+ <li><code>user.js</code>: その他の設定を含む、もう一つのファイル。</li>
+ <li><code>webapps/</code>: 電話機にインストールされる、全 Web アプリを含むディレクトリ。</li>
+</ul>
+
+<div class="note">
+<p><strong>注記</strong>: プロファイルを作成済みで新しいものを作成したい場合は、新規に生成する前に、既存のプロファイルディレクトリを消さなければなりません。</p>
+</div>
+
+<h2 id="デフォルト">デフォルト</h2>
+
+<pre class="brush: bash">make</pre>
+
+<p>これは単にノーブランドの、非デバッグのビルドを与えます。ブランドのビルドには、<a href="#Official_Mozilla_branding_make">Mozilla 公式ブランドの make</a> を使う必要があります。デバッグビルドは <a href="#Debug_make">デバッグ make</a> をする必要があります。</p>
+
+<h2 id="端末へプッシュする">端末へプッシュする</h2>
+
+<pre class="brush: bash">make install-gaia
+
+make reset-gaia
+</pre>
+
+<p><a href="/ja/Firefox_OS/Debugging/Installing_ADB">ADB</a> (Android デバッグブリッジ) のセットアップでは、これらの make ターゲットは Gaia を端末にプッシュするでしょう。<code>install-gaia</code> では作業ディレクトリ内の Gaia の更新を端末にプッシュします。 <code>reset-gaia</code> では、Gaia のプッシュ前に、既存の設定やプロファイル、Webアプリ、データベース内容 (新設定のデータベースが初期化されます) が掃除されます。</p>
+
+<div class="note">
+<p><strong>注記</strong>: <code>make install-gaia</code> または <code>make reset-gaia</code> を用いて端末に Gaia をプッシュすると、デフォルトで 1 倍の解像度のアセットで Gaia をビルドします。さらに高い解像度を指定するには、<code>GAIA_DEV_PIXELS_PER_PX</code> または <code>GAIA_DPPX</code> の make オプションを指定します (このオプションの詳細は、<a href="/ja/Firefox_OS/Developing_Gaia/make_options_reference#High_resolution_image_assets">High resolution image assets</a> を参照)。この方法で端末に Gaia をプッシュする場合は、関連する make オプションを端末のスケールファクタに合わせて指定するべきです。例えば、Flame 端末には <code>make install-gaia GAIA_DEV_PIXELS_PER_PX=1.5</code> (または 2 や 2.5 など。スケールファクタ値は <a href="/ja/Apps/Build/Icon_implementation_for_apps#512_icon_for_device_display">512 icon for device display</a> の中の表を見てください。)</p>
+</div>
+
+<h2 id="特定アプリのビルド">特定アプリのビルド</h2>
+
+<pre class="brush: bash">APP=system make
+
+APP=system make install-gaia</pre>
+
+<p>既にプロファイルがある場合、すべてのアプリを再パッケージ化して再プッシュする代わりに、再パッケージするアプリを <code>APP</code> で指定できます。このコマンドは、新しいアプリパッケージとマニフェストをプッシュします。マニフェストの変更 (例えば、新しいパーミッションやキーボードレイアウトや宣言) は Gecko によって選択されません。</p>
+
+<h2 id="カスタムプロファイルフォルダを指定する">カスタムプロファイルフォルダを指定する</h2>
+
+<p>ビルドしたプロファイルを保存するディレクトリを指定できます。次のように、<code>PROFILE_FOLDER</code> で指定します:</p>
+
+<pre class="brush: bash">PROFILE_FOLDER=profile-b2g-desktop make</pre>
+
+<h2 id="異なる端末のビルド">異なる端末のビルド</h2>
+
+<p>異なる目的で、異なる端末のビルドを作成する make オプションがいくつかあります。</p>
+
+<h3 id="Gaia_の電話機ビルドの生成">Gaia の電話機ビルドの生成</h3>
+
+<pre class="brush: bash">GAIA_DEVICE_TYPE=phone make</pre>
+
+<p>このビルドは、アプリを <code>/gaia/build/config/phone/apps-engineering.list</code> から取得します。</p>
+
+<h3 id="Gaia_のタブレットビルドの生成">Gaia のタブレットビルドの生成</h3>
+
+<pre class="brush: bash">GAIA_DEVICE_TYPE=tablet make</pre>
+
+<p>このビルドは、アプリを <code>/gaia/build/config/tablet/apps-engineering.list</code> から取得します。</p>
+
+<h3 id="spark_ビルドの生成">spark ビルドの生成</h3>
+
+<pre class="brush: bash">GAIA_DISTRIBUTION_DIR=distros/spark make reset-gaia</pre>
+
+<p>端末に spark をインストールします。同等な B2G build.sh オプションは次のようになります:</p>
+
+<pre class="brush: bash">GAIA_DISTRIBUTION_DIR=distros/spark ./build.sh</pre>
+
+<h2 id="異なるビルドタイプ">異なるビルドタイプ</h2>
+
+<p>異なる目的で、異なるタイプのビルドを作成する make オプションがいくつかあります。</p>
+
+<h3 id="プロダクション_make">プロダクション make</h3>
+
+<pre class="brush: bash">PRODUCTION=1 make</pre>
+
+<p>これは Gaia のプロダクション (製品版) ビルドを生成します:</p>
+
+<ul>
+ <li>Gaia はパッケージ型アプリとして実行され、デバッグは難しくなりますが、アプリにとっての API パーミッションなどの利用性は最も良いです。</li>
+ <li>テストアプリはビルドに含まれません。</li>
+ <li>デフォルトでリモートデバッグがオフになります。</li>
+ <li>画面ロックはオンになります (その代わり USB 接続は切断されます)。</li>
+ <li>Marionette はオフになります。</li>
+ <li>はじめてガイドアプリはオンになります。</li>
+ <li>オフラインキャッシュが使用されます。</li>
+</ul>
+
+<div class="note">
+<p><strong>注記</strong>: 別名のコマンド <code>make production</code> でも生成できます。</p>
+</div>
+
+<h3 id="デバッグmake">デバッグmake</h3>
+
+<pre class="brush: bash">DEBUG=1 make</pre>
+
+<p><code>DEBUG</code> 変数は、Gaia をデフォルトを変更するごとに再パッケージが必要なパッケージ型アプリでなく、特定の <code>GAIA_PORT</code> でのビルトイン Web サーバ上でホスト型アプリとして実行します。これでテストが簡単になります。最新の Firefox Nightly のプロファイルで起動すると、素晴らしい B2G 固有の Firefox 開発ツールのパネルがあります。</p>
+
+<p>それに加え:</p>
+
+<ul>
+ <li>テストアプリがビルドに含まれます。</li>
+ <li>デフォルトでリモートデバッグがオンになります。</li>
+ <li>画面ロックはオンになります (その代わり USB 接続は切断されません)。</li>
+ <li><a href="/ja/docs/Mozilla/QA/Marionette">Marionette</a> がオンになります。これは Gaia <a href="/ja/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests" title="/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests">ユニットテスト</a> 時に必要になります。</li>
+ <li>はじめてガイドアプリはオフになります。</li>
+ <li>オフラインキャッシュは、たとえ生成されても使用されません。</li>
+</ul>
+
+<div class="note">
+<p><strong>注記</strong>: 現在、バグ (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1180103" title="B2G desktop client get an empty homescreen when run w/ debug profile (gaia/profile-debug)">バグ 1180103</a>) があり、Gaia のデバッグプロファイルでFirefox OS シミュレータ (WebIDE でも何経由でも) を実行した時、空のホーム画面が描画されます。これを回避するには、代わりに <code>DEBUG=1 DESKTOP=0 make</code> とします ( <a href="#Device_debug_make">端末デバッグ make</a> を参照)。</p>
+</div>
+
+<h3 id="端末デバッグ_make">端末デバッグ make</h3>
+
+<pre class="brush: bash">DEVICE_DEBUG=1 make</pre>
+
+<p>これは端末の画面ロックをオンにし、ADB ツールのデバッグを有効にするので、端末のデバッグに便利です。</p>
+
+<p>このパラメータは、Firefox OS 1.2 以降のバージョンで、Firefox OS Webアプリを <a href="/docs/Tools/WebIDE">WebIDE</a> でデバッグする時に指定します</p>
+
+<h3 id="デスクトップデバッグ_make">デスクトップデバッグ make</h3>
+
+<pre class="brush: bash">DEBUG=1 DESKTOP=0 make</pre>
+
+<p>このオプションは、<a href="/ja/Firefox_OS/Using_the_B2G_desktop_client">B2G デスクトップ</a> 内で実行する、デスクトップデバッグ版を作成します。</p>
+
+<h3 id="公式_Mozilla_ブランド_make">公式 Mozilla ブランド make</h3>
+
+<pre class="brush: bash">MOZILLA_OFFICIAL=1 make</pre>
+
+<p>公式の Mozilla ブランドのビルドを make するのに使います。</p>
+
+<h3 id="ドッグフード_make">ドッグフード make</h3>
+
+<pre class="brush: bash">DOGFOOD=1 make</pre>
+
+<p>ドッグフードオプションとユーティリティがオンになります、例えば、Feedback アプリで、簡単に OS のフィードバック投稿ができます。</p>
+
+<h3 id="システムアプリ_make">システムアプリ make</h3>
+
+<pre class="brush: bash">B2G_SYSTEM_APPS=1 make</pre>
+
+<p>この環境変数は、アプリを <code>/data/local</code> ではなく、<code>/system/b2g</code> に配置します。ユーザビルドの作業をする時に使うべきです。この変数は、<code>make production</code> を実行した時に自動セットされます。また <code>install-gaia</code> や <code>reset-gaia</code> にも使われます。</p>
+
+<h3 id="ディストリビューションおよびマーケット向けのカスタマイズビルド">ディストリビューションおよびマーケット向けのカスタマイズビルド</h3>
+
+<pre class="brush: bash">GAIA_DISTRIBUTION_DIR=./dir</pre>
+
+<div class="note">
+<p><strong>注記</strong>: 詳細は <a href="/ja/Firefox_OS/Hacking_Firefox_OS/Market_customizations_guide">Market カスタマイズ</a> をお読みください。</p>
+</div>
+
+<h2 id="開発者デバッグ_オプション">開発者/デバッグ オプション</h2>
+
+<p>デバッグ用途で、機能を追加・削除したり、設定を変更する make オプションもあります。</p>
+
+<h3 id="リモートデバッグを有効化">リモートデバッグを有効化</h3>
+
+<pre class="brush: bash">REMOTE_DEBUGGER=1</pre>
+
+<p>これは、<a href="/ja/Firefox_OS/Debugging/Developer_settings#Remote_debugging">開発者設定</a> のオプション設定と同じ、端末上のリモートデバッグを有効にします。</p>
+
+<h3 id="JavaScript_最適化_make">JavaScript 最適化 make</h3>
+
+<pre class="brush: bash">GAIA_OPTIMIZE=1 make</pre>
+
+<p>これは、Gaia の JavaScript 最適化の起点となり、ファイルを連結・圧縮します。これは、<code>make production</code> を実行した時に自動でセットされます。また、<code>install-gaia</code> や <code>reset-gaia</code> にも使われます。</p>
+
+<h3 id="高解像度のイメージアセット">高解像度のイメージアセット</h3>
+
+<pre class="brush: bash">GAIA_DEV_PIXELS_PER_PX=1.5 make</pre>
+
+<p>あるいは、別名で:</p>
+
+<pre class="brush: bash">GAIA_DPPX=1.5 make</pre>
+
+<p>アプリのパッケージ時に、このオプションは、画像を <code>*@1.5x.(gif|jpg|png)</code> の同等品が存在する場合に、その画像に置き換えます。上記オプションを標準の <code>make</code> コマンドの部分的なオプションとして使う必要があります。例えば:</p>
+
+<pre class="brush: bash">GAIA_DEV_PIXELS_PER_PX=1.5 make reset-gaia
+
+GAIA_DEV_PIXELS_PER_PX=1.5 make install-gaia</pre>
+
+<p>Gaia は現在、次の画面解像度をターゲットとしています:</p>
+
+<ul>
+ <li>qHD: ~540×960; 端末のピクセル比 = 1.6875</li>
+ <li>WVGA: ~480×800; 端末のピクセル比 = 1.5</li>
+ <li>HBGA (320x240); 端末のピクセル比 = 1</li>
+</ul>
+
+<p>qHD と WVGA 端末で画像が確実にシャープに見えるために、<code>GAIA_DEV_PIXELS_PER_PX</code> を使います。CSS ピクセル単位あたりの端末ピクセルについて、詳しい情報は、<a href="https://developer.mozilla.org/ja/docs/Mozilla/Mobile/Viewport_meta_tag#A_pixel_is_not_a_pixel" title="https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag#A_pixel_is_not_a_pixel">A pixel is not a pixel</a> 参照してください</p>
+
+<h3 id="統合テストの実行">統合テストの実行</h3>
+
+<p>make を使って Gaia の統合テストを実行できます。詳細は<a href="/ja/Firefox_OS/Platform/Automated_testing/Gaia_integration_tests">Gaia 統合テスト</a> を参照してください。</p>
+
+<h3 id="Raptor_パフォーマンステストの実行">Raptor パフォーマンステストの実行</h3>
+
+<p>Raptor テストを実行するためには、テストを実際に行う前に、端末を構成する必要があります。詳しくは、<a href="/Firefox_OS/Automated_testing/Raptor">Raptor</a> を参照してください。</p>
+
+<pre class="brush: bash">make raptor</pre>
+
+<h3 id="低メモリプロファイルのビルド">低メモリプロファイルのビルド</h3>
+
+<pre class="brush: bash">GAIA_MEMORY_PROFILE=low make</pre>
+
+<p>この変数は、Gaia の低メモリプロファイルを生成します。これは、Tarako のような低メモリ端末を想定しています。</p>
+
+<h3 id="はじめてガイド_(FTU)_の無効化">はじめてガイド (FTU) の無効化</h3>
+
+<pre class="brush: bash">NOFTU=1
+</pre>
+
+<p>この環境変数で FTU が無効になります。</p>
+
+<h3 id="ロック画面の無効化">ロック画面の無効化</h3>
+
+<p>Firefox OS のロック画面を <code>NO_LOCK_SCREEN</code> オプションを使って無効化できます、例えば:</p>
+
+<pre class="brush: bash">NO_LOCK_SCREEN=1 make</pre>
+
+<h3 id="リファレンス負荷データ">リファレンス負荷データ</h3>
+
+<p>リファレンス負荷データを使うと、開発者やテスト担当者は、新たにフラッシュされた電話機に対して、いくつかのアプリに大量のデータを素早くインストールできます。</p>
+
+<p>そのコマンドは次の通り (gaia ディレクトリから):</p>
+
+<pre class="brush: bash">make reference-workload-light</pre>
+
+<ul>
+ <li>200 件の連絡先</li>
+ <li>200 件の SMS メッセージ</li>
+ <li>50 件の通話履歴エントリ</li>
+ <li>20 枚のギャラリー画像</li>
+ <li>20 曲の歌</li>
+ <li>5 本の動画</li>
+</ul>
+
+<pre class="brush: bash">make reference-workload-medium</pre>
+
+<ul>
+ <li>500 件の連絡先</li>
+ <li>500 件の SMS メッセージ</li>
+ <li>100 件の通話履歴エントリ</li>
+ <li>50 枚のギャラリー画像</li>
+ <li>50 曲の歌</li>
+ <li>10 本の動画</li>
+</ul>
+
+<pre class="brush: bash">make reference-workload-heavy</pre>
+
+<ul>
+ <li>1000 件の連絡先</li>
+ <li>1000 件の SMS メッセージ</li>
+ <li>200 件の通話履歴エントリ</li>
+ <li>100 枚のギャラリー画像</li>
+ <li>100 曲の歌</li>
+ <li>20 本の動画</li>
+</ul>
+
+<pre class="brush: bash">make reference-workload-x-heavy</pre>
+
+<ul>
+ <li>2000 件の連絡先</li>
+ <li>2000 件の SMS メッセージ</li>
+ <li>500 件の通話履歴エントリ</li>
+ <li>250 枚のギャラリー画像</li>
+ <li>250 曲の歌</li>
+ <li>50 本の動画</li>
+</ul>
+
+<p>これらのターゲットには、アプリ名をスペースで区切った <code>APP</code> 環境変数か、<code>APPS</code> 環境変数が指定できます。例えば:</p>
+
+<pre class="brush: bash">APP=sms make reference-workload-light
+APPS="sms communications/contacts" make reference-workload-heavy
+</pre>
+
+<p>利用可能なアプリは次の通り:</p>
+
+<pre class="brush: bash">APPS="gallery music video communications/contacts sms communications/dialer"</pre>
+
+<p>リファレンス負荷データに音楽 (歌) を入れるには、mid3v2 ユーティリティがインストールされていなければなりません。このユーティリティは次のコマンドでインストールします:</p>
+
+<pre class="brush: bash">sudo apt-get install python-mutagen</pre>
+
+<p>代わりに、Fedora や RHEL を実行している場合、これを使います:</p>
+
+<pre class="brush: bash">sudo yum install python-mutagen</pre>
+
+<h3 id="ドキュメント_make">ドキュメント make</h3>
+
+<p>Gaia のドキュメントは、jsdoc3 を通じてビルドされます。これを生成するには、次のコマンドを使います:</p>
+
+<pre class="brush: bash">make docs</pre>
+
+<h3 id="IME_レイアウトと辞書の有効化">IME レイアウトと辞書の有効化</h3>
+
+<p>キーボード IME レイアウトと辞書を有効化するには、次のコマンド構成を使用します:</p>
+
+<pre class="brush: bash">GAIA_KEYBOARD_LAYOUTS=en,de,fr,jp-kanji make</pre>
+
+<p>現在デフォルトでは、ディスク容量のために、全てのレイアウトを積んでいません。レイアウトと辞書を切り離すために <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1029951">Bug 1029951</a> が作業中です (ユーザ辞書をダウンロード提供します)。</p>
+
+<p>すべての利用可能なレイアウトを知るには <a href="https://github.com/mozilla-b2g/gaia/blob/26fb1315c57b029eb66cc1421d5df7bbd0d9acb3/shared/js/keyboard_helper.js#L96">shared/js/keyboard_helper.js</a> のファイルを見てください。</p>
diff --git a/files/ja/archive/b2g_os/developing_gaia/making_gaia_code_changes/index.html b/files/ja/archive/b2g_os/developing_gaia/making_gaia_code_changes/index.html
new file mode 100644
index 0000000000..7f7735cc14
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/making_gaia_code_changes/index.html
@@ -0,0 +1,137 @@
+---
+title: Gaia のコードに変更を加える
+slug: Archive/B2G_OS/Developing_Gaia/Making_Gaia_code_changes
+tags:
+ - Firefox OS
+ - Gaia
+ - 初心者
+translation_of: Archive/B2G_OS/Developing_Gaia/Making_Gaia_code_changes
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">今やデスクトップでGaiaを実行していて、コードベースがどう動作するかをある程度理解し、プロジェクトにコントリビュート(貢献)し始める準備ができているでしょう。この記事では変更を加える方法と、取り組むべきバグの見つけ方を記述します。</span></p>
+</div>
+
+<h2 id="Gitのベストプラクティス">Gitのベストプラクティス</h2>
+
+<ol>
+ <li>Gaiaに変更を加える時は、まず最新をmasterから取得すべきです:
+ <pre class="brush: bash">cd path/to/gaia
+git checkout master
+git pull upstream master</pre>
+ </li>
+ <li>次に、あなたの修正を乗せるブランチをチェックアウトします:
+ <pre class="brush: bash">git checkout -b my-code-fix</pre>
+ </li>
+ <li>最後に、 <code>gaia/apps</code> ディレクトリに移動し、アプリファイルを変更します。</li>
+</ol>
+
+<h2 id="簡単なコード変更例">簡単なコード変更例</h2>
+
+<p>コード変更を見るには:</p>
+
+<ol>
+ <li>Gaiaコードベースに必要な変更を加え、変更を保存します。</li>
+ <li>FirefoxのMuletか、WebIDE内のsimulatorをシャットダウンします。</li>
+ <li><code>make</code>を使ってGaiaプロフィールをリビルドします。</li>
+ <li>FirefoxのMuletか、WebIDE内のsimulatorを再起動します。</li>
+</ol>
+
+<p>ロックスクリーンの時計の色変更のような簡単な例を見てみましょう:</p>
+
+<p><img alt="Gaia lockscreen showing the clock display in white text" src="https://mdn.mozillademos.org/files/7929/gaia-lockscreen-clock.png" style="display: block; height: 623px; margin: 0px auto; width: 369px;"></p>
+
+<ol>
+ <li>スタイルがどうやってセットされているのか見つける最良の方法は、開発者ツールを使うことです。デスクトップ版Firefoxで Ctrl/右 + クリックしてコンテキストメニューから <em>要素を調査</em> を選びます。</li>
+ <li>どのCSSファイルを編集するかがわかったら — ここでは <code>gaia/apps/system/lockscreen/style/lockscreen.css</code> — 画面右手側で、CSSファイルが望み通りの状態になるよう編集します。</li>
+ <li>変更に満足したら、ファイルディレクトリに移動して変更します。</li>
+ <li>次に、この節の最初で概説したステップに従い、変更を見ます。</li>
+</ol>
+
+<p><img alt="Gaia lockscreen showing the clock display modified from white to red text" src="https://mdn.mozillademos.org/files/7931/gaia-lockscreen-clock-modified.png" style="display: block; height: 622px; margin: 0px auto; width: 366px;"><br>
+ <br>
+ <br>
+ Gaia Firefox Muletのレンダリング制限:</p>
+
+<ul>
+ <li>デスクトップ版Firefoxレンダリングでは、アプリは実機の動作と比べてはるかに正確ですが、あちこちに違いがあるかもしれません。</li>
+ <li>デスクトップ版Firefoxでは全てのデバイスAPIをサポートしているわけではありません;有効なデバイスAPI一覧は <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/preferences.js">preferences.js</a> に見ることができます。</li>
+</ul>
+
+<h2 id="取り組むべきバグを見つける場所">取り組むべきバグを見つける場所</h2>
+
+<p>Firefox OS のバグを見つける最良の方法は、 <a href="http://www.joshmatthews.net/bugsahoy/?b2g=1">Josh Matthews の、Bugs Ahoy(おーいバグ)、アプリ</a>です — これはMozilla の Bugzilla からバグを直接引き込んで、検索、閲覧しやすく表示してくれます。 いったん取り組むバグを見つけたら、Bugzilla ページに移動して"assigned to" 項目に自分自身を入力し、下記に示すように、作業を開始します。</p>
+
+<h3 id="有用なヒント">有用なヒント</h3>
+
+<ul>
+ <li>助言つき(mentored)バグに取り組む時、Gaiaコアチームの誰かがあなたの進捗をモニタし、コードとプロセスとの援助を提供します。あなたがFirefox OSの貢献プロセスの初心者である場合、 これらに参加するのは有用です。これらはFirefox OS Bugzilla ページの"Mentors"項目に入力されていることで示されます。 Bugs Ahoy で助言つきバグが一覧できます。</li>
+ <li>あなたが完全に新しいBugzillaユーザーである場合、自身をバグの担当にアサインできないかもしれません。できない場合、権限のある助言者にアサインしてもらうよう依頼するか、もしくは単にバグコメントで依頼して下さい。</li>
+ <li>多少経験を積んだ後、自身にバグのアサインできる権限を誰かに依頼するべきでしょう。</li>
+ <li>新しいコントリビューターが簡単なバグを探す場合、もう一つ探すのに良いホワイトボードエントリーは<code>[good first bug]</code>です。最初のバグに適したリストは <a href="http://www.joshmatthews.net/bugsahoy/?b2g=1&amp;simple=1">http://www.joshmatthews.net/bugsahoy/?b2g=1&amp;simple=1</a> で一覧できます。</li>
+ <li>貢献したいプロジェクトを探すのには検索結果を保存すべきです。例えば下記では Gaia Clock アプリのバグ検索が取得できます:</li>
+</ul>
+
+<p><a href="https://bugzilla.mozilla.org/buglist.cgi?columnlist=product%2Ccf_blocking_b2g%2Cbug_status%2Cresolution%2Cshort_desc&amp;resolution=---&amp;query_based_on=CLOCK&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;component=Gaia%3A%3AClock&amp;product=Boot2Gecko&amp;known_name=CLOCK&amp;list_id=10497922">https://bugzilla.mozilla.org/buglist.cgi?columnlist=product%2Ccf_blocking_b2g%2Cbug_status%2Cresolution%2Cshort_desc&amp;resolution=---&amp;query_based_on=CLOCK&amp;query_format=advanced&amp;bug_status=UNCONFIRMED&amp;bug_status=NEW&amp;bug_status=ASSIGNED&amp;bug_status=REOPENED&amp;component=Gaia%3A%3AClock&amp;product=Boot2Gecko&amp;known_name=CLOCK&amp;list_id=9776392</a></p>
+
+<h2 id="参考情報">参考情報</h2>
+
+<ul>
+ <li><a href="https://mozilla.app.box.com/s/wzgsb3lkqglv0dnfdgzs">Gaia powerpoints for visual/interaction specifications</a></li>
+ <li><a href="https://etherpad.mozilla.org/gaia-meeting-notes">Weekly Gaia meeting Etherpad</a></li>
+ <li><a href="https://datazilla.mozilla.org/">Datazilla</a>: Mozilla's performance test utility</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/developing_gaia/market_customizations_guide/index.html b/files/ja/archive/b2g_os/developing_gaia/market_customizations_guide/index.html
new file mode 100644
index 0000000000..21120bab66
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/market_customizations_guide/index.html
@@ -0,0 +1,1313 @@
+---
+title: Market customizations guide
+slug: Archive/B2G_OS/Developing_Gaia/Market_customizations_guide
+tags:
+ - B2G
+ - Customization
+ - Firefox OS
+ - Gaia
+ - Marketplace
+ - build
+translation_of: Archive/B2G_OS/Developing_Gaia/Market_customizations_guide
+---
+<div class="summary">
+<p>マーケットカスタマイズ機能を使うとコアの Gaia リポジトリを書き換えることなく独立したディレクトリでビルド時のカスタマイズを指定 (例えば、ビルド二度のアプリを含めるかなど) することができます。独自のカスタマイズを独立したディレクトリで用意することもできるし、事前に用意されたソースの入ったディレクトリを使うこともできます。カスタマイズはビルドオプションで指定します。ここではカスタマイズのしかたや使い方を紹介します。</p>
+</div>
+
+<h2 id="カスタマイズ概要">カスタマイズ概要</h2>
+
+<p>Firefox OS は 1.0.1 以降、Firefox 同様のカスタマイズシステムを使っています。この記事に書かれている機能は特に明記されない限り Firefox OS 1.0.1 以降で動作します。</p>
+
+<p>フルセットの <a href="https://github.com/mozilla-b2g/gaia/tree/master/customization">Gaia ディストリビューションカスタマイズサンプル</a>を Gaia リポジトリの中に用意しています。ビルド時のカスタマイズで何が出来るかするにはまずこれを直接触ってみるのが良いでしょう。この記事でもあとで言及します。</p>
+
+<div class="note">
+<p><strong>メモ</strong>: カスタマイズサンプルをより良くするための提案があったり、この記事で更新されているがコードが古くなっているような場合は上記の Github リポジトリにプルリクエストを送ってください。</p>
+</div>
+
+<p>カスタマイズサンプルのディレクトリ構造は次の通りです:</p>
+
+<pre> customize-sample
+ ├── power
+ │ ├── carrier_power_on.png
+ │ └── carrier_power_off.png
+ ├── ringtones
+ │ ├── list.json
+ │ └── ringer_dream_theme.ogg
+ ├── wallpapers
+ │ ├── customize.png
+ │ └── list.json
+ ├── browser.json
+ ├── calendar.json
+ ├── contacts.json
+ ├── costcontrol.json
+ ├── device-features.json
+<span style="font-size: 1rem;"> ├── eu-roaming.json</span>
+ ├── homescreens.json
+ ├── network.json
+ ├── settings.json
+ ├── sms-blacklist.json
+ ├── support.json
+ ├── wapuaprof.json
+ └── apps.list</pre>
+
+<div class="note">
+<p><strong>メモ</strong>: すべてのファイルは必須ではありません。ファイルを含めなければシステムのデフォルト設定でビルドされます。</p>
+</div>
+
+<p>後に個々のカスタマイズについて説明しますが、まずはどのように Gaia にカスタマイズを適用するか説明します。</p>
+
+<h2 id="カスタマイズの適用手順">カスタマイズの適用手順</h2>
+
+<p>カスタマイズサンプルを Gaia に適用するには次のようにしてください:</p>
+
+<ol>
+ <li>Gaia のソースコードを <a href="https://github.com/mozilla-b2g/gaia">https://github.com/mozilla-b2g/gaia</a> からクローンしてください。</li>
+ <li><code>gaia/customization/</code> ディレクトリを別のディレクトリにコピーして自分でカスタマイズすることもできますし <code>gaia/customization/</code> ディレクトリを直接書き換えることもできます。カスタマイズファイルを収めるディレクトリへのパスは下記の <code>&lt;DISTRIBUTION_PATH&gt;</code> で指定できます。任意のディレクトリパスを指定してください。</li>
+ <li>必要に応じてサンプルを編集してください。</li>
+ <li>Firefox OS デバイスを USB ケーブルでコンピュータに接続し、<a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a> で接続できることを確認してください。</li>
+ <li>次のように <code>GAIA_DISTRIBUTION_DIR</code> 環境変数を指定して Gaia をビルドしてください:</li>
+ <li>
+ <pre class="brush: bash">make production GAIA_DISTRIBUTION_DIR=&lt;DISTRIBUTION_PATH&gt;</pre>
+ </li>
+ <li>カスタマイズが適用された Gaia を Firefox OS デバイスにインストールできます。</li>
+</ol>
+
+<p>カスタマイズサンプルディレクトリを <code>gaia/distribution/</code> ディレクトリにコピーした場合、環境変数を指定する必要はありません:</p>
+
+<pre class="brush: bash">make production</pre>
+
+<div class="note">
+<p><strong>メモ</strong>: 一部のカスタマイズは Gaia ビルドスクリプト中で行えます。ビルドスクリプトのカスタマイズについては <a href="/en-US/Firefox_OS/Developing_Gaia/make_options_reference">make オプションリファレンス</a>をご覧ください。</p>
+</div>
+
+<div class="note">
+<p><strong>メモ</strong>: SIM カード固有のカスタマイズはビルド時に含められますが、初回起動時のセットアップ中、実行時に適用されます。</p>
+</div>
+
+<h2 id="ビルド時のカスタマイズ">ビルド時のカスタマイズ</h2>
+
+<p>それではサンプルに含まれているさまざまなカスタマイズ例を見ていきましょう。</p>
+
+<h3 id="power">power/</h3>
+
+<p>電源オン・オフ時のアニメーション (あるいは静止画) を含められます。ファイルは MP4 のアニメーションか PNG の静止画です。</p>
+
+<p>次のような名前のファイルを用意してください:</p>
+
+<ul>
+ <li><code>carrier_power_on.png</code></li>
+ <li><code>carrier_power_on.mp4</code></li>
+ <li><code>carrier_power_off.png</code></li>
+ <li><code>carrier_power_off.mp4</code></li>
+</ul>
+
+<h3 id="ringtones">ringtones/</h3>
+
+<p>カスタム着信音を含められます。次のように <code>list.json</code> ファイルで着信音ファイルのリストを指定します:</p>
+
+<pre class="brush: js"> {
+ "ringer_classic_courier.opus": "",
+ "ringer_dream_theme.ogg": "",
+ "ringer_loud_windchimes.opus": "",
+ "ringer_bitbounce.opus": ""
+ }</pre>
+
+<p>カスタム着信音は Firefox OS の環境設定アプリの <em>サウンド &gt; 着信</em> で指定できます。 デフォルトの着信音は DataURI を用いて <code>settings.json</code> で設定します。DataURI は node/npm の <strong>datauri</strong> コマンドで生成できます:</p>
+
+<ol>
+ <li><strong>npm install datauri -g</strong> コマンドでインストールしてください。</li>
+ <li><strong>datauri &lt;FILE&gt;</strong> コマンドでファイルを DataURI に変換してください。</li>
+</ol>
+
+<h3 id="wallpapers">wallpapers/</h3>
+
+<p>カスタム壁紙 (PNG ファイル) を <code>list.json</code> ファイルで指定すると、Firefox OS の環境設定アプリの <em>画面表示 &gt; 壁紙</em> で指定できるようになります。</p>
+
+<p>デフォルトの壁紙は次のように <code>settings.json</code> で指定してください:</p>
+
+<pre class="brush: js">"wallpaper.image": "image location"</pre>
+
+<div class="note">
+<p><strong>メモ</strong>: 画像はファイルパスまたは dataURI で指定できます。</p>
+</div>
+
+<h3 id="browser.json">browser.json</h3>
+
+<p>このファイルではブックマークやデフォルト検索エンジンなど、ブラウザアプリをカスタマイズできます。このファイルの書き方は <a href="/en-US/Firefox_OS/Hacking_Firefox_OS/Market_customizations_guide#Browser_bookmarks_.26_default_search_engine">ブラウザのブックマークとデフォルト検索エンジン</a> をご覧ください。</p>
+
+<h3 id="calendar.json">calendar.json</h3>
+
+<p>このファイルでは Firefox OS のカレンダーアプリに独自のカレンダーを指定できます。Google OAuth credentials を指定する必要があります。加えて、カレンダーの CalDav API アクセスが必要になります。API キーとシークレットを生成するには、Google の <a href="https://developers.google.com/google-apps/calendar/caldav/v2/guide#creating_your_client_id">creating your client ID</a> ページに記載の通り、次の手順で操作してください:</p>
+
+<ol>
+ <li><a href="https://code.google.com/apis/console/b/0">API console</a> を開いてください。</li>
+ <li>プロジェクトを開き <em>APIs &amp; auth &gt; APIs で Calendar CalDav API</em> <em>を有効化してください。</em></li>
+ <li><em>Credentials</em> をクリックしてください。</li>
+ <li><em>Create new client ID</em> をクリックしてください。</li>
+ <li><em>Application type</em> を Installed application に設定し、<em>Installed application type</em> を <em>Other</em> に設定し、<em>Create Client ID</em>. ボタンを押してください。<em>Client ID</em> と <em>Client secret</em> が表示されます。</li>
+ <li><code>calendar.json</code> ファイルを開き <code>client_id</code> と <code>client_secret</code> に Google API コンソールで表示された <em>Client ID</em> と <em>Client secret</em> を入力して保存してください。</li>
+</ol>
+
+<div class="note">
+<p><strong>メモ</strong>: API の利用回数は 1 日 1,000,000 リクエストに制限されています。</p>
+</div>
+
+<h3 id="camera-config.js_(Gallery_and_Camera_app_image_sizes)">camera-config.js (Gallery and Camera app image sizes)</h3>
+
+<div class="code-body highlight">
+<pre class="line"><span class="p">{</span>
+ <span class="nt">"maxImagePixelSize"</span><span class="p">:</span> <span class="mi">6000000</span><span class="p">,</span>
+ <span class="nt">"maxSnapshotPixelSize"</span><span class="p">:</span> <span class="mi">4000000</span><span class="p">,</span>
+ <span class="nt">"requiredEXIFPreviewSize"</span><span class="p">:</span> <span class="p">{</span>
+ <span class="nt">"width"</span><span class="p">:</span> <span class="mi">1200</span><span class="p">,</span>
+ <span class="nt">"height"</span><span class="p">:</span> <span class="mi">1222</span>
+ <span class="p">}</span>
+<span class="p">}</span></pre>
+</div>
+
+<p><code>maxImagePixelSize</code> と <code>maxSnapshotPixelSize</code> はギャラリーとカメラアプリで表示する画像の最大ピクセルサイズです。デフォルトは 5 メガピクセル (5*2<sup>20</sup> ピクセル) になっています。</p>
+
+<p><code>requiredEXIFPreviewSize </code>プロパティを追加すればフルスクリーンプレビューで表示されるための最小 EXIF プレビューサイズも指定できます。これを指定しなければ EXIF プレビューはランドスケープとポートレイト (横と縦) モード両方で (高さまたは幅が) 画面サイズ以上になる場合にのみ EXIF プレビューが使用されます。</p>
+
+<h3 id="contacts.json">contacts.json</h3>
+
+<p>Gaia ビルド時の連絡帳データベースに含める連絡先のリストを指定できます。</p>
+
+<p><code>contacts.json</code> ファイルのサンプルは次の通りです:</p>
+
+<pre class="brush: js">[
+ {
+ "name": ["John Doe"],
+ "givenName": ["John"],
+ "familyName": ["Doe"],
+ "nickname": ["Johnny"],
+ "category": ["Work", "Racing Team"],
+ "email": [
+ {
+ "type": ["personal"],
+ "value": "john.doe@example.org",
+ "pref": true
+ },
+ {
+ "type": ["work"],
+ "value": "jdoe@example.com"
+ }
+ ],
+ "adr": [
+ {
+ "type": ["personal"],
+ "streetAddress": "123 Foopy St.",
+ "locality": "San Francisco",
+ "region": "Downtown",
+ "postalCode": "94030",
+ "countryName": "US"
+ }
+ ]
+ },
+ {
+ "name": ["CarrierX"],
+ "email": [
+ {
+ "type": ["work"],
+ "value": "support@carrierx.com"
+ }
+ ],
+ "url": [
+ {
+ "type": ["work"],
+ "value": "https://www.carrierx.com"
+ }
+ ]
+ }
+ ]</pre>
+
+<div class="note">
+<p><strong>メモ</strong>: Contacts オブジェクトのレイアウト詳細は <a href="/en-US/docs/WebAPI/Contacts">Contacts API ページ</a> をご覧ください。</p>
+</div>
+
+<div class="note">
+<p><strong>メモ</strong>: SIM カード依存のカスタマイズについては <a href="#Browser_bookmarks_and_default_search_engine">Browser bookmarks and default search engine</a> 節をご覧ください。</p>
+</div>
+
+<h3 id="device-features.json">device-features.json</h3>
+
+<p>ハードウェアでサポートする機能を指定します。デフォルトは次の通りです:</p>
+
+<pre class="brush: js">{
+ "ambientLight": true,
+ "vibration": true
+}</pre>
+
+<p>各機能を無効化するには <code>false</code> を指定してください。</p>
+
+<h3 style="line-height: 24px; font-size: 1.71428571428571rem;" id="eu-roaming.json">eu-roaming.json</h3>
+
+<p>EU のローミング規制に従うべきオペレーターのリストとその APN 設定が含められます。このファイルは 3 つの部分からなり、最初の <code>home</code> では規制に従うべきオペレーターのオペレーターコードを指定します。次の<span style="line-height: 1.5;"> </span><code style="font-style: normal; line-height: 1.5;">foreign</code><span style="line-height: 1.5;"> </span>ではローミング前に EU ローミング通知が表示されるべき海外オペレーターのオペレーターコードを指定します。最後の部分では EU ローミングの APN 設定を含めます。デフォルトファイルは次のようになります:</p>
+
+<pre style="font-size: 14px;" class="brush: js">{
+ "home": null,
+ "foreign": null,
+ "defaultApns": []
+}
+</pre>
+
+<p>OS にローミング通知を表示させたい場合、次のような形でファイルを用意してください。この例では、ユーザがオペレーターコードが "001, 01" の SIM カードを使っていてオペレーターコード "002, 02" の海外ネットワークにローミング接続するときに  EU ローミング通知が表示されます:</p>
+
+<pre style="font-size: 14px;" class="brush: js">{
+ "home": {
+ "001": {
+ "01": true
+ }
+ },
+ "foreign": {
+ "002": {
+ "02": true
+ }
+ },
+ "defaultApns": [{
+ "apn": "eu.apn",
+ "types": ["default"]
+ ]}
+}
+</pre>
+
+<div class="note">
+<p><strong>メモ</strong>: <span style="font-family: courier new,andale mono,monospace;">defaultApns</span> フィールドにリストされる APN 設定はすべて環境設定アプリにデフォルトでリスト表示されます。</p>
+</div>
+
+<h3 id="homescreens.json">homescreens.json</h3>
+
+<p><a href="https://github.com/mozilla-b2g/gaia/blob/master/customization/homescreens.json">homescreens.json</a> では Firefox OS のドックとホームスクリーンに表示するアプリとその順序を定義します。デフォルトでは次のような感じです:</p>
+
+<pre class="brush: js">{"homescreens": [
+ [
+ ["apps", "communications", "dialer"],
+ ["apps", "sms"],
+ ["apps", "browser"],
+ ["apps", "camera"]
+ ]
+ ]}</pre>
+
+<p>この設定ではドックに表示される 4 つのアプリを指定しています。配列を追加すると、ホームスクリーンの 1 ページ目に表示されるアプリ、次を追加すると 2 ページ目のものと順次設定できます。</p>
+
+<pre class="brush: js">{"homescreens": [
+ [ // We're in the dock!
+ ["apps", "communications", "dialer"],
+ ["apps", "sms"],
+ ["apps", "browser"],
+ ["apps", "camera"]
+ ],
+ [ // We're on Page 1 of the homescreen
+ ["apps", "email"],
+ ["apps", "settings"],
+ ["apps", "clock"],
+ ["apps", "calendar"]
+ ],
+ [ // We're on Page 2 of the homescreen
+ ["external-apps", "customapp1"],
+ ["external-apps", "customapp2"],
+ ["external-apps", "customapp3"],
+ ["external-apps", "customapp4"]
+ ]
+ ]}</pre>
+
+<p>内側の配列の 1 つめの要素にはアプリが入っているフォルダ名 ("apps" や "external-apps" を、2 つめの要素にはアプリのディレクトリ名 ("email" や "browser" など) を指定してください。</p>
+
+<h4 id="コレクション">コレクション</h4>
+
+<div class="note">
+<p><strong>メモ</strong>: Fierfox 2.0 では <code>collections</code> ディレクトリは <code>homescreen</code> アプリの中の <code>collections</code>  アプリに移動しました。マニフェストの値も一部変更されている事に注意してください (例えば <a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/collection/collections/funny/manifest.collection">funny コレクションのマニフェスト</a> をご覧ください)。<code>provider_id</code> は <code>categoryId</code> に、<code>apps</code> は <code>pinned</code> に変更されています。</p>
+</div>
+
+<p>コレクションはホームスクリーンに独自のアイコンで表示されるアプリのグループです。そのアイコンをタップすると、コレクションに含まれるアプリのアイコン一覧を含む新しい画面が表示されます。デフォルトでどのようなコレクションが用意されているかは <a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/collection/collections">ソースコードの collections ディレクトリ</a> をご覧ください:</p>
+
+<ul>
+ <li><code>funny</code>: 最新のオモシロアプリ</li>
+ <li><code>games</code>: オンラインゲームで遊ぶ</li>
+ <li><code>local</code>: あなたのいる場所に関するアプリ</li>
+ <li><code>music</code>: 好きな音楽を聴こう</li>
+ <li><code>news</code>: 世界の最新ニュースに注目</li>
+ <li><code>shopping</code>: お買い物を楽しもう</li>
+ <li><code>showbiz</code>: エンタメアプリを見つけよう</li>
+ <li><code>social</code>: どこでもソーシャルネットワーク</li>
+ <li><code>sports</code>: スポーツのベストアプリ</li>
+ <li><code>tv</code>: メディア関連アプリ</li>
+</ul>
+
+<p>個別のディレクトリではいろいろな解像度のアイコンファイルと、名前や役割とアイコンへのパスなどコレクションのメタデータが定義されています。</p>
+
+<div class="note">
+<p><strong>メモ</strong>: E.me のサーバでは追加のコレクションが定義されており、合計 19 のコレクションがあります (上記の 10 に加えて 9 あります)。これらのリストについてはホームスクリーンをロングタップして「スマートコレクションを追加」を選択すると表示されます。</p>
+</div>
+
+<p><a href="https://github.com/mozilla-b2g/gaia/blob/master/customization/homescreens.json"><code>homescreens.json</code></a> ではコレクションをどのページでどの順番で読み込むか定義できます。例えば、<code>shopping</code>, <code>social</code>, <code>sports</code> および <code>tv</code> コレクションを表示したければ次のように指定します:</p>
+
+<pre class="brush: js">{"homescreens": [
+ [
+ ["apps/collection/collections", "shopping"],
+ ["apps/collection/collections", "social"],
+ ["apps/collection/collections", "sports"],
+ ["apps/collection/collections", "tv"]
+ ], [
+ ["apps", "communications", "dialer"],
+ ["apps", "sms"],
+ ["apps", "browser"],
+ ["apps", "camera"]
+ ]
+ ]}</pre>
+
+<p>最上部の配列はそれぞれホームスクリーンのページに対応しており、この場合はコレクションのドックに表示され、個別のアプリがホームスクリーンの 1 ページ目に表示されます。</p>
+
+<div class="note">
+<p><strong>メモ</strong>: 初期設定では、Gaia ホームスクリーンの最初のページに次の 4 つのコレクションが表示されます: <em>Social</em>, <em>Games</em>, <em>Music</em>, <em>Entertainment</em>.</p>
+</div>
+
+<div class="note">
+<p><strong>メモ</strong>: コレクション名は小文字で指定します。</p>
+</div>
+
+<h5 id="コレクションには何が含まれるか">コレクションには何が含まれるか</h5>
+
+<p>コレクションには 2 つの種類のアプリがあります。<br>
+ <br>
+ <strong>Local apps</strong> は <code>/apps/collection/collections/&lt;collectionName&gt;/manifest.collection</code> のマニフェストファイルでビルド時に定義される物です。各コレクションに含まれるローカルアプリはマニフェストファイルで定義します。例えば、social コレクション (電話、SMS、連絡帳、メールアプリを含む) のマニフェストは次のようになります:</p>
+
+<pre class="brush: js">{
+ "name": "Social",
+ "role": "collection",
+ "provider_id": "289", // adaptive search identifier
+ "apps": [
+ ["apps", "communications", "dialer"],
+ ["apps", "sms"],
+ ["apps", "communications", "contacts"],
+ ["apps", "email"]
+ ],
+ "default_locale": "en-US",
+ "icons": {
+ "60": "/collections/social/icon.png",
+ "90": "/collections/social/icon@1.5x.png",
+ "120": "/collections/social/icon@2x.png"
+ }
+ }</pre>
+
+<p><strong>Remote apps</strong> は適応検索のプロバイダにより実行時に、デバイスがオンライン状態の時に提供されます。</p>
+
+<h5 id="コレクションの翻訳方法">コレクションの翻訳方法</h5>
+
+<p>コレクションの翻訳はホームスクリーンアプリの <code>apps/collection/locales/</code>  ディレクトリにあるローカルファイルで定義します。各ロケールのファイルは <code>collections.&lt;言語コード&gt;.properties</code> のような名前規則になっており、<code>&lt;言語コード&gt; </code>は例えばフランス語なら fr、日本語なら ja などになります。内容はデフォルトの英語文字列と翻訳バージョンを書いた行が含まれる単純なファイルです。例えばフランス語のロケールファイルは次のようになります:</p>
+
+<pre><span class="c1"># Add bookmark to homescreen</span><span class="na">
+add-to-home-screen</span><span class="o">=</span><span class="s">Ajouter à l’écran d’accueil</span><span class="na">
+add-to-home-screen-header</span><span class="o">=</span><span class="s">Ajouter un lien</span><span class="na">
+website-name</span><span class="o">=</span><span class="s">Nom du site web</span><span class="na">
+address</span><span class="o">=</span><span class="s">Adresse</span><span class="na">
+added-to-home-screen</span><span class="o">=</span><span class="s">Ajouté à l’écran d’accueil</span></pre>
+
+<h5 id="カスタムコレクション">カスタムコレクション</h5>
+
+<p>Firefox OS 1.3 からは独自のカスタムコレクションを定義できます。単に <a href="https://github.com/mozilla-b2g/gaia/tree/master/apps/collection/collections">collections ディレクトリ</a> の中に追加し、上記のように <code>collections.json </code>でそれを指定してください。</p>
+
+<h4 id="垂直ホームスクリーンの設定">垂直ホームスクリーンの設定</h4>
+
+<p>Firefox OS 2.0 以降では、従来の水平にページめくりするホームスクリーンではなく縦スクロールする垂直ホームスクリーン (vertical homescreen) を選択できます。垂直ホームスクリーンの設定は <a href="https://github.com/mozilla-b2g/gaia/blob/master/apps/verticalhome/build/default-homescreens.json">default-homescreens.json</a> で、表示するアプリやコレクション、ホームスクリーンにアイコンを並べる列の数、ブックマークなどを指定できます。</p>
+
+<h3 id="network.json_(カスタマイズフォルダにはありません)">network.json (カスタマイズフォルダにはありません)</h3>
+
+<div class="warning">
+<p><strong>重要</strong>: Firefox OS 1.4 以降ではサポートされていません</p>
+</div>
+
+<p>In Firefox OS &lt; 1.4, this file can be created in <code>gaia/apps/settings/resources</code>, and it allows you to set the network types supported by the device. Firefox OS supports the following types:</p>
+
+<ul>
+ <li>'wcdma/gsm' (WCDMA preferred)</li>
+ <li>'gsm'</li>
+ <li>'wcdma'</li>
+ <li>'wcdma/gsm-auto' (GSM preferred)</li>
+ <li>'cdma/evdo' (CDMA preferred)</li>
+ <li>'cdma'</li>
+ <li>'evdo'</li>
+ <li>'wcdma/gsm/cdma/evdo' (Automatic)</li>
+</ul>
+
+<p>An example is as follows:</p>
+
+<pre class="brush: js">{
+ "types": [
+ "cdma/evdo",
+ "cdma", "evdo"
+ ]
+}</pre>
+
+<h3 id="settings.json">settings.json</h3>
+
+<ul>
+ <li>一般的な設定: 1.0.1</li>
+ <li>ロケットバーのデフォルト検索エンジン: 2.0</li>
+</ul>
+
+<p>このファイルではデフォルトの壁紙、着信音、ロックスクリーンの有効無効、Bluetooth の有効無効などを指定できます。<a href="https://github.com/mozilla-b2g/gaia/blob/master/build/config/common-settings.json">build/config/common-settings.json</a> を見るとどのような設定が可能か分かります。例えば、WiFi をデフォルトで無効にするには <code><span class="nt">"wifi.enabled"</span><span class="p">:</span> <span class="kc">false</span></code> などと設定できます。</p>
+
+<p>カスタム設定は <a href="https://github.com/mozilla-b2g/gaia/blob/master/customization/settings.json">customization/settings.json</a> で指定できます。</p>
+
+<h4 id="ロケットバーのデフォルト検索エンジン">ロケットバーのデフォルト検索エンジン</h4>
+
+<p>Firefox OS 2.0 以降では、<code>settings.json</code> で次のような設定でロケットバーのデフォルト検索エンジンが指定できるようになります:</p>
+
+<pre>"search.urlTemplate": "https://www.google.com/search?q={searchTerms}",
+"search.suggestionsUrlTemplate": "https://www.google.com/complete/search?client=firefox&amp;q={searchTerms}",
+"search.iconUrl": "data:image/x-icon;base64,AAABAAIAEBAAAAAAAAB9AQAAJ [TRUNCATED FOR BREVITY]
+</pre>
+
+<h3 id="検索プロバイダのカスタマイズ">検索プロバイダのカスタマイズ</h3>
+
+<p>Firefox OS 2.0 以降ではデフォルトの <a href="/en-US/docs/https://github.com/mozilla-b2g/gaia/blob/master/apps/settings/resources/search/providers.json">apps/settings/resources/search/providers.json</a> ファイルで検索プロバイダとアイコンファイルのリストを指定できます。ビルド時に <a href="https://github.com/mozilla-b2g/gaia/blob/master/customization/search/providers.json">customization/search/providers.json</a> ファイルを書き換え、適切なアイコンファイルを同じディレクトリに含めることで変更できます。このディレクトリが存在するとビルド時に <code>app/settings/resources/search</code> の中身を上書きします。</p>
+
+<h3 id="デフォルトホームスクリーンアプリのカスタマイズ">デフォルトホームスクリーンアプリのカスタマイズ</h3>
+
+<p><code>homescreen.appName</code> ではデフォルトのホームスクリーンアプリを指定できます。</p>
+
+<div class="code-body highlight">
+<pre class="line"><span class="p">{</span> <span class="nt">"homescreen.appName"</span><span class="p">:</span> <span class="s2">"homescreen-stingray"</span> <span class="p">}</span></pre>
+</div>
+
+<h3 id="sms-blacklist.json">sms-blacklist.json</h3>
+
+<p>このファイルには SMS のブラックリストを記載します: このファイルに書かれた番号には SMS メッセージを送信できません。このリストは SMS アプリ <code>blacklist.json </code>ファイルを上書きします。番号は次のように配列で指定します:</p>
+
+<pre>["11223344", "55667788"]</pre>
+
+<h3 id="cellbroadcast">cellbroadcast</h3>
+
+<p>Listen するチャンネルを指定できます:</p>
+
+<ul>
+ <li>利用可能時: 実行時: Settings — <code>ril.cellbroadcast.searchlist</code></li>
+ <li>型: 文字列</li>
+ <li>有効な書式: <code>\d(-\d)?(,\d(-\d))*</code></li>
+</ul>
+
+<p>イベントレポートを無効化できます:</p>
+
+<ul>
+ <li>利用可能時:
+ <ul>
+ <li>実行時: Settings — <code>ril.cellbroadcast.disabled</code></li>
+ <li>ビルド時: Preference — <code>ril.cellbroadcast.disabled</code></li>
+ </ul>
+ </li>
+ <li>型: 真偽値</li>
+ <li>意味: true にするとセルブロードキャストレポートが完全に無効化されます。</li>
+</ul>
+
+<div class="note">
+<p><strong>Note</strong>: デフォルト設定は <a href="https://mxr.mozilla.org/gaia/source/shared/resources/apn/operator_variant.xml">operator_variant.xml</a> に記載されています。</p>
+</div>
+
+<h3 id="support.json">support.json</h3>
+
+<p>このファイルにはオンラインサポートや電話サポートなどのサポート先情報を記載します。このファイルがある場合、Settings アプリの <code>support.json</code> を上書きします。このカスタマイズファイルではデフォルト設定を上書きするため、デフォルト設定を残しつつサポートリソースを追加したい場合、組み込みのアプリからコピーして、それを元にカスタマイズをしてください。</p>
+
+<p>JSON ファイルは次のようなものになります:</p>
+
+<pre class="brush: js">{
+ "onlinesupport": {
+ "href": "http://support.mozilla.org/",
+ "title": "Mozilla Support"
+ },
+ "callsupport": [
+ {
+ "href": "tel:12345678",
+ "title": "Call Support 1"
+ },
+ {
+ "href": "tel:87654321",
+ "title": "Call Support 2"
+ }
+ ]
+ }</pre>
+
+<h3 id="WAP_ユーザエージェントプロファイル_(wapuaprof.json)">WAP ユーザエージェントプロファイル (wapuaprof.json)</h3>
+
+<p>WAP ユーザエージェントプロファイルでは WAP パケット送信時のユーザエージェント情報を上書きできます。デフォルトの WAP ユーザエージェントプロファイルを MCC/MNC を元に歌が期したい場合などに利用できます (より詳しくは <a href="#runtime_customization">runtime customization</a> をご覧ください)。</p>
+
+<h3 id="apps.list">apps.list</h3>
+
+<p>このリストファイルでは実行時にどのアプリを読み込みたいか指定できます (後述する <a href="#Applications">Applications</a> セクションで説明している  <code>variant.json</code> と同様の形式です)。アプリケーションを次のようにして指定します:</p>
+
+<pre class="brush: bash">apps/*
+external-apps/*
+outoftree_apps/*</pre>
+
+<p>フォルダ内のアプリ全部ではなく個別のアプリを次のように指定することもできます:</p>
+
+<pre class="brush: bash">apps/email
+apps/settings</pre>
+
+<div class="note">
+<p><strong>Note</strong>: 独自の外部アプリを自分の Gaia ビルドに含めたい場合、決まった方法でビルドして、 <code>gaia/external-apps/</code> ディレクトリに入れる必要があります。手順については Read <a href="#Building_Prebundled_web_apps">Building Prebundled web apps</a> をご覧ください。</p>
+</div>
+
+<div class="warning">
+<p><strong>重要</strong>: Firefox OS のカスタムビルドに追加で含めるアプリについては Mozilla との Distribution Agreement で指定されている必要があります。</p>
+</div>
+
+<h2 id="その他のカスタマイズ設定">その他のカスタマイズ設定</h2>
+
+<p>他にもカスタマイズできる項目が多くあるので紹介します。</p>
+
+<div class="note">
+<p><strong>Note</strong>: 以下の節で使われているビルドスクリプトの多くは <a href="https://github.com/mozilla-b2g/gaia/blob/master/build/applications-data.js">gaia/build/applications-data.js</a> にあります。これはビルド時にブラウザアプリの <code>init.json</code> ファイルにコピーされます。</p>
+</div>
+
+<h3 id="ブラウザブックマークとデフォルト検索エンジン">ブラウザブックマークとデフォルト検索エンジン</h3>
+
+<ul>
+ <li>ブックマーク: 1.0.1</li>
+ <li>デフォルト検索エンジン: 1.2</li>
+</ul>
+
+<p>デフォルトのブックマークと検索エンジンはビルド時にカスタマイズ可能で、一つのビルドでも国やネットワーク (回線、キャリア) によって異なります。カスタマイズされたデータはブラウザアプリの初回起動時に、デバイスに挿入されている SIM カードの <a href="http://en.wikipedia.org/wiki/Mobile_country_code">MCC と MNC</a> に応じて読み込まれます。</p>
+
+<div class="note">
+<p><strong>Note</strong>: ブックマークは Firefox OS 1.0.1 以降でカスタマイズ可能ですが、 <a href="#Other_single_variant_customizations"><span style="line-height: 1.5;">Other single variant customizations</span></a> 節で記載の通り、2.1 以降ではカスタマイズ方法が変わります。デフォルト検索エンジンは Firefox OS 1.2 以降でカスタマイズ可能です。</p>
+</div>
+
+<p>下の例 (<code>browser.json</code>) ではブラジルの Vivo (724006 という値は 724 がブラジルを、006 が Vivo を MMC/MNC コードで表しています) での設定例です。SIM カードの値にマッチするものが無い場合や SIM カードが挿入されていない場合はデフォルトのフォールバック (000000) が使用されます。</p>
+
+<pre class="brush: js">content = {
+ '000000': {
+ 'bookmarks': [
+ { 'title': 'Mozilla',
+ 'uri': 'https://mozilla.org',
+ 'iconUri':
+ 'data:image/png;base64,AAABAAIAEBAAAAEAIABo[truncated]'
+ },
+ { 'title': 'Firefox OS',
+ 'uri': 'https://mozilla.org/firefoxos',
+ 'iconUri':
+ 'data:image/png;base64,AAABAAIAEBAAAAEA[truncated]'
+ }
+ ],
+ 'searchEngines' : [
+ {
+ 'title': 'Google',
+ 'uri': 'https://www.google.com/search?q={searchTerms}',
+ 'iconUri':
+ 'data:image/png;base64,AAABAAIAEBAAAAEAIABoBAA[truncated]'
+ }
+ ],
+ 'settings' : {
+ 'defaultSearchEngine': 'https://www.google.com/search?q={searchTerms}'
+ }
+ },
+
+ '724006': {
+ "bookmarks": [
+ { "title": "Vivo Busca",
+ "uri": "https://www.google.com.br/m/search",
+ "iconUri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC[truncated]"
+ },
+ { "title": "Serviços e Downloads",
+ "uri": "http://vds.vivo.com.br",
+ "iconUri": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACA[truncated]"
+ },
+ {
+ "title": "Site Vivo",
+ "uri": "http://www.vivo.com.br/conteudosmartphone",
+ "iconUri": "data:image/jpg;base64,/9j/4AAQSkZJRg[truncated]"
+ }
+ ],
+ 'searchEngines' : [
+ {
+ 'title': 'Yahoo',
+ 'uri': 'https://search.yahoo.com/search?q={searchTerms}',
+ 'iconUri':
+ 'data:image/png;base64,AAABAAIAEBAAAAEAIABoBAA[truncated]'
+ }
+ ],
+ 'settings' : {
+ 'defaultSearchEngine': 'https://search.yahoo.com/search?q={searchTerms}'
+ }
+ }
+ };</pre>
+
+<p>この例では、ブラウザ初回起動時にブラジルの Vivo の SIM カードが挿入されている場合、Vivo のブックマークが使用され、デフォルト検索エンジンは Yahoo になります。初回起動時に他の SIM カードが挿入されていたり、SIM カードが無い場合は Mozilla のブックマークが使用され、デフォルト検索エンジンは Google になります。以下の点については注意してください:</p>
+
+<ul>
+ <li><code>defaultSearchEngine </code>プロパティは指定の検索エンジンの <code>uri </code>プロパティと一致する必要があります。この文字列は <code>{searchTerms}</code> プレースホルダのテンプレートとして扱われ、実行時にユーザの検索クエリ文字列で置き換えられます。検索文字列など他の値が URL テンプレート末尾にクエリ文字列として追加されることもあります。</li>
+ <li>上に示す favicon URL は HTTP URL ではなく画像データを Base64 でエンコードした dataURI (長すぎるので省略しています) になります。 ブラウザの初回起動時、ユーザがインターネットに繋がっていなくともアイコンを表示するため、HTTP URL ではなく dataURL にすることが推奨されています。</li>
+ <li>単一のビルドでも複数のカスタマイズを 6 桁の数字のコードで指定されるネットワークや国に応じて適用できます。6 桁コードは MCC コードと MNC コードの組み合わせで、それぞれ桁数が少ない場合は 0 で埋めて 3 桁とします。</li>
+ <li>最初にデフォルト設定を適用するとき、ブラウザはまず MCC と MNC コードに正確に一致するものを探しますが、一致するものが無い場合は MCC+000 のものを探し、それもなければ 000+000 にフォールバックします。</li>
+ <li>Gaia をバージョン間でアップグレードする場合、新しいカスタマイズはそのカスタマイズがアップグレード対象となる新バージョンの Gaia での新機能である場合にのみ適用されます。以前のバージョンで指定済みのカスタマイズは上書きされません。</li>
+</ul>
+
+<div class="note">
+<p><strong>Note</strong>: ブラウザアプリではブックマークを逆順で表示するため、JSON ファイルで最初のブックマークは最後に表示されます。</p>
+</div>
+
+<h3 id="Single_variant_customization_to_override_list_of_providers_and_Rocketbar_search_provider">Single variant customization to override list of providers and Rocketbar search provider</h3>
+
+<ol>
+ <li>The default Rocketbar search provider and list of providers can also be customized per MCC/MNC — data added the first time the relevant SIM card is inserted into the phone — by specifying them in JSON files in your distribution directory:
+ <ul>
+ <li>The list of providers per MCC/MNC is specified in <a href="https://github.com/mozilla-b2g/gaia/blob/master/customization/mobizilla/mobizilla_search.json">mobizilla_search.json</a> in our customization sample:</li>
+ <li>The default Rocketbar search provider is specified in <a href="https://github.com/mozilla-b2g/gaia/blob/master/customization/mobizilla/mobizilla_default_search.json">mobizilla_default_search.json</a> in our customization sample.</li>
+ </ul>
+ </li>
+ <li><a href="https://github.com/mozilla-b2g/gaia/blob/master/customization/variant.json">variant.json</a> then defines which <code>.json</code> file is used to specify the settings for each MCC/MNC pair; see <a href="https://github.com/mozilla-b2g/gaia/blob/master/customization/variant.json#L47-L48">lines 47–48</a> in our sample:
+ <pre class="brush: json">"search": "mobizilla/mobizilla_search.json",
+"default_search": "mobizilla/mobizilla_default_search.json",</pre>
+ </li>
+ <li><code>variant.json</code> is placed in the root of your distribution directory.</li>
+ <li>In order to apply the single variant configuration you have to set the <code>GAIA_DISTRIBUTION_DIR</code> variable to the path of your distribution directory when building Gaia.</li>
+</ol>
+
+<h3 id="Data_and_messaging_settings">Data and messaging settings</h3>
+
+<p>Device data and messaging settings are runtime-customizable.</p>
+
+<p>To apply specific settings, change <code>gaia/shared/resources/apn/apns_conf_local.xml</code>, simply adding or editing carrier blocks as required:</p>
+
+<pre class="brush: xml"> &lt;apn carrier="Test Network"
+ mcc="001"
+ mnc="01"
+ apn="internet"
+ user="user"
+ password="password"
+ proxy="127.0.0.1"
+ port="8080"
+ mmsc="http://127.0.0.1"
+ mmsproxy="127.0.0.1"
+ mmsport="8080"
+ authtype="0"
+ type="default,supl,mms"
+ /&gt;</pre>
+
+<h3 id="Voicemail_and_cell_broadcast_settings">Voicemail and cell broadcast settings</h3>
+
+<p>To apply specific voicemail and cell broadcast settings, change <code>gaia/shared/resources/apn/operator_variant.xml</code>. Add or edit a carrier block, changing attributes as needed:</p>
+
+<pre class="brush: xml"> &lt;operator carrier="Test Network with Operator Variant Settings"
+ mcc="001"
+ mnc="01"
+ cellBroadcastSearchList="0,1,2,3"
+ voicemail="999999"
+ /&gt;</pre>
+
+<h3 id="WAP_user_agent_profile">WAP user agent profile</h3>
+
+<p>The WAP user agent profile is another app that supports runtime customization. It overrides the user agent information when sending WAP packets, based on MCC/MNC. The profile overriding has <code>url</code> and <code>tagname</code> parts, but we only support <code>url</code> in our current implementation.</p>
+
+<p>The WAP user agent profile uses the same coding style for its key as the browser app, although "000000" is used as the default profile. An example follows:</p>
+
+<pre class="brush: js"> {
+ "000000": {
+ "url": "http://example.url/default.xml"
+ },
+ "123001": {
+ "url": "http://example.url/custom123001.xml"
+ }
+ }</pre>
+
+<p>In this example, the <code>url</code> of the default profile is <code>http://example.url/default.xml</code>; for MCC = 123 and MNC = 001, the <code>url</code> <code>is http://example.url/custom123001.xml</code>. If there was another ic card with MCC = 123 and MNC = 100, its <code>url</code> would be <code>http://example.url/default.xml</code>.</p>
+
+<p>If the 000000 is removed from this example, like so:</p>
+
+<pre class="brush: js"> {
+ "123001": {
+ "url": "http://example.url/custom123001.xml"
+ }
+ }</pre>
+
+<p>the UA profile <code>url</code> of the ic card with MCC = 123 and MNC = 001 is now overridden as <code>http://example.url/custom123001.xml</code>. No others will be overridden.</p>
+
+<p>If we have the "000000" as before, but we also have a "123001" case with no <code>url</code> inside it, like so:</p>
+
+<pre class="brush: js"> {
+ "000000": {
+ "url": "http://example.url/default.xml"
+ },
+ "123001": {}
+ }</pre>
+
+<p>All UA profile urls will now be overridden as <code>http://example.url/default.xml</code></p>
+
+<h3 id="Applications">Applications</h3>
+
+<p>Applications installed in Firefox OS can be customized at runtime, in a number of ways (see also <a href="/en-US/Firefox_OS/Platform/Gaia/Hacking#Customizing_the_build-time_apps">Customizing the build-time apps</a>). Perhaps the most powerful way is to edit the <code>variant.json</code> configuration file, which allows apps to be selectively installed and placed in the desired position in the homescreen, depending on the MCC/MNC. The customized applications will be added to the standard applications list.</p>
+
+<p>The relevant part of the <code>variant.json</code> file typically looks like so.</p>
+
+<pre class="brush: js"> {
+ "apps": {
+ "puzzle":
+ {
+ "manifestURL": "https://owd.tid.es/store/packages/fe8e4a866c518a42db9d2041568684c1.webapp"
+ },
+ "store":
+ {
+ "manifestURL": "https://owd.tid.es/store/manifest.webapp",
+ "installOrigin": "https://www.openwebdevice.com"
+ }
+ },
+ "operators": [
+ {
+ "id": "movistar-co",
+ "mcc-mnc": [
+ "214-01",
+ "214-02"
+ ],
+ "apps": [
+ {
+ "id": "store",
+ "screen": 0,
+ "location": 2
+ }
+ ]
+ },
+ {
+ "id": "movistar-mx",
+ "mcc-mnc": [
+ "215-23"
+ ],
+ "apps": [
+ {
+ "id": "store",
+ "screen": 0,
+ "location": 2
+ },
+ {
+ "id": "puzzle"
+ }
+ ]
+ }
+ ]
+ }</pre>
+
+<ul>
+ <li>The first object of the JSON is called <code>apps</code>, and defines the custom applications to be copied at buildtime. The example uses two applications, one hosted (store) and one packaged (puzzle). Notice that while packaged apps only require the <code>manifestURL</code>, hosted ones also need the <code>installOrigin</code> in order to download them.</li>
+ <li>The second object, called <code>operators</code>, is responsible of the configuration based on MCC/MNC. The object contains an array of objects for each MCC/MNC pair. These objects define the <code>id</code> of the operator, a MCC/MNC list for the configuration and a list of <code>apps</code> objects defining which applications are going to be installed at runtime in each case.</li>
+ <li>Each <code>apps</code> object requires an <code>id</code> property and has two optional arguments to set the position in the homescreen:
+ <ul>
+ <li>The <code>screen</code> property sets the screen number.</li>
+ <li>The <code>location</code> property sets the position on that screen.</li>
+ </ul>
+ </li>
+</ul>
+
+<h3 id="Other_single_variant_customizations">Other single variant customizations</h3>
+
+<p>The same file <code>variant.json</code> file — used to configure applications at runtime depending on the MCC/MNC — also allows you to configure specific resources by adding some attributes under each operator object. Thus, an operator can have the following settings:</p>
+
+<pre class="brush: js"> {
+ "apps": {
+ ...
+ },
+ "operators": [
+ {
+ "id": "movistar-co",
+ "mcc-mnc": [
+ "214-01",
+ "214-02"
+ ],
+ "apps": [
+ {
+ "id": "store",
+ "screen": 0,
+ "location": 2
+ }
+ ],
+ "support_contacts": "resources/support_contacts_movistar.json",
+ "default_contacts": "resources/contacts_movistar.json",
+ "ringtone": {
+ "path": "resources/Movistar_Mid_ABR_128kbps.ogg",
+ "name": "Tono Movistar"
+ },
+ "wallpaper": "resources/customize.jpg",
+ "keyboard": "resources/keyboard_movistar.json",
+ "network_type": "resources/network_type_movistar.json",
+ "known_networks": "resources/known_networks_movistar.json",
+ "data_ftu": true,
+ "sms": "resources/sms_movistar.json",
+ "topsites": "resources/topsites_movistar.json",
+ "bookmarks": "resources/bookmarks_movistar.json",
+ "data_roaming": true,
+ "power": {
+ "poweron": {
+ "video": "app://operatorresources/resources/power/latam_power_on.mp4"
+ },
+ "poweroff": {
+ "video": "resources/latam_power_off.mp4"
+ }
+ },
+ "nfc": true
+ }
+ ...
+ ]
+ }
+</pre>
+
+<p><span style="line-height: 1.5;">And here are the details of the specific resources for each operator.</span></p>
+
+<h4 id="Support_contacts">Support contacts</h4>
+
+<p><code>support_contacts</code> specifies a path to a file containing contacts to be shown on the help screen (<code>Settings &gt; Help</code>), offering the same functionality as <a href="#support.json">support.json</a>. The file format is:</p>
+
+<pre class="brush: js"> {
+ "onlinesupport": {
+ "title": "Mozilla Support",
+ "href": "http://test.mozilla.org/support"
+ },
+ "callsupport1": {
+ "title": "Call Support (Primary)",
+ "href": "tel:14155550001"
+ },
+ "callsupport2": {
+ "title": "Call Support (Secondary)",
+ "href": "tel:14155550002"
+ }
+ }</pre>
+
+<h4 id="Default_contacts">Default contacts</h4>
+
+<p><code>default_contacts</code> contains the path to a file containing contacts that will be preloaded to the Contacts application, depending on the MCC/MNC pair present at run time. The section names are the MCC/MNC pair, and section contents should be an array of contacts following the same format as <a href="#contacts.json">contacts.json</a>. For example:</p>
+
+<pre class="brush: js"> {
+ "123123":
+ [
+ {name: ["John Doe"]},
+ // etc
+ ],
+ }
+</pre>
+
+<h4 id="Ringtone">Ringtone</h4>
+
+<p><code>ringtone</code> sets the default ringtone and contains two attributes, both mandatory:</p>
+
+<ul>
+ <li><code>path</code>: The path to the ringtone audio file.</li>
+ <li><code>name</code>: The name to display when the ringtone is shown in settings.</li>
+</ul>
+
+<h4 id="Wallpaper">Wallpaper</h4>
+
+<p><code>wallpaper</code> contains the path to the image file (PNG) that will be set as the default wallpaper.</p>
+
+<h4 id="Keyboard_settings">Keyboard settings</h4>
+
+<p><code>keyboard</code> contains the path to a file containing keyboard settings configuration information. The file format is as follows:</p>
+
+<pre class="brush: js"> {
+ "keyboard.vibration": true,
+ "keyboard.autocorrect": false,
+ "keyboard.clicksound": true,
+ "keyboard.wordsuggestion": false
+ }</pre>
+
+<h4 id="Network_Display_Indicator">Network Display Indicator</h4>
+
+<p><code>network_type</code> contains the path to a file that will hold an associated text that will be shown to the user when that network is being used by the device — for each of the network types supported by the device. The text will be shown on the Settings app, status bar, and quick settings.</p>
+
+<p>The status bar and all the occurrences on the Settings app will use the text value indicated in the file. For quick settings the file must contain a <code>data_sprite</code> key that will point to a css sprite holding the icons for all the supported network types.</p>
+
+<p>The <code>data_sprite</code> key must always be a URL pointing to a preinstalled app on the device. A file format example follows:</p>
+
+<pre class="brush: js"> {
+ "lte": "4G",
+ "ehrpd": "4G",
+ "hspa+": "H+",
+ "hsdpa": "H",
+ "hsupa": "H",
+ "hspa": "H",
+ "evdo0": "E",
+ "evdoa": "E",
+ "evdob": "E",
+ "1xrtt": "1x",
+ "umts": "3G",
+ "edge": "E",
+ "is95a": "2G",
+ "is95b": "2G",
+ "gprs": "2G",
+ "wcdma/gsm": "2G/3G GSM auto",
+ "gsm": "2G GSM",
+ "wcdma": "3G GSM",
+ "wcdma/gsm-auto": "2G GSM Preferred",
+ "cdma/evdo": "2G/3G CDMA auto",
+ "cdma": "2G CDMA",
+ "evdo": "3G CDMA",
+ "wcdma/gsm/cdma/evdo": "2G-3G GSM/CDMA auto",
+ "data_sprite": "app://operatorresources/resources/quick_settings/images/data-sprite-latam.png"
+ }</pre>
+
+<h4 id="Pre-populate_WiFi_SSIDs">Pre-populate WiFi SSIDs</h4>
+
+<p><code>known_networks</code> contains the path to a file containing descriptions of known wifi networks. Here is a file format example:</p>
+
+<pre class="brush: js"> {
+ "OPEN": {
+ "ssid": "OPEN"
+ },
+ "WEP-WITHOUTKEY": {
+ "ssid": "wifi-WEP-WITHOUTKEY",
+ "keyType": "WEP"
+ },
+ "WEP_KEY": {
+ "ssid": "WEP-KEYOK",
+ "keyType": "WEP",
+ "capabilities": "",
+ "password": "constrasenya1"
+ },
+ "WEP_KEYOK_WPS": {
+ "ssid": "WEP-KEYOK-WPS",
+ "keyType": "WEP",
+ "capabilities":"WPS",
+ "password": "constrasenya1"
+ },
+ "wpa": {
+ "ssid": "macaFirefoxHotspot",
+ "keyType": "WPA-PSK"
+ },
+ "WPA-PSK_KEY": {
+ "ssid": "WPA-PSK-KEYOK",
+ "keyType": "WPA-PSK",
+ "capabilities":"",
+ "password": "constrasenya1"
+ },
+ "WPA-PSK_KEY_WPS": {
+ "ssid": "WPA-PSK-KEYOK-WPS",
+ "keyType": "WPA-PSK",
+ "capabilities":"WPS",
+ "password": "constrasenya1"
+ },
+ "WPA-EAP-PSK_WITHOUTEAP": {
+ "ssid": "WPA-EAP-WITHOUTKEY",
+ "keyType": "WPA-EAP"
+ },
+ "WPA-EAP_SIM": {
+ "ssid": "WPA-EAP-SIM",
+ "keyType": "WPA-EAP",
+ "eap": "SIM",
+ "password": "constrasenya1"
+ },
+ "WPA-EAP-KEYOK-WPS": {
+ "ssid": "WPA-EAP-KEYOK-WPS",
+ "keyType": "WPA-EAP",
+ "eap": "PEAP",
+ "capabilities": "WPS",
+ "password": "constrasenya1",
+ "identity": "HI\\usr"
+ },
+ "WPA-EAP-KEYOK-CAPOK-PHASE2-OK": {
+ "ssid": "WPA-EAP-KEYOK-CAPOK-PHASE2",
+ "keyType": "WPA-EAP",
+ "eap": "PEAP",
+ "capabilities":"WPS",
+ "phase2": "PAP",
+ "password": "constrasenya1",
+ "identity": "HI\\usr"
+ }
+ }</pre>
+
+<h4 id="Data_enableddisabled_by_default_during_FTU">Data enabled/disabled by default during FTU</h4>
+
+<p>The <code>data_ftu</code> attribute defines if the data setting is enabled or disabled by default during FTU. This is a boolean value (true or false).</p>
+
+<h4 id="Maximum_number_of_SMS_to_convert_to_MMS">Maximum number of SMS to convert to MMS</h4>
+
+<p><code>sms</code> contains the path to a file holding some customization details for SMS. Currently the only attribute that can be set is the maximum number of SMS messages that can be converted to MMS. A file format example follows:</p>
+
+<pre class="brush: js"> {
+ "smsMaxConcat": 9
+ }</pre>
+
+<h4 id="Pre-populate_browser_top_sites">Pre-populate browser top sites</h4>
+
+<p> </p>
+
+<p><code>topsites</code> contains the path to a file containing an array of topsite objects. A topsite object has three parameters: the <code>title</code> (string), the <code>uri</code> (url) and the <code>iconPath</code>. Here is a file format example:</p>
+
+<pre class="brush: js">{
+ "topsites": [
+ {
+ "title": "Movistar",
+ "uri": "http://www.movistar.es",
+ "iconPath": "resources/movistar.ico"
+ }
+ ]
+}</pre>
+
+<h4 id="Bookmarks">Bookmarks</h4>
+
+<div class="note">
+<p><strong>Note</strong>: For information about customizing bookmarks on earlier versions of Firefox OS see the <a href="#Browser_bookmarks_and_default_search_engines">Browser bookmarks and default search engines</a> section.</p>
+</div>
+
+<p><code>bookmarks</code> contains the path to a file containing an array of bookmark objects. The bookmark object has three parameters: the <code>title</code> (string), the <code>uri</code> (url) and the <code>iconPath</code>. File format example:</p>
+
+<pre class="brush: js">{
+ "bookmarks": [
+ {
+ "title": "Google",
+ "uri": "http://www.google.es",
+ "iconPath": "resources/google.ico"
+ }
+ ]
+}</pre>
+
+<h4 id="Data_roaming_onoff_by_default">Data roaming on/off by default</h4>
+
+<p>The <code>data_roaming</code> attribute defines if data roaming is enabled by default; its value is a boolean (<code>true</code> or <code>false</code>).</p>
+
+<h4 id="Power_onoff_operator_animation">Power on/off operator animation</h4>
+
+<p>Custom power on/off animations are configured using an object as a value for the <code>power</code> attribute. The object contains two attributes, one for the boot animation when the device is switched on (<code>poweron</code>) and the other one for the animation when the device shuts down. Both attributes are configured with a key value identifying the resource to be loaded — the resource key should be <code>video</code> and the value is a path to the resource. Note that the path can be a local path to the resource in the build machine filesystem (for example <code>resource/afile.png</code>) or a URI to file inside a Gaia application that will be installed in the device (for example <code>app://name.domain/path/to/video.mp4</code>).</p>
+
+<p>Here is an example of the full structure of a power object:</p>
+
+<pre class="brush: js">"power": {
+ "poweron": {
+ "video": "app://operatorresources/resources/power/latam_power_on.mp4"
+ },
+ "poweroff": {
+ "video": "resources/Power_off_test.mp4"
+ }
+}</pre>
+
+<h4 id="NFC_enableddisabled_by_default">NFC enabled/disabled by default</h4>
+
+<p>The <code>nfc</code> attribute defines if Near Field Communication is enabled by default; its value is a boolean (<code>true</code> or <code>false</code>).</p>
+
+<h2 id="Building_Prebundled_web_apps">Building Prebundled web apps</h2>
+
+<p>Earlier on, we discussed the <a href="#apps.list">apps.list</a> file, and how this can be used to add built-in apps to your build. These apps need to be built in a certain way, then added to the <code>gaia/external-apps</code> directory.<br>
+ <br>
+ To build Prebundled web apps, you can utilize our <a href="https://github.com/mozilla-b2g/preload-app-toolkit">preload-app-toolkit</a> script, which builds a prebundled webapp from a given <code>.webapp</code> URL. It can accept hosted web app manifests, or packaged app mini-manifests.</p>
+
+<h3 id="To_bundle_a_single_web_app">To bundle a single web app</h3>
+
+<p>Find a <code>.webapp</code> URL that want to bundle, and run the command to bundle it, as follows:</p>
+
+<pre>python preload.py http://&lt;webapp url&gt;</pre>
+
+<p>This will generate a directory with the same name as the target webapp's name, e.g. <code>accuweather</code>.</p>
+
+<h3 id="Batch_process_to_bundle_multiple_web_apps">Batch process to bundle multiple web apps</h3>
+
+<p>You can create a file called <code>list</code>, containing all the app names and <code>.webapp</code> locations you want to bundle all together in a batch. The format is:</p>
+
+<pre>myFirstApp,https://www.firstapp.com/manifest.webapp
+mySecondApp,https://www.secondapp.com/manifest.webapp
+etc.</pre>
+
+<p>You need to save this <code>list</code> file in the same directory as our <code>preload.py</code> script, then run the following command:</p>
+
+<pre>$ python preload.py</pre>
+
+<p>The <code>preload.py</code> script will parse the list file and do the batch conversion for you.</p>
+
+<h3 id="Prebundled_web_app_metadata.json">Prebundled web app metadata.json</h3>
+
+<p>Every Prebundled webapp should have a <code>metadata.json</code> file contained within its root directory. The <a href="https://marketplace.firefox.com/">Firefox Marketplace</a> counts on this <code>metadata.json</code> file for auto-updating. This file is auto-generated by the <code>preload.py</code> script.<br>
+ <br>
+ For a hosted webapp, the properties of <code>metadata.json</code> are:</p>
+
+<ul>
+ <li><code>origin</code>: The domain name of the webapp url.</li>
+ <li><code>manifestURL</code>: The location of the web app manifest for a hosted app.</li>
+ <li><code>installOrigin(hosted)</code>: The location the app was installed from in the customization. For customizations, this should always be <code>https://marketplace.firefox.com</code>.</li>
+ <li><code>etag</code>: This is the webapp manifest <code>etag</code> used for checking for updates. The <code>etag</code> value is retrieved by the <code>parse</code> <code>html</code> header when downloading the <code>.webapp</code> file from the server.</li>
+ <li><code>external</code>: This is a required field in Firefox OS 2.1+. The value is <code>true</code> for prebundled apps, and <code>false</code> for non-external apps. This is used for checking if fine tuning the file order in the application.zip is necessary (fine tuning will occur if the value is set to <code>true</code>).</li>
+</ul>
+
+<p>For a packaged webapp, the properties of <code>metadata.json</code> are:</p>
+
+<ul>
+ <li><code>manifestURL</code>: This should be the location of the mini-manifest. For customizations right now, the <code>manifestURL</code> will always be a mini-manifest from <code>marketplace.firefox.com</code>.</li>
+ <li><code>installOrigin(hosted)</code>: The location the app was installed from in the customization. For customizations, this should always be <code>https://marketplace.firefox.com</code>.</li>
+ <li><code>etag</code>: This is the webapp manifest <code>etag</code> used for checking for updates. The <code>etag</code> value is retrieved by the <code>parse html</code> header when downloading the <code>.webapp</code> file from the server.</li>
+ <li><code>external</code>: This is a required field in Firefox OS 2.1+. The value is <code>true</code> for prebundled apps, and false for For non-external apps it should be false. Use for checking if fine tunining file order in the application.zip is needed ( fine tune if the value is true ).</li>
+ <li><code>packageEtag</code>: This is the app package's <code>etag,</code> retrieved by the <code>parse html</code> header when downloading the package from the server once an update has been detected.</li>
+</ul>
+
+<h3 id="Packaged_web_app_auto-updates_update.webapp_format">Packaged web app auto-updates: update.webapp format</h3>
+
+<p>Packaged webapps have an <code>update.webapp</code> file, which is used for auto-updates. The format is similar to <a href="https://developer.mozilla.org/en-US/Apps/Build/Manifest"><code>manifest.webapp</code></a>, but you have to include additional attributes:</p>
+
+<ul>
+ <li><code>package_path</code> is the path to the packaged (zip) file.</li>
+ <li><code>size</code> is the package size, in bytes.</li>
+</ul>
+
+<pre class="brush: js"> {
+ "name": "Game Pack",
+ "icons": {
+ "60": "/icon-60.png",
+ "128": "/icon-128.png"
+ },
+ "version": "1.1.2",
+ "package_path": "/application.zip",
+ "developer": {
+ "url": "http://abc.com",
+ "name": "abc Inc."
+ },
+ "release_notes": "2nd release",
+ "locales": {
+ "es": {
+ "launch_path": "/index-es.html",
+ "description": "show me customization."
+ }
+ },
+ "size": 5460141
+ }</pre>
+
+<h3 id="Pre-bundled_web_app_AppCache_format">Pre-bundled web app AppCache format</h3>
+
+<p>If your web app's <a href="https://developer.mozilla.org/en-US/Apps/Build/Manifest"><code>manifest.webapp</code></a> has an <a href="https://developer.mozilla.org/en-US/Apps/Build/Manifest#appcache_path"><code>appcache_path</code></a> included in it, the <code>preload.py</code> script will fetch the AppCache file pointed to, and pre-fetch all the resources described in the AppCache file. The Pre-bundled webapp AppCache is a bit different, as Gecko recognizes a different format, but this is auto-generated by the <code>preload.py</code> script.</p>
+
+<p>The translated file structure is:</p>
+
+<pre> &lt;app name&gt;
+ ├── manifest.webapp
+ ├── metadata.json
+ └── cache
+ ├── manifest.appcache
+ └── &lt;resources&gt;
+</pre>
+
+<div class="note">
+<p><strong>Note</strong>: If a different name is given to the AppCache file in the <code>appcache_path</code>, it needs to be renamed to <code>manifest.appcache</code> and saved in the <code>cache</code> folder.</p>
+</div>
+
+<h2 id="FAQ">FAQ</h2>
+
+<p>The following is a list of common questions and answers about market customizations.</p>
+
+<h3 id="What_can_be_customized">What can be customized?</h3>
+
+<ul>
+ <li>Brand
+ <ul>
+ <li>Start up &amp; Power off animations</li>
+ <li>Network name on Lock screen and in Utility Tray</li>
+ <li>First Run Experience logos</li>
+ </ul>
+ </li>
+ <li>Localization
+ <ul>
+ <li>Installed locales (shared/locales)</li>
+ <li>Default locale (<code>GAIA_DEFAULT_LOCALE</code>)</li>
+ <li>Default keyboard layouts (Multiple keyboards can be enabled, not tied to locale)</li>
+ </ul>
+ </li>
+ <li>Apps
+ <ul>
+ <li>Preinstalled third party apps</li>
+ <li>Home grid app placement</li>
+ <li>Licensing</li>
+ <li>In-app payment provider configuration</li>
+ </ul>
+ </li>
+ <li>Settings
+ <ul>
+ <li>Default screen brightness</li>
+ <li>Device Information — Model (name or #)</li>
+ <li>Device Information — Legal Information link or content</li>
+ <li>Help — Online support link</li>
+ <li>Help — Call support phone number</li>
+ <li>Help — User guide link</li>
+ <li>APN</li>
+ <li>MMS message size limitation</li>
+ <li>MMS message retrieval mode</li>
+ </ul>
+ </li>
+ <li>Media preloads
+ <ul>
+ <li>Wallpapers</li>
+ <li>Music</li>
+ <li>Videos</li>
+ <li>Gallery</li>
+ </ul>
+ </li>
+ <li>Sounds
+ <ul>
+ <li>Start up &amp; Power off</li>
+ <li>Ring tone</li>
+ <li>Message tone</li>
+ </ul>
+ </li>
+ <li>Everything.me
+ <ul>
+ <li>Option to enable or disable the feature</li>
+ <li>Set of default categories and apps</li>
+ </ul>
+ </li>
+ <li>Browser
+ <ul>
+ <li>Default bookmarks</li>
+ <li>Default search engine</li>
+ </ul>
+ </li>
+</ul>
+
+<h3 id="How_and_where_do_you_define_a_customized_app_grid_layout">How and where do you define a customized app grid layout?</h3>
+
+<p>This is currently defined in <code>gaia/apps/homescreen/js/init.json</code>. <code>customize.py</code> takes care of building this in the correct format.</p>
+
+<h3 id="Is_it_possible_to_define_whether_an_app_is_removable_in_the_homescreen_configuration">Is it possible to define whether an app is removable in the homescreen configuration?</h3>
+
+<p>No. All apps in <code>/system/b2g</code> are non-removable; those in <code>/data</code> are removable. Since all preloaded apps come from <code>/system</code>, we need to move them to <code>/data</code> if we want them to be removable.</p>
+
+<h3 id="How_do_you_add_a_preloaded_packaged_or_hosted_app_to_the_build">How do you add a preloaded packaged or hosted app to the build?</h3>
+
+<p>These should both be added to <code>gaia/external-apps</code>. <code>customize.py</code> will allow entry of the URL to a packaged app or a hosted app manifest, and will download it into the correct place and create <code>metadata.json</code>. This will serve as the "build step".</p>
+
+<p>We have different metadata for packaged and hosted apps to distinguish them.</p>
+
+<p>See <a href="#Building_Prebundled_web_apps">Building Prebundled web apps</a> for more details.</p>
+
+<h3 id="How_do_you_prepare_a_preloaded_hosted_app_for_initial_offline_support">How do you prepare a preloaded hosted app for initial offline support?</h3>
+
+<p>You need to provide all the files to cache in the directory <code>external-apps/MY_APP/cache</code>, along with the AppCache manifest.</p>
+
+<p>See <a href="#Building_Prebundled_web_apps">Building Prebundled web apps</a> for more details.</p>
+
+<h3 id="What_Marketplace_Customizations_Are_Possible">What Marketplace Customizations Are Possible?</h3>
+
+<ul>
+ <li>On-device
+ <ul>
+ <li>The customization on the device regarding payments is limited to populating a whitelist of payment providers. There are a couple prefs for this, documented on <a href="https://wiki.mozilla.org/WebAPI/WebPayment#Testing">Web Payments</a>.</li>
+ <li>For example, Mozilla B2G phones will ship with <a href="https://github.com/mozilla/webpay#readme">our implementation of the payment provider</a> in a whitelist so that it is accessible to the Marketplace and third party apps for in-app purchases via <a href="/ja/docs/Web/API/Navigator/mozPay" title="mozPay 関数は決済の実行に使用され、アプリ内課金を実現します。"><code>navigator.mozPay</code></a>. Some more info on providers is available at <a href="https://wiki.mozilla.org/WebAPI/WebPaymentProvider">Web Payment Providers</a>.</li>
+ <li>If any carrier wants to implement their own payment processor and whitelist it, they are free to do so. However, the <a href="https://marketplace.firefox.com/">Firefox Marketplace</a> is only configured to enable purchases through Mozilla's payment provider at this time.</li>
+ </ul>
+ </li>
+ <li>On-server
+ <ul>
+ <li>The merchant app sets a price point for the product and Mozilla's backend payment processor chooses the currency based on the user's network. None of currency, regional taxation, or l10n can be controlled by device configs (yet).</li>
+ <li>Category in the Firefox Marketplace specific to the carrier with your operator logo/name in the region.</li>
+ <li>Featured apps / promotions in the Firefox Marketplace, specified by the Carrier.</li>
+ </ul>
+ </li>
+</ul>
+
+<p>There are many other considerations when adding a region or carrier.  See <a href="https://wiki.mozilla.org/Marketplace/AddingRegionsAndCarriers">Adding Regions and Carriers</a> for more details.</p>
+
+<h3 id="How_do_I_package_and_store_per-market_customization_changes">How do I package and store per-market customization changes?</h3>
+
+<p>Store only the files changed; currently these are in various locations in the filesystem. In B2G v2, we are considering consolidating these into a single location, similar to the branding directories we have for Gecko.</p>
+
+<h3 id="How_do_you_build_the_product_with_a_specific_market's_configuration">How do you build the product with a specific market's configuration?</h3>
+
+<p>Copy your changed files into a checkout of Gaia, and build using that modified Gaia. <code>customize.py</code> will provide a UI for setting relevant switches, create the appropriate files in the appropriate places in the gaia checkout, and then build the profile from that Gaia.</p>
+
+<h3 id="How_to_customize_power_on_off_animation">How to customize power on / off animation?</h3>
+
+<ul>
+ <li>This animation uses <a href="http://www.droidforums.net/forum/droid-hacks/33932-bootanimation-zip-file-explained.html">Android's <code>bootanimation.zip</code>/<code>desc.txt</code> format</a>.</li>
+ <li>This lets us create multi-part animation sequences where we can specify things like size, framerate, and number of times an animation sequence loops for each part.</li>
+ <li>There is also an animated PNG transition animation that bridges the gap between this <code>bootanimation.zip</code> sequence and the transition to the lockscreen, which is performed by Gaia.</li>
+ <li>The size on disk of the default animation is 8.2MB (looping) + 3.6MB (frame 18 transition) = 11.8MB total.</li>
+ <li>Currently, the shutdown animation is a custom css animation based on a design specified in <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=809342" title="FIXED: [System] Need a shutdown animation implementation">バグ 809342</a>.</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/developing_gaia/running_the_gaia_codebase/index.html b/files/ja/archive/b2g_os/developing_gaia/running_the_gaia_codebase/index.html
new file mode 100644
index 0000000000..2303dd84b3
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/running_the_gaia_codebase/index.html
@@ -0,0 +1,131 @@
+---
+title: Gaia コードベースを実行する
+slug: Archive/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase
+tags:
+ - Contributing
+ - Firefox
+ - Gaia
+ - OS
+ - running firefox os localy
+ - コントリビュート
+translation_of: Archive/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p>この記事ではGaiaコードベースがローカルにてどう実行されるか、セットアップでどんなツールが使えるのかを一通り詳しく見て行きます。</p>
+
+<p>まず初めに、Gaiaにコントリビュート(貢献)するには、GeckoやB2Gをビルドする<strong>必要はない</strong>ことを理解すべきです。ただGaiaのソースコードをダウンロードし、同じ方法で実行、編集できる事が必要です。</p>
+
+<p>Gaiaを実行するには、いくつかの方法があります:</p>
+
+<ul>
+ <li>更新されたGaiaビルドを電話機に焼く</li>
+ <li>WebIDEの内部でGaiaを実行する</li>
+ <li>Firefox Muletツール内でデスクトップのGaiaを起動する</li>
+</ul>
+
+<p>異なる方法で実行する上での正確な情報は<a href="/ja/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia">Gaiaを実行する色々な方法</a>のページで見つかり、加えて要求されるより詳細な情報へのリンクがあります。一般に、これらは最も複雑なもの(しかし最も現実的な体験がある)から最も易しいもの(しかし最も現実的でない)の順番に並んでいます。</p>
+
+<p>この記事ではデスクトップ版 Firefox Mulet か WebIDE 内で実行するのに集中します。— Gaiaコードベースへの大半の変更に対して、これが更新をテストする最速のメカニズムになります、しかし明らかにいくつかの機能 (デバイスAPI群や電話機のハードウェアとのやりとりのようなもの) で実機端末が必要となるものもあります。</p>
+
+<p><strong>記</strong>: これ以上のGaiaヘルプを得るのに最良な場所は、IRCチャンネルの #fxos (<a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>に詳細情報あり) と <a href="https://lists.mozilla.org/listinfo/dev-fxos">dev-fxos のメーリングリスト</a>です。</p>
+
+<h2 id="独自ビルドのGaiaを実行する">独自ビルドのGaiaを実行する</h2>
+
+<p><strong>記</strong>: 簡単で、一発のビルドプロセスのために、<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Developing_Gaia/Gaia_tools_reference#Foxbox">Foxbox</a> ツールを試してください。Windows ユーザは、不通のGaiaビルド手順が標準Windows環境で動作しないために、特にこれの恩恵を受けます。</p>
+
+<ol>
+ <li>最初に、 <a href="https://github.com/mozilla-b2g/gaia">GithubのGaiaリポジトリ</a>をフォークします。</li>
+ <li>次に、ローカルにクローンします。:
+ <pre>git clone https://github.com/your-username/gaia.git</pre>
+ </li>
+ <li>upstreamをこのように追加します:
+ <pre>cd gaia
+git remote add upstream https://github.com/mozilla-b2g/gaia</pre>
+ </li>
+ <li>今はGaiaのデバッグプロファイルを作る必要があります。リポジトリフォルダで<code> make を実行することで、</code><code>profileディレクトリ内に</code>任意デバッグ用のプロファイルが作成されます。</li>
+ <li>デバッグプロファイルが生成された時、<em>"Profile Ready: please run [b2g|firefox] -profile /Users/chris/git/gaia/profile" という行を伴ったメッセージが出てきます。これは無視して、その代わりに</em> <a href="https://developer.mozilla.org/ja/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia#Using_Gaia_in_Firefox_Mulet">Mulet</a> や <a href="https://developer.mozilla.org/ja/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia#Using_Gaia_inside_WebIDE_with_a_Firefox_OS_Simulator">WebIDE</a> を、リンク先の手順を使って実行します。</li>
+</ol>
+
+<h2 id="トラブルシューティングと既知の問題">トラブルシューティングと既知の問題</h2>
+
+<h3 id="Error_Python_実行ファイルpython3_は_v3.x_で、これは_gyp_によりサポートされていない。">Error: Python 実行ファイル"python3" は v3.x で、これは gyp によりサポートされていない。</h3>
+
+<p>いくつかのLinux ディストリビューション (例: Archlinux)で、デフォルトの<code>python</code><code>はpython3です。これは</code> <code>npm</code> がコマンドを実行する (例. テスト実行時) 時に失敗の元になります。きっぱりと修正するために、次のコマンドを実行できます:</p>
+
+<pre><code>npm config set python python2</code></pre>
+
+<p> </p>
+
+<p>この <a href="http://stackoverflow.com/questions/20454199/how-to-use-a-different-version-of-python-duing-npm-install">Stack Overflow ページ</a> で他の解決法を探せます。</p>
+
+<p>次に <code>node_modules</code> ディレクトリを削除して、失敗したコマンドを再実行します。</p>
+
+<h3 id="NodeJSをインストールして下さい_--_(linuxでは_aptitude_を、osxでは_homebrew_を使う)">NodeJSをインストールして下さい -- (linuxでは aptitude を、osxでは homebrew を使う)</h3>
+
+<p>それで、インストールしたつもりでもこのエラーが出ます。Debian や、Ubuntuのような他のDebianベースのディストリビューションで起こりえます。こうしたディストリビューションでは、NodeJS は <code>nodejs</code> パッケージに含まれていて、全て正しくセットアップするには <code>nodejs-legacy</code> パッケージをインストールできます:</p>
+
+<pre><code>sudo aptitude install nodejs-legacy</code></pre>
+
+<p> </p>
+
+<p>このパッケージのインストールに問題がある場合、 あなたは<a href="http://www.ubuntuupdates.org/ppa/chris_lea_nodejs">Chris Lea's PPA for Node</a>を使っているかもしれません; 先に進む前にこれを削除して下さい。</p>
+
+<p>異なる Gaia のブランチでは異なる node のバージョンが必要になります。; 例えば以前 node 0.10 と v2.5 のブランチで構築し、master ブランチに切り替えたい場合、以下のように実施します:</p>
+
+<pre><code>npm use 4.2 &amp;&amp; rm -r node_modules &amp;&amp; npm install --production</code></pre>
+
+<p><img></p>
diff --git a/files/ja/archive/b2g_os/developing_gaia/submitting_a_gaia_patch/index.html b/files/ja/archive/b2g_os/developing_gaia/submitting_a_gaia_patch/index.html
new file mode 100644
index 0000000000..f8a98981c5
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/submitting_a_gaia_patch/index.html
@@ -0,0 +1,119 @@
+---
+title: Gaia のパッチを提出する
+slug: Archive/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch
+tags:
+ - Bugzilla
+ - Firefox OS
+ - Gaia
+ - コントリビュート
+ - パッチ
+translation_of: Archive/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch
+---
+<div class="summary">
+<p>これまでに、コード変更を完了し、それがGaiaを壊していないか検証しているはずです。次のステップは中心リポジトリにパッチを提出する事で、この記事ではその説明を意図しています。</p>
+</div>
+
+<p>Gaia にパッチを送るのは、慣れるまでややトリッキーでしょう、なぜなら Bugzilla <strong>と</strong> Github と、正しいシーケンスとするために特殊なフラグを使用することが含まれているためです。</p>
+
+<h2 id="Autolanderを使った容易なパッチ提出">Autolanderを使った容易なパッチ提出</h2>
+
+<p><a href="https://github.com/mozilla/autolander">Autolander</a> はGaia (と、一緒に使用されるその他のプロジェクト) にパッチを送るのに要する、多くのステップを自動的に扱うツールであり、その過程の時間短縮とエラー削減になります。Autolander は、プルリクエストとバグを自動で添付したりして、Bugzilla から Github へのワークフローを統合します。Autolander を使用するには:</p>
+
+<ol>
+ <li>最初に、bugzilla にバグを登録して、まだ誰もコード変更していない場合に、何を行なっているのかを示します。これは <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">Firefox OS product </a>の下に投稿すべきで、かつあなたのコードが何をするのかについて良い説明を付けます。</li>
+ <li>今度はパッチの <a href="https://help.github.com/articles/creating-a-pull-request">プルリクエストを作成する</a> 時間です。最初から我々のガイドに従ってきている場合、Gaiaリポジトリをローカルにフォークして一意に名づけたブランチに対して変更を加えているはずです。次に変更を <code>「git add .」</code> して、<code>「git commit -m 'コミットメッセージ'</code>」とします。</li>
+ <li><code>'<code>コミットメッセージ</code>'</code>にはBugzilla のバグ番号とバグのタイトルを含める必要があります。それに加え、パッチが何を行うのか、誰がコミットしたのかを記述します。例えばこう:
+ <pre class="brush: bash">Bug 9999999 - Fix that annoying bug R=johndoe</pre>
+ </li>
+ <li>github上の、あなたのGaiaフォークにコードをプッシュして、次にコードを含めてもらうためにPR(プルリクエスト)を作成します。</li>
+ <li>プルリクエストが開かれたら、PR のタイトル内に見つかるバグに対して、自動的に添付されます。</li>
+ <li>将来的には、添付ファイルが推奨レビューワーから r+ を与えられた時、キーワード項目に <code>autoland</code> キーワードを追加して、Gaia master にコードをランドできるようになります(つまりAutolander はコードをランドするでしょう: PR をマージして、バグに対してコミットを置き、バグが解決済みだとマークするまで) <strong>しかしながら</strong>、現在ここの部分はまだ作業中なので、いまのところは <code>checkin-needed</code> キーワードを追加して、他の適切な人があなたの代わりにランドしてくれるのを待たねばなりません。</li>
+</ol>
+
+<div class="note">
+<p><strong>記</strong>: Autolander はmasterにランドする前に統合テストを実行します。統合テストがパスしない場合、Autolander はコードをランドするのを拒否します。プルリクエストとコミットメッセージにバグ番号が入っているかといった基本的なバリデーションが実行されます。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: プルリクエストは、ランドするのを要求されるためにランドされます。プルリクエストは統合ブランチにマージされ、このブランチ内で並行して統合テストが実行されます。PRが統合テストに失敗した場合、統合ブランチからも拒否されて、残っているコミットから統合ブランチが再度ビルドされます。コミットがパスした場合はmasterをそのコミットまで fast-forward します。</p>
+</div>
+
+<h2 id="手動でのパッチ提出">手動でのパッチ提出</h2>
+
+<p>何らかの理由で、Autolander に頼りたくない場合、下記の手順に従って、手動でGaiaにパッチを提出します。</p>
+
+<ol>
+ <li>最初に、bugzilla にバグを登録して、まだ誰もコード変更していない場合に、何を行なっているのかを示します。これは <a href="https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox%20OS">Firefox OS product </a>の下に投稿すべきで、かつあなたのコードが何をするのかについて良い説明を付けます。</li>
+ <li>今度はパッチの <a href="https://help.github.com/articles/creating-a-pull-request">プルリクエストを作成する</a> 時間です。最初から我々のガイドに従ってきている場合、Gaiaリポジトリをローカルにフォークして一意に名づけたブランチに対して変更を加えているはずです。次に変更を <code>「git add .」</code> して、<code>「git commit -m 'コミットメッセージ'</code>」とします。</li>
+ <li><code>'<code>コミットメッセージ</code>'</code>にはBugzilla のバグ番号とバグのタイトルを含める必要があります。それに加え、パッチが何を行うのか、誰がコミットしたのかを記述します。例えばこう:
+ <pre class="brush: bash">Bug 9999999 - Fix that annoying bug R=johndoe</pre>
+ </li>
+ <li>github上の、あなたのGaiaフォークにコードをプッシュして、次にコードを含めてもらうためにPR(プルリクエスト)を作成します。</li>
+ <li>PR の URL を bugzilla のバグに添付します (<em>Add an attachment</em> のリンクに従い、ファイル入力モードにて添付としてペーストするテキストを選び、PR の URL を添付の内容として入力し、簡単な説明を入力します)。</li>
+ <li>Bugzilla バグへの PR の添付上に、レビューを依頼します。<code>review: ?</code> フラグを添付物に加えて依頼できるでしょう。次に、あなたのコードが適用されるモジュールのオーナーを入れます(詳細は <a href="https://wiki.mozilla.org/Modules/FirefoxOS">モジュールオーナーのページ</a> を見て下さい。)</li>
+ <li>パッチをレビューするレビューアが割り当てられるのを待ちます。この時点で、多分レビューアは Github の PR に 変更/修正 を要求するようコメントして、Bugzilla にリンクするでしょう。</li>
+ <li>レビューアのコメントに対応して、前と同様に PR に更なる変更をプッシュして、 <code>review: ?</code> フラグを外します。</li>
+ <li>いったんレビューアのコメントが向けられて <code>r+</code> フラグ (レビュー/承認済みを意味します) が付けられると、<a href="https://github.com/ginatrapani/todo.txt-android/wiki/Squash-All-Commits-Related-to-a-Single-Issue-into-a-Single-Commit">全コミットを1つにつぶし(squash)</a><a href="https://github.com/ginatrapani/todo.txt-android/wiki/Squash-All-Commits-Related-to-a-Single-Issue-into-a-Single-Commit">ます</a> (下記の <a href="#Tips_on_Gaia_Rebasing">Tips_on_Gaia_Rebasing</a> の節も読んで下さい。)。</li>
+ <li>キーワード項目に <code>checkin-needed</code> キーワードを加えます。この時点で誰かがあなたのパッチを Gaia のソースに定着させる (PR をマージするなど) のを待つ必要があります。</li>
+ <li>おめでとうございます! あなたのコードは Firefox OS の一部になりました!</li>
+</ol>
+
+<div class="note">
+<p><strong>記</strong>: レビュー毎に1つのコミットを突き出すのをお勧めします。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: これ以上のパッチ投稿手順は<a href="https://github.com/mozilla-b2g/gaia/blob/master/CONTRIBUTING.md">contributing.md</a>で見つけられます。</p>
+</div>
+
+<h2 id="GaiaのRebaseについてのTips">GaiaのRebaseについてのTips</h2>
+
+<p>Gaia の master ブランチは常に(1日に何度も何度も)変更されています。2時間かかるパッチ作成をした後、master ブランチがあなたの下で変わっている事に気づくかもしれません。<br>
+ <br>
+ あなたの作業ブランチ (例. <code>my-code-fix</code>) から、最初に rebase を試すのはこのようになります:</p>
+
+<pre class="brush: bash">git checkout -b my-code-fix-r1
+git pull --rebase upstream master</pre>
+
+<p>衝突がなければ、このように続けます:</p>
+
+<pre class="brush: bash">git checkout my-code-fix
+git pull --rebase upstream master
+git branch -D my-code-fix-r1</pre>
+
+<p>衝突のある場合、衝突した変更の開発者と一緒に解決して、上記の rebase プロセスを繰り返します。</p>
+
+<h2 id="エンジニアリングバグに対してステータスを_トラッキングする">エンジニアリングバグに対してステータスを トラッキングする</h2>
+
+<p>Mozillaは <a href="/en-US/docs/Developer_Guide/Committing_Rules_and_Responsibilities">Sheriff</a>(保安官) という特別権限を持っています。 Sheriff にはコードをマージしたり、ブランチ状態をメンテする責任があります。Firefox OS チーム内にいるテストの失敗を調査するsheriffの数は限られているため、sheriff が不完全なパッチの全てを元に戻すのは困難です。</p>
+
+<p>Firefox OS では、ゆえに、パッチが動作するか否かの検証で失敗した場合、問題を解決する新しいパッチを定着させるための新しいバグを開くのが好まれます。これはQAとプロマネのチームにトラッキングステータスの問題を引き起こします。</p>
+
+<p>ゆえに、我々はステータストラッキングバグとエンジニアリングバグを分けています。</p>
+
+<ul>
+ <li>ステータストラッキングバグは "meta" キーワードで識別されます。ステータスバグは受容可能な条件を満たさない場合や、再現手順に失敗する場合にも、再度開かれる事があります。</li>
+ <li>エンジニアリングバグは自動テストに失敗したり、全く動作しない時<strong>だけに</strong>開かれるべきです。あるパッチでエンジニアリングバグの一部分が修正された場合、バグを複製して "see also" 項目にオリジナルのバグへの参照を記し、失敗するポイントを記述します。</li>
+</ul>
+
+<div class="note">
+<p><strong>記</strong>: これはユーザストーリーバグでもあります。プロマネはユーザストーリーの項目にユーザストーリーと需要可能な条件をうめます。</p>
+</div>
+
+<h3 id="たまたまステータストラッキング中のバグを定着させた場合に回復する">たまたまステータストラッキング中のバグを定着させた場合に回復する</h3>
+
+<p>こうなった場合、パニックにならないで下さい。たまたまパッチを定着させたり、レビューを得たり、トランクに定着させたり、何も修正されていないと報告されたりした場合、なすべきことはここにあります:</p>
+
+<ol>
+ <li>Bugzilla の UI の右下隅の "Clone this bug" を押して新規バグを作成し、オリジナルの項目の大半をそこにコピーします。ホワイトボード、キーワード、STR/ユーザのストーリーが新しいバグにコピーされているのを確認します。</li>
+ <li>新規のバグが古いバグにブロックされるようセットします。新規バグは、新しいステータストラッキングバグになるでしょう。</li>
+ <li><em>needinfo</em> フラグを使って、適切なプロマネステータストラッキングバグが変更されたのが知れ渡るように警告します。Wiki上にて <a href="https://wiki.mozilla.org/FirefoxOS/Teams">Firefox OSの別のプロマネのメールアドレスを発見</a> できます。</li>
+ <li>新規のエンジニアリングバグを作成して、故障手順や受容可能な条件を記述します。また、この新規バグを使ってステータストラッキングバグをブロックします。</li>
+ <li>新規バグの解決法を提供するよう試みます。楽しくハックしましょう!!!</li>
+</ol>
+
+<h2 id="パッチを別のブランチに取り込むには">パッチを別のブランチに取り込むには</h2>
+
+<p>バグの別バージョンのタグが見られる事もあるでしょう。Firefox OSの古めのブランチにパッチを持ち上げたい場合、パッチを定着させる規約を満たすかどうか確認します。詳細は<a href="https://wiki.mozilla.org/Release_Management/B2G_Landing">B2G Landing page</a>で見つかります。</p>
+
+<div style="background-color: transparent; color: #000000; position: absolute; top: 1914px; left: 277px; padding: 0px; border-radius: 2px;" id="divLookup"><img></div>
diff --git a/files/ja/archive/b2g_os/developing_gaia/testing_gaia_code_changes/index.html b/files/ja/archive/b2g_os/developing_gaia/testing_gaia_code_changes/index.html
new file mode 100644
index 0000000000..3ec1fc72ae
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/testing_gaia_code_changes/index.html
@@ -0,0 +1,175 @@
+---
+title: Gaia のコードの変更をテストする
+slug: Archive/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes
+tags:
+ - Firefox OS
+ - Gaia
+ - UI
+ - コントリビュート
+ - テスト
+ - 統合
+translation_of: Archive/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p><span class="seoSummary">Gaiaコードベースへの変更が完了して動作がOKと思われる時、次のステップは、プロジェクトに戻すパッチを投稿する前に、テストプロシージャを一通り通して、変更が本当に動作する —のと、Gaiaのその他の部分と一緒に正しく動作する— のを確認する事です。この記事では方法を説明します。</span></p>
+</div>
+
+<p>テストの手順は、一般にこんな構成です:</p>
+
+<ul>
+ <li>標準のデバッグ手順</li>
+ <li>自動テストを実行する</li>
+</ul>
+
+<p>両方の領域を観察してみましょう。</p>
+
+<h2 id="標準デバッグを行う">標準デバッグを行う</h2>
+
+<p>熟練のweb開発者ならGaiaのコードをデバッグするのは慣れたプロセスでしょう。すでに<a href="/ja/Firefox_OS/Developing_Gaia/Running_the_Gaia_codebase#Running_Gaia_in_Desktop_Firefox">デスクトッブ版FirefoxでGaiaを実行する</a>方法や、<a href="/ja/Firefox_OS/Developing_Gaia/Making_Gaia_code_changes#Simple_code_change_example">簡単な変更を加える</a>方法を見てきました。もっと複雑なコードベースの追加のためには、デスクトッブ版Firefoxのビューにてアクセスできる、Firefoxデバッグツールをもっと使いこなしたくなるでしょう。</p>
+
+<p><strong>記</strong>: これらのツールの詳細なマニュアルは<a href="/ja/docs/Tools">Tools zone</a>にあります。</p>
+
+<h2 id="自動テスト">自動テスト</h2>
+
+<p>パッチを投稿する前に、Gaiaにふさわしい標準テストスイートも実行しておくべきであり、そうすることで既存の主要な電話機能に逆行した変更をしていないことを確認します。 実行できるテストは:</p>
+
+<ul>
+ <li>ユニットテスト</li>
+ <li>統合テスト</li>
+ <li>パフォーマンステスト</li>
+ <li>UI テスト</li>
+</ul>
+
+<p>一般的にパッチの投稿前には、テスト実施を求めます; 最初の貢献の場合はテストなしに投稿できますが、将来にテストが実施されるように手助けを求める必要があります。テスト実行の前にはGaiaリポジトリを更新して、最新のものが手元にあるのを確認すべきです。</p>
+
+<div class="note">
+<p><strong>ショートカット</strong>: もしテスト環境の構築方法を知らない場合、<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Automated_testing/MozITP">MozITP</a> を使用してください — このツールセットは自動で Ubuntu VMをセットアップし、インテグレーションテストを実施し UI のテストを実施するテスト環境をワンクリックで作成することが出来ます。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: テストを動作させる方法については、<a href="/ja/Firefox_OS/Platform/Testing/">Firefox OS の自動テスト のページ</a>で見つけることができます。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: 利用可能であれば実機端末 (いくつかの機能 /ハードは、エミュレータではサポートしません) での各テストの実行を検討し、利用不可の場合はB2G デスクトッブエミュレータか、Firefoxナイトリーを使います。</p>
+</div>
+
+<h3 id="ユニットテスト">ユニットテスト</h3>
+
+<p>ユニットテストは、大きなアプリケーション内の、個々のユニットのテスト — Gaiaの場合ぱ個々のアプリ—です。Gaiaで使用するのは:</p>
+
+<ul>
+ <li>テストフレームワークとしての<a href="http://visionmedia.github.io/mocha/">mocha</a></li>
+ <li>アサートライブラリの<a href="http://chaijs.com/api/assert/">chai</a></li>
+ <li>モック&amp;スタブライブラリ<a href="http://sinonjs.org/">sinon.js</a></li>
+ <li>テストカバレッジツールの<a href="http://blanketjs.org/">blanket.js</a></li>
+</ul>
+
+<p>下記コマンドでダウンロード、インストール、及び ユニットテストサーバの提供ができます(実行にかなりの時間がかかり、なのでお茶を入れる良い時間かもしれません):</p>
+
+<pre class="brush: bash">DEBUG=1 make
+export FIREFOX=/Applications/FirefoxNightly.app/Contents/MacOS/firefox
+bin/gaia-test</pre>
+
+<p>ユニットテスト一覧のwebページが開くでしょう。実行するにす:</p>
+
+<ul>
+ <li>ページ内の一覧から実行したいユニットテストを選択します (アスタリスクが横に出ています)。</li>
+ <li>"Execute" ボタンをクリックします。</li>
+ <li>ページ下端にスクロールして結果を見ます。</li>
+</ul>
+
+<p>開いているウィンドウで、新規のターミナルウィンドウから全テストスイートを実行することもできます。:</p>
+
+<pre class="brush: bash">make test-agent-test</pre>
+
+<div class="note">
+<p><strong>記</strong>: これはかなり長い時間がかかります、なぜなら実行すべきテストが大量にあるためで(ひょっとして1時間以上)、ゆえにおそらくあなたが変更したアプリ向けのテストだけを実行したくなるでしょう。これを行うには <code>APP=&lt;app folder name&gt;</code> をコマンドに追加します、例えば <code>APP=settings</code>。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: テストについてのより詳しい情報は<a href="/ja/Firefox_OS/Platform/Testing/Gaia_unit_tests">Gaia ユニットテスト</a> を見て下さい。</p>
+</div>
+
+<h3 id="統合テスト">統合テスト</h3>
+
+<p>統合テストには、異なるユニットのコードを一緒なグループにして、それらが一緒に正しく動作するかのテストを含んでおり、ユニットテストの次の論理的ステップです。Gaiaの統合テストは JavaScriptで書かれるmarionetteスクリプトと pythonベースのサーバで動かされます。これはGeckoと通信してブラウザと Firefox OS 端末の両方の制御と、お互いの相互作用が可能になります。</p>
+
+<p>下記コマンドを実行して統合テストを起動できます:</p>
+
+<pre class="brush: bash">make test-integration</pre>
+
+<div class="note">
+<p><strong>記</strong>: ユニットテストと同様に、統合テストスイート全体の実施には時間がかかります、なので <code>APP=&lt;app folder name&gt;</code> を上記のコマンドに追加してアプリ単体をテストできます、例えば  <code>APP=calendar</code>。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: 統合テストのより詳細な情報は、<a href="/ja/Firefox_OS/Platform/Automated_testing/Gaia_integration_tests">Gaia 統合テスト</a>を読んでください。</p>
+</div>
+
+<h3 id="パフォーマンステスト">パフォーマンステスト</h3>
+
+<p>Gaia のパフォーマンステストは、 外部の <a href="/docs/Mozilla/Firefox_OS/Platform/Testing/Raptor">Raptor CLI ツール</a> で実行されます。Raptor ではアプリを複数回起動することを自動化できて、アプリの起動時間についての統計情報を出力します。テスト実行後には、Raptor はアプリケーションについてのメモリ情報も出力します。</p>
+
+<p>Raptor のパフォーマンステストを実行するには、次を見てください <a href="/docs/Mozilla/Firefox_OS/Platform/Testing/Raptor#Getting_Started">Raptor: Getting Started.</a></p>
+
+<h3 id="UIテスト">UIテスト</h3>
+
+<p> <a href="/ja/Firefox_OS/Platform/Automated_testing/gaia-ui-tests">Gaia UI テスト入門</a>を見て下さい。</p>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 2293px; left: 473px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/developing_gaia/understanding_the_gaia_codebase/index.html b/files/ja/archive/b2g_os/developing_gaia/understanding_the_gaia_codebase/index.html
new file mode 100644
index 0000000000..075138e621
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/understanding_the_gaia_codebase/index.html
@@ -0,0 +1,210 @@
+---
+title: Gaia コードベースを理解する
+slug: Archive/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase
+tags:
+ - Code
+ - Firefox OS
+ - Gaia
+ - Guide
+ - JavaScript
+ - contribution
+translation_of: Archive/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p><span class="seoSummary"><a href="https://github.com/mozilla-b2g/gaia/">Gaiaコードベース</a>にあなたの変更を加え始める前に、全体がどう構成されているか、コードの慣習が適用されているかについての基礎を理解しておくべきです。この記事では両方の点について説明します。</span></p>
+</div>
+
+<h2 id="Gaia_ブランチ">Gaia ブランチ</h2>
+
+<p>Gaia コードベースには色々なブランチがあり、それは何の作業をしているかによります (またはどの端末を持っているか) masterブランチをダウンロードや、ハック、makeしたいのではないかもしれません。ここに最も普通で、たぶん興味を持たれるリポジトリの簡単なガイドがあります:</p>
+
+<ul>
+ <li><strong>master</strong> — 最新の開発ブランチです。新機能の開発 (やバグ修正) や、電話機・エミュレータで最新の Gaia を実行する場合、このブランチを使います。</li>
+ <li><strong>v2.1</strong>, <strong>v2.0</strong>, <strong>v1.4</strong>, など。 — Gaia 2.1, 2.0, 1.4, などの機能凍結バージョンです。特定の Gaia バージョンのバグ修正や、アプリを開発して特定の Gaia バージョンで動作確認をする場合、 (例えば、Firefox OS ビルディングブロックを変更して動かし、他のGaiaバージョンでも自分のレイアウト動作するか確かめたい場合。)このブランチを使います。</li>
+ <li><strong>v1.3t</strong> —  Gaiaの低メモリ版で、Tarako や Spice Fire Oneといった低メモリ端末で実行するために開発されました。このような端末向けのアプリを開発したい場合、このブランチで作業すべきです。</li>
+</ul>
+
+<h2 id="Gaiaコードベースの構造">Gaiaコードベースの構造</h2>
+
+<p>以下の章では、Gaiaコードベースの最も重要な部分を概説します。</p>
+
+<h3 id="apps">apps/</h3>
+
+<p>このディレクトリには主なGaiaアプリがあります。ホームスクリーンに表示されるアプリ(カレンダーやカメラのようなもの)と下にあるアプリ(システム、ホームスクリーン、キーボードといったもの)との両方のアプリがあります。このアプリの動作は少しずつ異なる方法で、ただ多くの共通機能があります、それは:</p>
+
+<ul>
+ <li><code>index.html</code>: 各アプリの中心のファイル</li>
+ <li><code>manifest.webapp</code>: アプリを定義するマニフェストファイル</li>
+ <li><code>locales</code>: そのアプリ用の翻訳文字列</li>
+ <li><code>test</code>: アプリに固有のユニットテストと統合テスト</li>
+ <li><code>js</code>, <code>style</code>: そのアプリ用のスクリプトやスタイル</li>
+ <li><code>resources</code>: 画像、音やその他資産</li>
+</ul>
+
+<div class="note">
+<p><strong>記</strong>: 実際に動くアプリの詳細情報は <a href="/ja/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia apps guide</a> で見つかります。</p>
+</div>
+
+<h3 id="build">build/</h3>
+
+<p>ビルドスクリプトを含むディレクトリ</p>
+
+<h3 id="dev_apps">dev_apps/</h3>
+
+<p>このディレクトリはカスタマイズにより同梱されるアプリを含みます。例えば、カスタムビルド時に同梱したいカスタムアプリをここに入れます。</p>
+
+<div class="note">
+<p><strong>記</strong>: Gaiaのカスタムの詳細情報については <a href="/ja/Firefox_OS/Developing_Firefox_OS/Market_customizations_guide">Market customizations guide </a>を読みます。</p>
+</div>
+
+<h3 id="keyboard">keyboard/</h3>
+
+<p>keyboardディレクトリには異なる言語用のキーボード辞書やレイアウトがあります。</p>
+
+<h3 id="locales">locales/</h3>
+
+<p>このディレクトリには <code>languages_all.json</code> というJSONファイルがあり、Gaiaでどの言語をサポートするかを定義します。アプリをどうローカライズするかの詳細な洞察については <a href="/ja/Apps/Build/Localization/Getting_started_with_app_localization">Getting started with app localization</a> を読みます。</p>
+
+<h3 id="shared">shared/</h3>
+
+<p>このディレクトリには、複数のアプリが利用している多くのリソースがあります; 主要ないくつかは:</p>
+
+<ul>
+ <li><code>gaia/shared/js</code>: 共通機能を行う、JavaScript ライブラリ</li>
+ <li><code>l10n.js</code>: 端末のロケールを判定するローカリゼーションライブラリで、ローカライズ可能な文字列をアプリのlocalesフォルダにある文字列に置換します。ローカライズ可能な文字列は、 <code>data-l10n-id</code> 属性エレメントが同梱されます。</li>
+ <li><code>gaia/shared/locales</code>: 異なるロケール向けのローカライズされたリソース。</li>
+ <li><code>gaia/shared/resources</code>: アイコン、着信音、アラームサウンドトラックといった共通の資産</li>
+ <li><code>gaia/shared/style</code>: スタイルシートや、ボタン・プログレスバー・ツールバーなどの共通アイテム用のその他のスタイルリソース。これらの詳細情報は <a href="/ja/Apps/Design/Firefox_OS_building_blocks">Firefox OS Building Blocks</a>を見て下さい。</li>
+ <li><code>gaia/shared/style_unstable</code>: 不安定または実験的なスタイルリソース</li>
+ <li><code>gaia/shared/test</code>: ユニットテストや統合テストを定義するJavaScript</li>
+</ul>
+
+<h3 id="tools">tools/</h3>
+
+<p>toolsディレクトリにはビルドスクリプトやテスト向けのツールがあります。</p>
+
+<h2 id="Gaiaコーディングスタイル">Gaiaコーディングスタイル</h2>
+
+<p>Gaiaは<a href="http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml">Google JavaScriptコーディングスタイル</a>に従っています。</p>
+
+<p>背景の情報:</p>
+
+<ul>
+ <li>コーディングスタイル: <a href="/en-US/docs/Mozilla/Developer_guide/Coding_Style#General_practices">General practices</a></li>
+ <li>コーディングスタイル: <a href="/en-US/docs/Mozilla/Developer_guide/Coding_Style#JavaScript_practices">JavaScript practices</a></li>
+ <li>コーディングスタイル: <a href="/en-US/docs/Mozilla/Developer_guide/Coding_Style#Naming_and_Formatting_code">Naming and formatting code</a></li>
+</ul>
+
+<h3 id="特有のルール">特有のルール</h3>
+
+<ol>
+ <li>HTML ファイルが <code>&lt;!DOCTYPE html&gt;</code> (すなわち、HTML5文書)と宣言されているか確認して下さい。未定義なら、Internet Explorer 9 以降では互換モードで読み込まれます。</li>
+ <li><code>JavaScriptファイルの先頭に"use strict"<code>; </code>宣言を(このように、クォート含め)入れて、strict(厳密な)モードにして下さい。</code></li>
+ <li>常にタブでなく、2文字の半角スペースでインデントして下さい。</li>
+ <li>コードの論理的な部分に分けるのに、改行を使用して下さい!</li>
+ <li>複数の単語のファイル名は"アンダースコア"文字で単語を分けます、 <code>like_this.js</code> のように。</li>
+ <li>文字列用には、ダブルクォーテーションの代わりにシングルクォーテーションを使います。</li>
+ <li>展開した条件構造を使います:
+ <pre class="brush: js">悪い例
+if (expression) doSomething();
+
+正しい例
+if (expression) {
+ doSomething();
+}</pre>
+ </li>
+ <li><a href="/en-US/Firefox_OS/Platform/Gaia/Gaia_apps/System">Systemアプリ</a>で作業している場合、<a href="https://groups.google.com/forum/#!msg/mozilla.dev.gaia/rEhSrw6XmT4/UNvE7qW9pgYJ">ガイダンス一覧</a>を確認して下さい。</li>
+</ol>
+
+<h3 id="コミットごとのコーディングスタイルチェック">コミットごとのコーディングスタイルチェック</h3>
+
+<p>Gaia は <a href="http://www.jshint.com/">jshint</a> を使って、各コミット前(pre-commit フック経由)に JSのコーディングスタイルを自動的にチェックしています。いったんGaia リポジトリにプルリクエストを送信すると、Travis(GithubのCI)サーバがこの linter で全スタイルが正しいかをダブルチェックします。 <code>make</code> コマンドが実行されると、<a href="https://github.com/mozilla-b2g/gaia/blob/master/tools/pre-commit">gaia/tools/pre-commit</a> にあるpre-commit フックスクリプトがプロジェクトの <code>.git/hooks</code> フォルダにコピーされます。</p>
+
+<div class="note">
+<p><strong>記</strong>: かつては <a href="https://developers.google.com/closure/utilities/docs/linter_howto">gjslint</a> をコーティングスタイルチェックに使用していましたが、jshint の方がより厳密で良い結果が出るため、その使用を廃止しました。Firefox OS 1.4 以降ではJSHintを使用しており、gjslint はJSHintに移行されていない、古いファイル用にのみ推奨します。</p>
+</div>
+
+<h3 id="Gaia経由で手動lintチェックを実行する">Gaia経由で手動lintチェックを実行する</h3>
+
+<p>パッチを投げる前に、JSHintを手動で実行して、スタイルエラーをチェックする事を推奨します。<br>
+ <br>
+ Gaia内のjshintに関するより詳しい情報については、<a href="https://github.com/mozilla-b2g/gaia/tree/master/build/jshint">gaia/build/jshint</a> ディレクトリの中を見て下さい。 Gaia はビルドスクリプトを提供しています。実行するには:</p>
+
+<pre class="brush: bash">$ make lint</pre>
+
+<p>として gjslint と jshint 両方のスタイルチェックができます。あるいは</p>
+
+<pre class="brush: bash">$ make hint</pre>
+
+<p>と実行して単なる jshint スタイルチェックができます。</p>
+
+<pre class="brush: bash language-html"><code class="language-bash">$ make eslint</code></pre>
+
+<p>と実行して単なる eslint スタイルチェックができます。</p>
+
+<div class="note">
+<p><strong>記</strong>: Gaiaを使わず、自分専用の jshint をインストールしたい場合、下記を使用できます:</p>
+
+<pre class="brush: bash">npm install jshint -g
+jshint myfile.js
+</pre>
+</div>
+
+<p> </p>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 3139px; left: 395px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/developing_gaia/構造入門書/index.html b/files/ja/archive/b2g_os/developing_gaia/構造入門書/index.html
new file mode 100644
index 0000000000..ccfd97f081
--- /dev/null
+++ b/files/ja/archive/b2g_os/developing_gaia/構造入門書/index.html
@@ -0,0 +1,249 @@
+---
+title: Gaia 構造入門書
+slug: Archive/B2G_OS/Developing_Gaia/構造入門書
+tags:
+ - Build documentation
+ - Building
+ - Firefox OS
+ - Gaia
+ - Guide
+translation_of: Archive/B2G_OS/Developing_Gaia/Build_System_Primer
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details open>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p>この記事ではGaiaのビルドシステムがどのように動作するのかを、makefileや、ビルド手順や、環境変数や、カスタマイズを含めて説明します。</p>
+</div>
+
+<p>ビルドステップ用に意味のある成果の大半は、Gaiaの <code>build/</code> サブディレクトリにあるスクリプトによって実行されます。これはmakeやnode.jsや、<a href="/ja/docs/Mozilla/Projects/XULRunner">XULRunner</a>の実行環境である <a href="https://developer.mozilla.org/ja/docs/XPConnect/xpcshell" title="https://developer.mozilla.org/en-US/docs/XPConnect/xpcshell">XPCShell</a> (JS Shellとも言う)を使って実行されます。Gaiaのビルドシステムは、webアプリのインストールや、テストや、ローカライゼイションや、実端末へパッケージするのに役立つヘルパーツールを含んでいます。その他に開発者がGaiaをカスタマイズするのも可能になり、例えば、デフォルトの壁紙、着信音、アプリ、設定の変更ができます。</p>
+
+<div class="note">
+<p><strong>記</strong>: XPCShell は node.js と同様ですが、違いとしていくつかMozilla風味の javascriptも実行できます。これは Gaia ビルドスクリプトを Firefox拡張機能内で実行できるようにします。</p>
+</div>
+
+<h2 id="Makefile">Makefile</h2>
+
+<p>Makefileはひとかたまりのゴールから構成されています。 この節では最も役立つものを説明します。</p>
+
+<h3 id="install-gaia">install-gaia</h3>
+
+<p>このゴールは全てのGaia用アプリを端末にプッシュします。特定のアプリだけをプッシュしたい場合、次のように<code> APP</code> フラグを使用できます:</p>
+
+<pre class="brush: bash">APP=calendar make install-gaia</pre>
+
+<p>このディレクトリは Gaia アプリのディレクトリ(例 <code>apps</code>)の中にある必要があります。</p>
+
+<h3 id="reset-gaia">reset-gaia</h3>
+
+<p>これは <code>install-gaia</code> とほぼ同じ動きをしますが、違いはまず掃除(clean)をして、次に全アプリをインストールした後にパーミッションをセットアップします。アプリはエンジニアリングビルドと同様に <code>/data/local</code> 内にあります。これはテストやデバッグのアプリもプッシュします。</p>
+
+<div class="warning">
+<p><strong>要注意</strong>: <code>APP</code> 環境変数を <code>reset-gaia</code> と一緒に使うと動作しているように見えますが、電話機が使えない状態 (このゴールを APP 変数なしで実行すると復活できます) になるでしょう。なので行わないようにして下さい。</p>
+</div>
+
+<h3 id="production">production</h3>
+
+<p><code>reset-gaia と同様で、違いはソースコードが最適化されます。このゴールは基本的にユーザビルドのエミュレーションを可能にします。これはユーザビルドでインストールされるアプリもプッシュされます。</code></p>
+
+<div class="warning">
+<p><strong>要注意</strong>: <code>APP</code> 環境変数を <code>production</code> と一緒に使うと動作しているように見えますが、電話機が使えない状態 (このゴールを APP 変数なしで実行すると復活できます) になるでしょう。なので行わないようにして下さい。</p>
+</div>
+
+<h3 id="reference_workloads">reference workloads</h3>
+
+<p>このゴールは端末に色々なサイズの負荷をかけて、デバッグしたり、パフォーマンスや、起こりうるスケーラビリティの問題を修正したりするのに役立ちます。このゴールは APP または APPS 環境変数を受け入れ、それはスペースで区切られたアプリ名を含みます、例えば</p>
+
+<pre class="brush: bash">APP=sms make reference-workload-light
+APPS="sms communications/contacts" make reference-workload-heavy
+</pre>
+
+<div class="note">
+<p><strong>記</strong>: 詳細情報は、<a href="/ja/Firefox_OS/Platform/Gaia/Hacking#Reference_Workloads">Hacking Gaia: Reference workloads</a>を読んで下さい。</p>
+</div>
+
+<h2 id="環境変数">環境変数</h2>
+
+<p>いくつかの環境変数は端末へのビルドとインストールの側面を制御します、例えば:</p>
+
+<h4 id="P1">P=1</h4>
+
+<p>これはマルチコアCPUを活かしてビルド時間を高速化するパラレルビルドを有効にします。デフォルト値は <strong>0</strong>です。</p>
+
+<div class="warning">
+<p><strong>要注意</strong>: パラレルビルドは実験的機能で、不安定な場合があります。</p>
+</div>
+
+<h4 id="GAIA_OPTIMIZE1">GAIA_OPTIMIZE=1</h4>
+
+<p>これは JavaScript ファイルの最適化を有効にします。これは <code>make production </code>実行時に自動的にセットされます。これは <code>install-gaia</code> や <code>reset-gaia</code> でも使われることがあります。</p>
+
+<h4 id="PRODUCTION1">PRODUCTION=1</h4>
+
+<p>これは基本的に <code>make production</code> のエイリアスです。</p>
+
+<h4 id="DEBUG1">DEBUG=1</h4>
+
+<p>これは Gaia <a href="/ja/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_unit_tests">ユニットテスト</a>や、FirefoxでFirefox OSアプリを開発する時に使う、デバッグプロファイルを生成できるようになります。新規生成の前に、既存のプロファイルディレクトリを削除しておく必要があります。</p>
+
+<h4 id="DEVICE_DEBUG1">DEVICE_DEBUG=1</h4>
+
+<p>端末の画面ロックを無効にします。</p>
+
+<h4 id="GAIA_DEVICE_TYPEphone">GAIA_DEVICE_TYPE=phone</h4>
+
+<p>この変数は色々な 'app.list' から特定端末をビルドするのを許可します。全ての 'app.list' ファイルは /build/config/$(GAIA_DEVICE_TYPE)/  フォルダにあります。</p>
+
+<p>GAIA_DEVICE_TYPE のデフォルト値は <strong>phone</strong> です。</p>
+
+<div class="note">
+<p><strong>記</strong>: 詳細とオプションについては、<a href="/ja/Firefox_OS/Platform/Gaia/Hacking#Make_options">Hacking Gaia make options</a> のガイドを参照下さい。</p>
+</div>
+
+<h2 id="ビルド手順">ビルド手順</h2>
+
+<p>ここにgaiaをビルドするためのシーケンス図があります:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8635/gaia-build-system-seq-diagram.png" style="height: 1497px; width: 2222px;"></p>
+
+<p>pre-app.js と app.js と post-app.js とは Makefile によって実行され、大抵のビルドタスクは xpcshell スクリプトによって完了します。Makefile はOSを判定したり b2g-desktop をダウンロードするのに使われ、我々はMakefile から xpcshell スクリプトにタスクを移行する予定です。</p>
+
+<p>なぜ pre-app と app と post-app とがあるのか疑問に思うかもしれません、それは Makefile から xpcshell スクリプトへ、依存性を移動しているからです、なので大半の依存性を xpcshell に移行するため、 pre-app.js と post-app.js を <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021051">bug 1021051</a> に基いて作りました。そして最終的には、<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1053703">bug 1053703 </a>に基いてapp.js と pre-app.js と post-app.js はマージされるでしょう。</p>
+
+<p>gaiaビルドシステムには3種類のディレクトリがあります:</p>
+
+<ol>
+ <li>ソースディレクトリ: apps, dev_apps, shared ディレクトリ</li>
+ <li>ステージディレクトリ: build_stage</li>
+ <li>プロファイルディレクトリ: profile, profile-debug や profile-test ディレクトリ</li>
+</ol>
+
+<p>我々のゴールはソースディレクトリにファイル生成することでは決してなく、不幸にもまだソースディレクトリにファイル生成するモジュールが残っていますが、この問題を解決する予定です。どのモジュールがソース、ステージ、プロファイルディレクトリにファイル生成するのかを示す表がここにあります。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8653/file-accessing.png" style="height: 1250px; width: 1136px;"></p>
+
+<p>ここにgaiaディレクトリで <code>make</code> が実行された時のビルドプロセスを、実行される順に載せます:</p>
+
+<ol>
+ <li><strong>b2g_sdk</strong>: b2g-デスクトップは<code> GAIA_DIR/build/</code>にある xpcshell スクリプトを実行するのに使われます。</li>
+ <li><strong>svoperapps</strong>: モバイル通信事業者や国がインストールするアプリ用に、アプリをダウンロードして、設定ファイルを生成します。</li>
+ <li><strong>webapp-manifests</strong>: ビルドプロセス用のwebアプリのメタデータを生成します。</li>
+ <li><strong>keyboard-layouts</strong>: デフォルトのキーボードレイアウト設定を生成します。</li>
+ <li><strong>settings.json (settings.js)</strong>: この JavaScript はFirefox OSのデフォルト設定を生成し、それは Gaia により読み込まれます。</li>
+ <li><strong>webapp-shared</strong>: 各アプリに使われるファイルを、shared ディレクトリから build_stage ディレクトリに移動します。</li>
+ <li><strong>preferences</strong>: Firefox OS用のデフォルト設定を生成します; <code>user.js</code> ファイルを生成して端末に配置し、Geckoにより読み込まれます。この値は <code>DEBUG=1</code> のような別の環境変数によって変更される可能性があるのに注意して下さい。</li>
+ <li><strong>app.js</strong>: <code>アプリ</code>ディレクトリ内のMakefile: これらが存在する場合に実行されます。各アプリにとって、アプリのMakefileがなければ、Gaia Makefile がアプリのディレクトリを<code>build_stage</code>にコピーして、<code>[アプリ</code>ディレクトリ<code>]/build/build.js</code> があれば実行します。より詳細は <a href="#Build_script_for_apps">Build script for apps</a> を見て下さい。</li>
+ <li><strong>test-agent-bootstrap &amp; test-agent-config</strong>: 2つのmakeルールを含む test-agent をセットアップします<code>、test-agent-config</code> と <code>test-agent-bootstrap-apps</code> で、これは各アプリのテスト環境セットアップに使われます。</li>
+ <li><strong>webapp-optimize</strong>: このスクリプトはJavaScript 最小化、ローカライゼーションリソースファイルを JSON ファイルにまとめる、必要に応じてデフォルト言語用の HTML ファイルを生成する、といった色々な最適化手順を含みます。</li>
+ <li><strong>webapp-zip</strong>: これは各アプリを別のzipファイルに圧縮して <code>profile/</code> ディレクトリに配置します。</li>
+ <li><strong>optimize-clean</strong>: <code>optimize-clean</code> はデフォルト言語のHTMLファイルをきれいにします。</li>
+ <li><strong>contacts</strong>: <code>GAIA_DISTRIBUTION_DIR </code>に存在すれば、事前読込された連絡先ファイルをプロファイルにコピーします</li>
+ <li><strong>extensions</strong>: <code>GAIA_DIR/tools/extensions</code> 内の拡張機能をプロファイルディレクトリにコピーします; 別の設定のセットアップは別の拡張機能のコピー指定を可能にします。</li>
+ <li><strong>installed-extensions.json (additional-extensions.js)</strong>: 最終的に、このスクリプトが追加拡張機能をプロファイルディレクトリにダウンロードします。</li>
+</ol>
+
+<h2 id="アプリ用のビルドスクリプト">アプリ用のビルドスクリプト</h2>
+
+<p>デフォルトでは、アプリのビルドスクリプト <span style="font-family: courier new,andale mono,monospace; line-height: 1.5;">[アプリディレクトリ]/build/build.js</span><span style="line-height: 1.5;"> がある場合、app.js によって実行されます。$APP/build/build.js がない場合、app.js はアプリを build_stage にコピーします。</span></p>
+
+<p>アプリディレクトリ内のファイルは、アプリのビルドスクリプトによってbuild_stage ディレクトリにコピーされるべきです、なぜなら app.js はアプリのビルドスクリプトがある場合はそれらをコピーしないからです。例えばカレンダーアプリに build/build.js があって、カレンダーアプリ用の build.js によって<a href="https://github.com/mozilla-b2g/gaia/blob/a0fa29db8e9e15afe3b1787bf494caa86a033f10/apps/calendar/build/build.js#L8">utils.copyToStage() が呼ばれるべきです。</a></p>
+
+<div class="note">
+<p><strong>記</strong>: アプリケーション外部のソース (shared/ の中のような) のために、index.html の&lt;head&gt; 内のコメントの中に入れておく必要があって、それにより、shared/ がアプリ内にコピーされるようになります。</p>
+</div>
+
+<p> </p>
+
+<p>アプリ用のビルドスクリプトは $GAIA_DIR/build 内の全ビルドモジュールが必要で、特にアプリのビルドに便利なユーティリティモジュールが要ります。モジュールを取得するのに require('utils') を使えます。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8651/flow-diagram.png" style="height: 952px; width: 1004px;"></p>
+
+<h2 id="設定をカスタマイズする">設定をカスタマイズする</h2>
+
+<p>カスタム設定があると気づいた場合、端末に書き込む時間をそれぞれセットする必要があり、<code>custom-prefs.js</code> というファイルを<code>build/config</code> ディレクトリ内に作ってその中におく事ができます。これで上書きされてソース制御外になるのを防止できます。</p>
+
+<p>ここに便利な設定があります:</p>
+
+<pre class="brush: js">// this enables marionette which lets you run performance tests
+// see https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Testing/Gaia_performance_tests
+user_pref("marionette.defaultPrefs.enabled", true);
+
+// this sets the port for remote debugging your application on the device
+user_pref("devtools.debugger.remote-port", 60000);
+
+// this enables the remote debugger
+user_pref("devtools.debugger.remote-enabled", true);
+
+// this outputs debug information about the Radio Interface Layer in logcat
+user_pref("ril.debugging.enabled", true);
+</pre>
+
+<p>このファイルはプロファイル生成するたびに読み込まれます。全て確実に生成させるのに最も安全な方法は、最初にプロファイルを消す事です:</p>
+
+<pre class="brush: bash">rm -rf profile &amp;&amp; make profile</pre>
+
+<p>それで <code>install-gaia</code> ゴールを安全に使えます。</p>
+
+<h2 id="FAQ">FAQ</h2>
+
+<h3 id="焼き込み後に端末が黒いままになる">焼き込み後に端末が黒いままになる</h3>
+
+<p>これは端末がアイドル時に焼き込みした場合に時々起こりえます。これを治療するには単にコマンドラインで次のコマンドを使って B2G を再起動します:</p>
+
+<pre class="brush: bash">adb shell stop b2g &amp;&amp; adb shell start b2g</pre>
+
+<p> </p>
+
+<div id="divLookup" style="background-color: transparent; color: #000000; position: absolute; top: 5161px; left: 906px; padding: 0px; border-radius: 2px;"><img></div>
diff --git a/files/ja/archive/b2g_os/firefox_os_apps/index.html b/files/ja/archive/b2g_os/firefox_os_apps/index.html
new file mode 100644
index 0000000000..370236dd14
--- /dev/null
+++ b/files/ja/archive/b2g_os/firefox_os_apps/index.html
@@ -0,0 +1,85 @@
+---
+title: Firefox OS apps
+slug: Archive/B2G_OS/Firefox_OS_apps
+tags:
+ - Apps
+ - Building
+ - Components
+ - Firefox OS
+ - Installing
+ - NeedsTranslation
+ - TopicStub
+ - device APIs
+translation_of: Archive/B2G_OS/Firefox_OS_apps
+---
+<p class="summary">This section of the Firefox OS docs covers the specific techniques required — and available tools — for building Firefox OS apps. You'll find a number of details below, from Firefox OS building blocks/web components, to device APIs and App installation.</p>
+
+<h2 id="Building_Firefox_OS_apps">Building Firefox OS apps</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Building_apps_for_Firefox_OS">Building apps for Firefox OS</a></dt>
+ <dd>Firefox OS/Firefox platform app specifics, including App installation and management APIs, manifest files, packaged and hosted apps, handling API permissions.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Localization">Localization</a></dt>
+ <dd>This set of articles provides information for developers wishing to provide localized versions of their apps.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Performance">Performance</a></dt>
+ <dd>This page lists performance-related topics specific to Firefox OS.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Firefox_Accounts_on_Firefox_OS">Firefox Accounts on Firefox OS</a></dt>
+ <dd>This article provides an overview of using <a href="/en-US/docs/Mozilla/Tech/Firefox_Accounts">Firefox Accounts</a> in Firefox OS.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Reference_apps">Reference apps</a></dt>
+ <dd>This page lists a number of sample apps we've put together for you to download, install, play with and learn from. Have fun!</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Screencast_series:_App_Basics_for_Firefox_OS">Screencast series: App Basics for Firefox OS</a></dt>
+ <dd>In this collection of short videos, developers from Mozilla and Telenor explain in a few steps how you can get started with building applications for Firefox OS.</dd>
+</dl>
+
+<h2 id="Building_blocks">Building blocks</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Building_blocks">Building Blocks</a></dt>
+ <dd>The Firefox OS Building Blocks are reusable UI components (also called 'common controls') that reflect OS-wide design patterns. Building Blocks are used to create the interfaces of all <a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Gaia">Gaia</a> default apps. You are free to make use of these components in your own Firefox OS apps, or general Web apps.</dd>
+</dl>
+
+<h2 id="Styleguides">Styleguides</h2>
+
+<dl>
+ <dt><a href="http://www.mozilla.org/en-US/styleguide/products/firefox-os/">Firefox OS Visual styleguide</a></dt>
+ <dd>Our style guide for Firefox OS visual design, covering colours, typeface, backgrounds, app icons, and the design of specific UI elements.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Copy_styleguide">Firefox OS Copy styleguide</a></dt>
+ <dd>This guide outlines the rules we follow for writing Firefox OS app copy, but can be used as a general guide to writing good copy for any app interfaces.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Firefox_OS_in_Arabic">Firefox OS in Arabic</a></dt>
+ <dd>A guide to the specific UX design implementation Firefox OS has in place for dealing with Arabic (and other RTL languages.)</dd>
+</dl>
+
+<h2 id="Assets">Assets</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Design_asset_library">Firefox OS design asset library</a></dt>
+ <dd>In this section you'll find design assets, artwork, graphic templates, fonts and other materials that will be helpful as you design Firefox OS/Gaia apps.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Icon_font">Firefox OS icon font</a></dt>
+ <dd>Firefox OS has its own icon font set available: this article explains how to use it in your own apps.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Transitions">Firefox OS transitions</a></dt>
+ <dd>A reference to some of the transitions used in Firefox OS to move between different states in apps, including animated GIFs demonstrating the animations used, plus code samples to show the CSS animation code needed to implement these animations.</dd>
+</dl>
+
+<h2 id="References">References</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Firefox_OS_device_APIs">Firefox OS device APIs</a></dt>
+ <dd>This article provides a list of pages covering those APIs, as well as the <a href="https://developer.mozilla.org/en-US/Apps/Build/Manifest">app manifest</a> permissions for each one.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Firefox_OS_app_tools">Firefox OS app tools</a></dt>
+ <dd>This page provides a list of useful tools, libraries, examples, etc. that are useful for Firefox OS app developers, whether you want a code template to copy, or need help with adding a specific feature to your Firefox OS app.</dd>
+</dl>
+
+<h2 id="Other_app_topics">Other app topics</h2>
+
+<dl>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/Porting_Chrome_apps">Porting Chrome apps to Firefox OS Apps</a></dt>
+ <dd>This article discusses the differences between Chrome apps and Firefox OS Apps, and how you can convert between the two.</dd>
+ <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_apps/App_development_FAQ">App development FAQ</a></dt>
+ <dd>This FAQ is a compilation of answers to common app development questions.</dd>
+</dl>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Mozilla/Marketplace">Firefox Marketplace</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/firefox_os_faq/index.html b/files/ja/archive/b2g_os/firefox_os_faq/index.html
new file mode 100644
index 0000000000..0f0855d7a5
--- /dev/null
+++ b/files/ja/archive/b2g_os/firefox_os_faq/index.html
@@ -0,0 +1,23 @@
+---
+title: Firefox OS のよくある質問
+slug: Archive/B2G_OS/Firefox_OS_FAQ
+translation_of: Archive/B2G_OS/Introduction
+---
+<dl>
+ <dt><span class="seoSummary"><span style="font-size: 14px; font-weight: normal; line-height: 1.5;">Firefox OS (Mozilla の新しいモバイルOS) についてのよくある質問があります。あなたの疑問が回答されていない場合、</span><span style="font-size: 14px; line-height: 1.5; font-weight: normal;"><a href="https://developer.mozilla.org/ja/Firefox_OS">Firefox OS documentation</a> ページでも探してみて</span></span>下さい。</dt>
+ <dt> </dt>
+ <dt>Firefox OS とは何ですか?</dt>
+ <dd>オープン Web 標準のみで構築されている新しいモバイル端末向け OS です。このため、端末のすべての機能 (電話、メッセージ、ブラウジングなど) が携帯端末の下位レイヤーにまでアクセスできる HTML5 アプリケーションとして開発されています (他の環境 (エコシステム) ではネイティブアプリのみが可能です)。</dd>
+ <dt>開発者端末はどこで入手できますか?</dt>
+ <dd><a href="http://www.everbuying.com/product549652.html">everbuying </a>のウェブサイトで、開発リファレンス端末である<a href="/ja/Firefox_OS/Developer_phone_guide/Flame">Flame </a>を購入することが出来ます。</dd>
+ <dt>端末を購入せずに Firefox OS 向けアプリの開発はできますか?</dt>
+ <dd>もちろんです。Android 上 (<a href="https://hacks.mozilla.org/2012/10/firefox-marketplace-aurora/">Firefox 向け Marketplace</a> を利用) やデスクトップで <a href="https://hacks.mozilla.org/2012/12/firefox-os-simulator-1-0-is-here/">Firefox OS simulator</a> を利用すればアプリのテストができます。</dd>
+ <dt>自分の端末に Firefox OS をダウンロードしするにはどこからしたらよいですか?</dt>
+ <dd><a href="/ja/Firefox_OS/Building_and_installing_Firefox_OS">Firefox OS のビルドとインストール</a>をご覧ください。</dd>
+ <dt>Firefox OS でアプリをテストするには?</dt>
+ <dd>Android か Firefox OS simulator を利用してください。</dd>
+ <dt>Web API の一覧はどこにありますか?また、標準化は行われていますか?</dt>
+ <dd>Web API の完全なリストは <a href="https://wiki.mozilla.org/WebAPI#APIs">https://wiki.mozilla.org/WebAPI#APIs</a> でご確認ください。 <a href="https://hacks.mozilla.org/2012/01/mozilla-joins-the-w3c-dap-webapi-progress/">標準化も進行中 </a>です。</dd>
+ <dt>Web API はクロスプラットフォームを前提に標準化されていますか?</dt>
+ <dd>はい。API はパートナーやベンダーと共に開発してきた成果です。また、一部はすでに他のプラットフォームでの動作確認が済んでいます。エンドユーザが所有するハードウェアへ Web アプリがアクセスできるようにすることはほとんどすべての技術企業が取り扱っている問題です。私たちが提供していることが他のプラットフォームへ適用するのによい出発点となることでしょう。</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/firefox_os_usage_tips/index.html b/files/ja/archive/b2g_os/firefox_os_usage_tips/index.html
new file mode 100644
index 0000000000..d57c89d731
--- /dev/null
+++ b/files/ja/archive/b2g_os/firefox_os_usage_tips/index.html
@@ -0,0 +1,19 @@
+---
+title: Firefox OS usage tips
+slug: Archive/B2G_OS/Firefox_OS_usage_tips
+tags:
+ - Firefox OS
+ - Tips
+translation_of: Archive/B2G_OS/Firefox_OS_usage_tips
+---
+<dl>
+ <dd><span class="seoSummary">電話機の開発者機能と、それが何をするのかを説明します (Settings &gt; Device information &gt; More information &gt; Developer)</span></dd>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/Firefox_OS_usage_tips/Remote_debugging" title="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS/Remote_debugging">リモートデバッグ</a></dt>
+ <dd>電話機のリモートデバッグのセットアップ方法</dd>
+ <dt><a href="/ja/Firefox_OS/Firefox_OS_usage_tips/Unlocking_your_phone">電話機のロック解除</a></dt>
+ <dd>電話機のロック解除する基本手順</dd>
+ <dt><a href="/ja/Firefox_OS/Debugging/taking_screenshots" title="/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks/taking_screenshots">スクリーンショットを撮る</a></dt>
+ <dd>Firefox OS 電話機でのスクリーンショットの撮り方</dd>
+</dl>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/index.html b/files/ja/archive/b2g_os/index.html
new file mode 100644
index 0000000000..54a2c5ae63
--- /dev/null
+++ b/files/ja/archive/b2g_os/index.html
@@ -0,0 +1,167 @@
+---
+title: B2G OS
+slug: Archive/B2G_OS
+tags:
+ - B2G
+ - B2G OS
+ - Basic
+ - Gaia
+ - Gecko
+ - Gonk
+ - Overview
+ - b2g smartphone os
+ - getting started with b2gos
+ - web based os from mozilla
+ - web os gecko
+translation_of: Archive/B2G_OS
+---
+<div class="summary"><span class="seoSummary">B2G OS は、オープンウェブのための完全にスタンドアロンなオペレーティングシステムです。これは、Mozilla コミュニティにより開発されたオープンソースプロジェクトであり、Firefox OS の基盤を形成します。</span></div>
+
+<p><strong>B2G OS</strong> は、コミュニティが保守するスマートフォンやタブレット、スマート TV、コネクテッドデバイス向けのオープンソースのオペレーティングシステムです。このプロジェクトは 2011 年に<a href="https://wiki.mozilla.org/Booting_to_the_Web">開始され</a>、Linux カーネルと Gecko レンダリングエンジンをベースとしています。ユーザーインターフェイス全体が Web 技術 (HTML や CSS、JavaScript) で構築され、<a href="/ja/Apps">Web アプリケーション</a>として起動、使用することができます。Mozilla が商用 Firefox OS スマートフォンプログラムを<a href="https://discourse.mozilla-community.org/t/firefox-os-connected-devices-announcement/6864">終了</a>したため、Firefox OS プロジェクトのスマートフォン部分に関しては、Mozilla のボランティアコミュニティによって完全に維持され、B2G OS ブランドで開発されています。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/13140/B2g_wordmark.png" style="display: block; margin: 0 auto;"></p>
+
+<div class="note">
+<p><strong>注目</strong>: より多くの人々を集めるため、<a href="https://wiki.mozilla.org/B2G/Transition_Project/Call_For_Contribution">貢献者募集</a>と<a href="https://discourse.mozilla-community.org/t/updated-9th-july-call-for-app-maintainers-adopt-an-app/9300/1">アプリ再開発者の募集</a>が行われています。共有して多くの人に知らせてください。</p>
+</div>
+
+<div class="column-container">
+<div class="column-third">
+<h2 id="開発を手助けするには">開発を手助けするには</h2>
+
+<ul>
+ <li>バグを報告・解決する (メタバグは <a class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1252143" rel="nofollow">bug 1252143</a> です)</li>
+ <li>失敗している <a class="external text" href="https://developer.mozilla.org/docs/Mozilla/Firefox_OS/Automated_testing" rel="nofollow">テスト</a> の修正を助ける</li>
+ <li>Gaia の<a class="external text" href="https://mozilla-b2g.github.io/gaia">スマートフォンアプリ</a>を移植する:
+ <ol>
+ <li>Web アプリに書き換える (または)</li>
+ <li>アプリを app:// から chrome:// に変更 (<a href="https://discourse.mozilla-community.org/t/why-gaia-apps-are-turned-to-chrome/8011">その理由</a>)、問題を見つけたらバグを報告する</li>
+ </ol>
+ </li>
+ <li><a href="https://developer.mozilla.org/docs/Mozilla/B2G_OS/Porting_B2G_OS">お持ちの携帯電話向けにB2G OSを移植する</a>、または、移植の保守を助ける</li>
+ <li>このドキュメントと Wiki の翻訳改善を助ける</li>
+ <li>スマートフォン向けの新しい機能を提案・実装する</li>
+</ul>
+</div>
+
+<div class="column-third">
+<h2 id="参加するには">参加するには</h2>
+
+<ul>
+ <li>メーリングリスト(日本語) (<a href="https://groups.google.com/forum/#!forum/mozilla-translations-ja">https://groups.google.com/forum/#!forum/mozilla-translations-ja</a>)</li>
+ <li>メーリングリスト(英語) (<a class="external text" href="https://lists.mozilla.org/listinfo/dev-fxos" rel="nofollow">dev-fxos</a>)</li>
+ <li><a class="external text" href="https://wiki.mozilla.org/IRC" rel="nofollow">IRC</a> (irc.mozilla.org #b2g)</li>
+ <li><a class="external text" href="https://discourse.mozilla-community.org/c/b2g-os-participation">Discourse</a> (フォーラム)</li>
+ <li><a class="external text" href="https://telegram.me/B2GOS" rel="nofollow">Telegram グループ: B2GOS</a></li>
+ <li>Twitter の <a>Boot2Gecko</a> をフォロー、またはハッシュタグ <a href="https://twitter.com/hashtag/B2GOS?src=hash">#B2GOS</a></li>
+ <li><a href="https://wiki.mozilla.org/B2G/Transition_Project/Working_Groups">ワーキンググループ</a></li>
+ <li><a href="https://github.com/mozilla-b2g/B2GOS-community/issues">GitHub</a> 上のドキュメンテーションの issue tracker</li>
+ <li><a class="external text" href="https://wiki.mozilla.org/B2G/Meeting" rel="nofollow">B2G Weekly Meeting</a>: 技術開発ステータスの更新情報</li>
+</ul>
+
+<p>B2GOS ミーティングとコミュニティの Working Groups ミーティングに参加するには、この<a href="https://calendar.google.com/calendar/embed?src=mozilla.com_2d3638353137343333373332@resource.calendar.google.com">カレンダー</a>に登録してください。これらは、<a href="https://discourse.mozilla-community.org/c/b2g-os-participation">Discourse</a> でアナウンスされています。ここで、参加方法やミーティング記録などの情報を得ることができます。</p>
+</div>
+
+<div class="column-third">
+<h2 id="サポート端末">サポート端末</h2>
+
+<ul>
+ <li><a href="https://discourse.mozilla-community.org/t/building-b2g-os-for-aries-z3c/8082">Sony Xperia Z3C</a> (開発者向け端末)</li>
+ <li><a href="https://discourse.mozilla-community.org/t/flame-builds/8548">Flame</a> (開発者向け端末)</li>
+ <li><a href="https://discourse.mozilla-community.org/t/zte-open-c/8402">ZTE Open C</a></li>
+ <li><a href="https://discourse.mozilla-community.org/t/test-b2gos-on-nexus-5/9405/1">Nexus 5</a></li>
+ <li>WileyFox Swift</li>
+ <li>Nexus 4 (WIP*)</li>
+ <li><a href="https://discourse.mozilla-community.org/t/fairphone-2-support-for-b2g-installer-landed/8334">Fairphone 2</a> (WIP)</li>
+ <li><a href="https://discourse.mozilla-community.org/t/b2g-os-flamingo-sony-xperia-e3-builds/8361">Sony Xperia E3 </a> (WIP)</li>
+ <li><a href="https://discourse.mozilla-community.org/t/support-for-amami-xperia-z1c-building-debugging-providing-builds/8348">Sony Xperia Z1C</a> (WIP)</li>
+ <li><a href="https://discourse.mozilla-community.org/t/wip-xiaomi-redmi-1s-hongmi-1s/10273">Xiaomi Redmi 1S</a> (WIP)</li>
+</ul>
+
+<p>その他の詳しい情報は、<a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_Firefox_OS/Compatible_Devices">互換性のある端末のページ</a> を参照してください。</p>
+
+<p><a href="/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/B2G_installer_add-on">B2G installer</a> アドオンを使うと、お持ちの対応端末に簡単にフラッシュできます。</p>
+
+<p>お持ちの端末が一覧にない場合は、デスクトップで <a href="/ja/docs/Mozilla/B2G_OS/Mulet">Mulet</a> をお試しください。</p>
+
+<p>*WIP = Work In Progress.</p>
+</div>
+</div>
+
+<div class="note">
+<p><strong>注記</strong>: いくつかのページは <a href="/en-US/docs/Archive/Firefox_OS">MDN アーカイブ</a> へ移動しました。何か問題を見つけたり、アーカイブの中に元に戻すべきセクションがあればお知らせください。</p>
+</div>
+
+<p> </p>
+
+<h2 id="Subnav">Subnav</h2>
+
+<ol>
+ <li><a href="docs/Mozilla/B2G_OS/B2G_OS_Architecture">B2G OS アーキテクチャ</a>
+
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Platform/Architecture">B2G OS アーキテクチャ</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/API">B2G OS API</a></li>
+ </ol>
+ </li>
+ <li><a class="toggler" href="/docs/Mozilla/B2G_OS/Developing_Gaia">Gaia</a>
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia">Gaia の概要</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Gaiaを実行する様々な方法</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Gaia コードベースを実行する</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Gaia を開発する</a>
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Gaia コードベースを理解する</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Gaia コードを変更する</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Gaia コードの変更をテストする</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Gaia のパッチを提出する</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia ビルドシステムの入門</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make オプションのリファレンス</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia ツールのリファレンス</a></li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">B2G OS をビルドする </a>
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">ビルドの概要</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS ビルド過程の要約</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">ビルドの前提条件</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">初めてのビルドを準備する</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building">B2G OS をビルドする</a>
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Building">B2G OS をビルドする</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Mac OS X で Flame 用のB2G OSをビルドする</a></li>
+ <li><a href="https://developer.mozilla.org/docs/Mozilla/B2G_OS/Building/Building_for_Fairphone">Fairphone用のビルド</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G ビルド変数のリファレンスシート</a></li>
+ </ol>
+ </li>
+ </ol>
+ </li>
+ <li><a href="/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">デスクトップ版 B2G OS を実行する</a>
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Mulet">Run B2G OS on desktop using Mulet</a></li>
+ </ol>
+ </li>
+ <li><a href="/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">モバイル端末に B2G OS をインストールする</a>
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">モバイル端末に B2G OS をインストールする</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ </ol>
+ </li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">互換端末</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">B2G OS の更新を作成する</a>
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">B2G OS 更新パッケージを作成して適用する</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">FOTA コミュニティビルドの作成と配布</a></li>
+ </ol>
+ </li>
+ <li><a class="toggler" href="/docs/Mozilla/B2G_OS/Porting_B2G_OS">B2G OS を移植する</a>
+ <ol>
+ <li><a href="/docs/Mozilla/B2G_OS/Porting_B2G_OS">移植の概要</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">移植の基礎</a></li>
+ <li><a href="/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">CyanogenMod 上に移植する</a></li>
+ </ol>
+ </li>
+</ol>
diff --git a/files/ja/archive/b2g_os/installing_boot_to_gecko_on_a_mobile_device/index.html b/files/ja/archive/b2g_os/installing_boot_to_gecko_on_a_mobile_device/index.html
new file mode 100644
index 0000000000..a1f89987a0
--- /dev/null
+++ b/files/ja/archive/b2g_os/installing_boot_to_gecko_on_a_mobile_device/index.html
@@ -0,0 +1,160 @@
+---
+title: B2G OS をモバイル端末にインストールする
+slug: Archive/B2G_OS/Installing_Boot_to_Gecko_on_a_mobile_device
+tags:
+ - B2G
+ - Mobile
+translation_of: Archive/B2G_OS/Installing_on_a_mobile_device
+---
+<div class="summary">
+<p><a href="/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites">サポートされているモバイル端末</a>用 Boot to Gecko のビルドが完了したら、インストールしてください。この記事では、インストールの全過程を解説します。</p>
+</div>
+
+<div class="note"><strong>注記:</strong> 初めてスマートフォンに書き込む場合は、Android 4 (Ice Cream Sandwich) が<strong>絶対に</strong>インストールされていなければなりません。そうしないと、このプロセスは正しく動作しません。既に B2G の初回インストールを行っているのであれば、それを単純に更新するだけです。</div>
+
+<div class="note"><strong>補足:</strong> リファレンス端末 (例: Flame) については、スクラッチからイメージ全体をビルドするのをスキップできます。詳細は<a href="/ja/docs/Mozilla/B2G_OS/Phone_guide/Flame/Updating_your_Flame">こちらのガイド</a>を見てください。</div>
+
+<h2 id="ADBをインストールする">ADBをインストールする</h2>
+
+<p><strong>OSX では</strong></p>
+
+<p>OSX に homebrew がインストール済みであれば:</p>
+
+<pre>brew install android-platform-tools</pre>
+
+<p>なければ、Android Developer Tools をダウンロードし、バイナリを PATH に追加してください。</p>
+
+<p><strong>Ubuntu では</strong></p>
+
+<pre>sudo apt-get install android-tools-adb</pre>
+
+<h2 id="スマートフォンにフラッシュする">スマートフォンにフラッシュする</h2>
+
+<p>スマートフォンにすべてを書き込むときは、単にスマートフォンを接続し、次のコマンドを入力してください:</p>
+
+<pre>./flash.sh
+</pre>
+
+<p>たったこれだけです。これで、B2G の現時点のビルドが端末にフラッシュされます。</p>
+
+<p>ただし、Gaia の大幅に変更されたリビジョンをまたいで更新する場合、次のコマンドも必要になるでしょう:</p>
+
+<pre class="brush: bash">cd gaia
+make reset-gaia</pre>
+
+<p>これは、Gaia に保存された全データを消去しますが、廃止された Gaia の設定や prefs も消去するので、"クリーンな" Gaia を起動できるようになります。理論的には、<code>./flash.sh</code> で既に行われていますが、いくつかの端末 (例えば hamachi) では、<code>./flash.sh</code> ではモジュールのサブセットだけがフラッシュされます (<code>./flash.sh -f</code> では強制的にすべてをフラッシュします)。</p>
+
+<h3 id="端末用_udev_ルールを構成する">端末用 udev ルールを構成する</h3>
+
+<p>Linux で以下が表示された場合、</p>
+
+<pre>&lt; waiting for device &gt;</pre>
+
+<p>これは、adb 用の udev ルールとは異なる、fastboot 端末用の udev ルールが追加されていない可能性が高いことを意味しています (./flash.sh を sudo つきで実行する必要があるだけかもしれません)。ここで <code>lsusb</code> を実行すると USB ベンダ ID を確認できます。例えば Google の USB ベンダー ID: 18d1 の場合は、<code>/etc/udev/rules.d/51-android.rules</code> に、以下の行を追加するとよいでしょう:</p>
+
+<pre>SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"</pre>
+
+<div class="note"><strong>補足:</strong> Linux でとても有用な <code>libusb</code> エラー "-3" が発生した場合、USB 端末にアクセスするために root 権限が必要であることを意味します。<code>sudo</code> を使用して、もう一度スクリプトを実行してください。</div>
+
+<div class="note"><strong>補足 2</strong> Unagi または Geeksphone の Keon 端末をご使用の場合、次のような 2 行が必要です。1 行目は元のスマートフォンのベンダー ID、2 行目は Google のベンダー ID です。</div>
+
+<h3 id="Hamachi_および_Helix、Leo_端末に関する特記事項">Hamachi および Helix、Leo 端末に関する特記事項</h3>
+
+<p>スマートフォンが hamachi または helix、leo 端末の場合、./flash.sh スクリプトはデフォルトで gecko と gaia のみをフラッシュします。 OEM をベースビルドとしてフラッシュし、ファームウェアと gonk 階を取得した上で gecko と gaia をフラッシュすることが推奨されます。イメージファイルを使ってフラッシュしたい場合は、./flash.sh -f で上書きフラッシュしてください。これは、端末へのフラッシュにイメージファイルを使用します。</p>
+
+<h3 id="Samsung_Galaxy_S2_に関する特記事項">Samsung Galaxy S2 に関する特記事項</h3>
+
+<p>あなたのスマートフォンが Galaxy S2 で heimdall 1.3.2 (最新バージョン。<code>heimdall version</code> で確認してください) を使用している場合、"FACTORYFS upload failed!" という警告エラーに続けて "Heimdall flashing failed" というエラーといくつかの追加情報が表示されるかもしれません。これは、実際には成功しているので、警告を無視して構いません。</p>
+
+<p>この奇妙な振る舞いを止めさせるには、Heimdall の <a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">ソースのコピー</a> を入手し、1.3.1 リリースへダウングレード ("<code>git checkout fbbed42c1e5719cc7a4dceeba098981f19f37c06</code>") してください。次に、<code>README</code> に従ってコンパイルしてインストールすればエラーが出力されなくなります。しかし、これは必ずしも必要な手順ではありません。</p>
+
+<div class="note">
+<p>注記: イメージサイズが問題でないかもしれません。次のヒントを見てください。</p>
+</div>
+
+<p>Heimdall のすべてのバージョンで、100MB 以上の system.img をフラッシュできません。次のコマンドを実行してください:</p>
+
+<pre>ls -l ./out/target/product/galaxys2/system.img
+</pre>
+
+<p>イメージファイルのサイズが大きいことが確認できます。あまりにも大きい場合は、IRC で質問してください。これには、2 つの段階で対処する方法があります。</p>
+
+<p>heimdall コマンドの引数が動作せず、その結果フラッシュに失敗するかもしれません。./flash.sh スクリプトを変更する必要があるでしょう。引数は大文字でないといけません (l.185):</p>
+
+<pre>case $project in
+ "system")
+ $HEIMDALL flash --FACTORYFS out/target/product/$DEVICE/$project.img
+ ;;
+
+ "kernel")
+ $HEIMDALL flash --KERNEL device/samsung/$DEVICE/kernel
+ ;;
+
+ "")
+ $HEIMDALL flash --FACTORYFS out/target/product/$DEVICE/system.img --KERNEL device/samsung/$DEVICE/kernel &amp;&amp;
+ update_time
+ ;;
+ esac</pre>
+
+<h2 id="Samsung_Galaxy_S2_用の追加手順">Samsung Galaxy S2 用の追加手順</h2>
+
+<p>Galaxy S2 をフラッシュする場合、次の追加手順に従ってください。<code>flash.sh</code> スクリプトで Gaia が自動的にフラッシュされないため、次のコマンドも実行する必要があります:</p>
+
+<pre>./flash.sh gaia
+</pre>
+
+<h2 id="スマートフォンを_fastboot_するため特定パーティションをフラッシュする">スマートフォンを fastboot するため特定パーティションをフラッシュする</h2>
+
+<p>特定のパーティションを fastboot スマートフォン (Samsung Galaxy S2 以外の端末) にフラッシュしてください。例えば:</p>
+
+<pre>./flash.sh system
+./flash.sh boot
+./flash.sh user
+</pre>
+
+<p><strong>警告</strong>: user をフラッシュすると、少なくともユーザ固有のデータ (連絡先など) が削除されます。</p>
+
+<h2 id="特定のモジュールを更新する">特定のモジュールを更新する</h2>
+
+<p>フラッシュ時にコンポーネントの名前を指定すると、B2G の特定のコンポーネントを更新できます。例えば:</p>
+
+<pre>./flash.sh gaia
+./flash.sh gecko
+</pre>
+
+<p>1 個のアプリケーションのみを更新するには、BUILD_APP_NAME 環境変数を使用してください:</p>
+
+<pre>BUILD_APP_NAME=calendar ./flash.sh gaia</pre>
+
+<p>ご使用のスマートフォンが開発者向けでない場合 (アプリのテストや最適化に興味がない場合など)、次のようにして gaia を更新できます:</p>
+
+<pre>VARIANT=user ./flash.sh gaia</pre>
+
+<h2 id="次のステップへ">次のステップへ</h2>
+
+<p>この時点で、あなたのスマートフォンは Boot to Gecko が動作しているはずです! いよいよ実験や、<a href="/docs/Mozilla/Firefox_OS/Application_development">コード書き</a>、<a href="/docs/Mozilla/Firefox_OS/Platform/Testing">テスト</a>、<a href="/docs/Mozilla/Firefox_OS/Debugging">デバッグ</a> の時がやってきました!</p>
+
+<div class="note"><strong>注記 :</strong> 有用な使い方のヒント: ビルドした B2G がロック画面で起動し、スマートフォンを解除をするパスコードが要求された場合、パスコードのデフォルトコードは 0000 です。</div>
+
+<h2 id="トラブルシューティング">トラブルシューティング</h2>
+
+<p>ここには、B2G をインストールした直後、または新バージョンに更新した直後に端末が正しく動作しなかった場合の対処法について、いくつかのヒントがあります。</p>
+
+<h3 id="UI_が起動しない場合">UI が起動しない場合</h3>
+
+<p>スマートフォンを更新してユーザインターフェイスが起動しない場合は、リセットして古い設定などのデータを消去してください。これで再び動作するようになりますが、ユーザ固有のデータ (連絡先など) が削除されるので注意してください。次のコマンドを実行してください:</p>
+
+<pre>cd gaia
+make reset-gaia
+</pre>
+
+<h3 id="開発者モードから製品モードに切り替えたい場合">開発者モードから製品モードに切り替えたい場合</h3>
+
+<pre>cd gaia
+make reset-gaia PRODUCTION=1</pre>
+
+<p><strong>警告</strong>: reset-gaia は、ユーザ固有のデータ (連絡先など) を削除します。</p>
+
+<h3 id=".flash.sh_実行時の_image_is_too_large_エラーメッセージ">./flash.sh 実行時の "image is too large" エラーメッセージ</h3>
+
+<p>これは、フラッシュする前にスマートフォンをルート化する必要があることを意味します。B2G は root パーティションに書き込まれる必要があるため、インストールするにはスマートフォンがルート化されている必要があります。</p>
diff --git a/files/ja/archive/b2g_os/introduction/index.html b/files/ja/archive/b2g_os/introduction/index.html
new file mode 100644
index 0000000000..ee7f4d663b
--- /dev/null
+++ b/files/ja/archive/b2g_os/introduction/index.html
@@ -0,0 +1,86 @@
+---
+title: Firefox OS 概論
+slug: Archive/B2G_OS/Introduction
+tags:
+ - B2G
+ - Firefox OS
+translation_of: Archive/B2G_OS/Introduction
+---
+<p><strong>Firefox OS</strong>(「Boot to Gecko」もしくは「B2G」というコードネームでも呼ばれる)は Linux と Mozilla の Gecko テクノロジをベースにした Mozilla のオープンソースモバイルオペレーティングシステムです。Firefox OS は、いまだ強力なプラットフォームがアプリケーション開発者に優れた製品を作成する機会を提供している状況において、プロプライエタリ技術が使われていないモバイルオペレーティングシステムです。また、柔軟で、エンドユーザを満足させるのに十分な能力があります。</p>
+<p>Web 開発者にとって、一番理解すべき重要なことは、全てのユーザインタフェースは Web アプリであるということです。何が表示可能なのかということも、他の Web アプリを起動するといったこともです。ユーザインタフェースに対するどのような修正も、どんなアプリケーションを作るのであっても、モバイルデバイスのハードウェアやサービスへのアクセスを改良するようなものであったとしても、Firefox OS で動作するのは Web ページです。</p>
+<p>Firefox OS のビルドやインストール方法については、<a href="/ja/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="ja/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">こちらの便利なガイド</a>で学ぶことができます</p>
+<h2 id="ハードウェア要件">ハードウェア要件</h2>
+<p>最新の ARM ベースのモバイルデバイスへの Firefox OS の移植は可能なはずです。このセクションでは基本的なハードウェア要件、及び、推奨されるハードウェアの機能について扱います。</p>
+<table>
+ <thead>
+ <tr>
+ <th scope="col">コンポーネント</th>
+ <th scope="col">最小</th>
+ <th scope="col">推奨</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th scope="row">CPU</th>
+ <td>ARMv6</td>
+ <td>Cortex A5 以上<br>
+ ARMv7 NEON</td>
+ </tr>
+ <tr>
+ <th scope="row">GPU</th>
+ <td>-</td>
+ <td>Adreno 200 以上</td>
+ </tr>
+ <tr>
+ <th scope="row">接続</th>
+ <td>-</td>
+ <td>WiFi<br>
+ 3G</td>
+ </tr>
+ <tr>
+ <th scope="row">センサ</th>
+ <td>-</td>
+ <td>加速度計<br>
+ 近接センサ<br>
+ 環境光センサ<br>
+ A-GPS</td>
+ </tr>
+ </tbody>
+</table>
+<p>また、統一されたカラープロファイル(グラフィックデバイスドライバによる実装)、及び、ミュート/ミュート解除、停止/再生のヘッドフォンサポートを、デバイスで提供することを推奨します。どれも最近のスマートフォンでは一般的な機能です。</p>
+<h2 id="Usage_tips" name="Usage_tips">使用法のヒント</h2>
+<p>このセクションでは、実際に Firefox OS を使用する際のヒントをいくつか提供します。これは我々が本当の使用法のドキュメントを作成するまでのプレースホルダみたいなものです。</p>
+<h3 id="Unlocking_the_phone" name="Unlocking_the_phone">スマートフォンのロック解除</h3>
+<p>ビルドされた Firefox OS の起動時にデバイスのロックを解除するパスコードを確認されますが、デフォルトコードは 0000 です。ロックスクリーンの開発とテストを行っている間は、一部のビルドはこのような振る舞いをします。</p>
+<h3 id="Capturing_a_screenshot" name="Capturing_a_screenshot">スクリーンショットのキャプチャ</h3>
+<p>スクリーンショットのキャプチャはとても簡単で、電源と home ボタンを同時に押すだけです。スクリーンショットの画像は、デバイス上の <code>/sdcard/screenshots</code> の中にあります。</p>
+<p>もし、なんらかの理由で動作しないときは、Firefox OS ビルドシステムをインストールした Linux や Mac OS X コンピュータ上のターミナルから行うことも可能です。</p>
+<ol>
+ <li>ffmpeg を必ずインストールしてください。
+ <ol>
+ <li>Mac では、MacPorts を使うときは <code>sudo port install ffmpeg</code> を実行してください。homebrew を使うときは、<code>brew install ffmpeg</code> です。</li>
+ <li>Linux (Ubuntu/Debian) では、<code>sudo apt-get install ffmpeg</code> を実行してください。</li>
+ </ol>
+ </li>
+ <li>スマートフォンとコンピュータは USB ケーブルを使用して接続します。</li>
+ <li>スマートフォンを、スクリーンショットを撮りたい状況にします。</li>
+ <li><code>cd</code> して <code>B2G/gaia</code> ディレクトリに移動します。</li>
+ <li><code>make screenshot</code></li>
+ <li><code>screenshot.png</code> という名前で、スクリーンショットが撮れているはずです。</li>
+</ol>
+<h3 id="ボタンとコントロール">ボタンとコントロール</h3>
+<p>標準的な Firefox OS デバイスには少数の物理的なハードウェアボタンがあります。</p>
+<dl>
+ <dt>
+ Home ボタン</dt>
+ <dd>
+ このボタンは通常スクリーン下の中央にあります。これを押すことでアプリランチャに戻ります。長押しすると表示を切り替えるカードが開き、その画面で表示されているアプリをスワイプすると終了します。</dd>
+ <dt>
+ ボリュームコントロールロッカー</dt>
+ <dd>
+ 左側面に沿ってボリュームロッカーがあります。ロッカーの上半分を押すとオーディオのボリュームが上がり、下半分を押すとボリュームが下がります。</dd>
+ <dt>
+ 電源ボタン</dt>
+ <dd>
+ 電源ボタンはデバイスの右上です。</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/introduction_to_gaia/index.html b/files/ja/archive/b2g_os/introduction_to_gaia/index.html
new file mode 100644
index 0000000000..8aca9f9c75
--- /dev/null
+++ b/files/ja/archive/b2g_os/introduction_to_gaia/index.html
@@ -0,0 +1,38 @@
+---
+title: Gaia 概論
+slug: Archive/B2G_OS/Introduction_to_Gaia
+tags:
+ - B2G
+ - Gaia
+ - NeedsContent
+ - Out of Date
+translation_of: Archive/B2G_OS/Platform/Gaia/Introduction_to_Gaia
+---
+<div class="summary">
+<p><a href="/ja/docs/Mozilla/Firefox_OS/Gaia" title="Mozilla/Firefox_OS/Gaia">Gaia</a> は Boot to Gecko( B2G )のユーザインタフェースです。シンプルな Web アプリケーションで、B2G デバイス、エミュレータ、デスクトップビルド、Firefox ビルドのローカルで実行されます。アプリを追加したり、Gaia に変更を行う場合に知っておく必要があるのは、<a href="/ja/docs/JavaScript" title="JavaScript">JavaScript</a>、<a href="/ja/docs/HTML" title="HTML">HTML</a>、<a href="/ja/docs/CSS" title="CSS">CSS</a> のような Web テクノロジです。</p>
+</div>
+
+<h2 id="The_Gaia_lock_screen" name="The_Gaia_lock_screen">Gaia ロック画面</h2>
+
+<p>ロック画面はネットワークキャリアや、現在の時刻と日付、やユーザが電話のロック解除や直接カメラ撮影を起動するスライドバーを表示しています。ユーザがパスコードロックをセットしている場合、ロック画面はパスコード入力インターフェイスも表示します。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/7611/gaia-lockscreen.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p>
+
+<p>いくつかの端末で、デフォルトでロック画面が有効で、その場合端末を解除するデフォルト PIN は "0000" です。時間とともに、この機能は具体化されていくことでしょう。</p>
+
+<h2 id="The_default_Gaia_interface" name="The_default_Gaia_interface">デフォルト Gaia インターフェイス</h2>
+
+<p>Gaia のデフォルトインターフェイスは、ここで見られるとおり、代表的なスマートフォンで見られるものと似ています。</p>
+
+<p><a href="/@api/deki/files/6276/=screenshot.png" title="screenshot.png"><img alt="Gaia Home" class="lwrap" src="/files/4601/device-2013-01-24-163623.png" style="width: 320px; height: 480px; float: left;"></a> この画像は、もちろん、オペレーティングシステムとプレースホルダアイコン(といくつかのテストアプリケーション)のプレリリースバージョンです。一番上のステータスバーは操作しているスマートフォンのネットワーク(ネットワークのないデバイスに対しては"No SIM card")、ネットワークの強さ、WiFi シグナルの強さ、バッテリレベル、現在の時刻を表示します。</p>
+
+<p>画面の中央部分にはアプリケーションのアイコンを表示します。左と右にスワイプするとアイコン画面が出てきます。Gaia付属のデフォルトアプリについては <a href="https://developer.mozilla.org/ja/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia アプリ</a> ページで詳細を見る事ができます。</p>
+
+<p>画面の一番下は、一番よく使う 最大7 つのアプリケーションのドックです。中央部分からドックへアプリをドラッグ&amp;ドロップできます。</p>
+
+<h2 id="参考情報" style="">参考情報</h2>
+
+<ul>
+ <li><a href="https://developer.mozilla.org/ja/Firefox_OS/Platform/Gaia/Gaia_apps">Gaia アプリ</a>: このページは各アプリの詳細情報、例えば使用方法や、編集方法、を含みます。</li>
+ <li><a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Developer_settings">開発者設定</a>: Gaia 設定アプリ経由で有効にできる、色々な開発者設定の説明。</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/pandaboard/index.html b/files/ja/archive/b2g_os/pandaboard/index.html
new file mode 100644
index 0000000000..cd3e1b5caf
--- /dev/null
+++ b/files/ja/archive/b2g_os/pandaboard/index.html
@@ -0,0 +1,40 @@
+---
+title: Pandaboard
+slug: Archive/B2G_OS/Pandaboard
+tags:
+ - B2G
+ - Boot2Gecko
+ - Firefox OS
+ - Pandaboard
+translation_of: Archive/B2G_OS/Pandaboard
+---
+<p>これは Firefox OS を <a href="http://pandaboard.org/" title="http://pandaboard.org/">PandaBoard</a> に構築するためのガイドです。PandaBoard はモバイルオペレーティングシステム開発用の低コストの OMAP 4 をベースにした開発用基板です。</p>
+<p>以下の解説では、4 GB 以上の SD カードがあることを想定しています。</p>
+<h2 id="SD_カードのフォーマット">SD カードのフォーマット</h2>
+<p>SD カードのフォーマットは、こちらの<a href="http://omappedia.org/wiki/Minimal-FS_SD_Configuration" title="http://omappedia.org/wiki/Minimal-FS_SD_Configuration">ガイド</a>に従って行います。</p>
+<h2 id="USB_通信">USB 通信</h2>
+<p>PandaBoard で USB 通信を有効にするには、以下の<a href="http://source.android.com/source/initializing.html#configuring-usb-access" title="http://source.android.com/source/initializing.html">ステップ</a>に従って行います。B2G に対しては、安全に使用するために、ファイルモードを "0666" に設定します。</p>
+<p>PandaBoard にアクセス可能かどうかを確認するには、USB を使用してコンピュータに接続し、以下を実行してください :</p>
+<pre>lsusb</pre>
+<p>テキサス・インスツルメンツからの何かが表示されたら、PandaBoard が認識されたということです!表示されなかった場合ですが、私は全ての配線を外して PandaBoard のみを USB に接続したらうまくいきました。</p>
+<h2 id="ビルドとフラッシュメモリへの書き込み">ビルドとフラッシュメモリへの書き込み</h2>
+<p>PandaBoard 用に<a href="/ja/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build" title="ja/docs/Mozilla/Boot_to_Gecko/Preparing_for_your_first_B2G_build">構成</a>後に、<a href="https://github.com/mozilla/Negatus" title="https://github.com/mozilla/Negatus">Negatus</a> をプルします。これはデバイス上で実行することで、自動化やデバッグの支援を行うエージェントです。Negatus は<code>./build.sh</code>の実行後に自動的にビルドされますが、libnspr(<code>apt-get install libnspr4-dev</code>)をインストールする必要があります。イメージを<a href="/ja/docs/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko" title="/ja/docs/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko">ビルド</a>したら、いよいよ、PandaBoard のフラッシュメモリに書き込む、肝心な部分になります。</p>
+<p><a href="https://github.com/mozilla-b2g/android-device-panda" title="https://github.com/mozilla-b2g/android-device-panda">このページの README</a> の説明に従って、「Initial setup, part 3」までを実行してください。「Initial setup, part 1」はビルドする際に終了しているので、スキップ可能です。「Initial setup, part 3」が完了したら、ここに戻ります。</p>
+<p>さてこれで、<code>./flash.sh</code> コマンドを実行できるようになりましたので、多分、全てがうまくいくことでしょう。<code>flash.sh</code> スクリプトがユーザデータパーティションを削除しようとした場合は、その行を削除してください。同じく <a href="https://github.com/mozilla-b2g/android-device-panda" title="https://github.com/mozilla-b2g/android-device-panda">README</a> に既知の問題として記載されています。</p>
+<p>既知の問題に対する回避方法は以下の通りです :</p>
+<h3 id="USB_ブートを使用した際の_waiting_for_OMAP4XXX...">USB ブートを使用した際の "waiting for OMAP4XXX..."</h3>
+<p>もし、このメッセージが表示されたら、全てのケーブルを PandaBoard から外してください。PandaBoard に接続するのは USB のみです。電源は接続しません。この状態で、<code>sudo</code> で <code>usbboot</code> を実行してください。</p>
+<h3 id="フラッシュメモリに書き込み中の_Fastboot_エラー">フラッシュメモリに書き込み中の Fastboot エラー</h3>
+<p>Fastboot 中のコマンドの実行に問題が出た場合、私は <code>sudo</code>(例 : <code>sudo &lt;fastboot コマンド...&gt;</code> )でコマンドを実行することでうまくいきました。</p>
+<p>PandaBoard を Fastboot モードにする際に問題が発生した場合(例 : <code>fastboot devices</code> をコールしてもデバイスが表示されない )も、こんな感じにできます :</p>
+<ol>
+ <li>PandaBoard から全てのケーブルを外す</li>
+ <li>GPIO ボタンを押す</li>
+ <li>ボタンを押しながら、電源を接続する</li>
+ <li>ソリッドステータスライトをよく見て、ライトが点滅し始めたらすぐに、GPIO ボタンから指を放す</li>
+</ol>
+<p>これで PandaBoard は Fastboot モード になります。</p>
+<h3 id="adb_に接続できない場合">adb に接続できない場合</h3>
+<p>lsusb でデバイスを参照した時に、adb/fastboot デバイスに何もなく、ライトがオフになっていたら、電源を外して接続し直してください。ライトがオンになったら、adb に登録される間、少し(最大 30 秒)待つ必要があります。</p>
+<p>時々、フラッシュメモリへの書き込みが成功したと表示されても、失敗していることがあります。PandaBoard のフラッシュメモリに再書き込み(例 : <code>./flash.sh</code> を実行) して、もう一度試してみてください。最初に電源を接続し、次に USB ケーブルを接続することをお勧めします。</p>
+<p>もし root になっているにも関わらず、adb デバイスで <code>"??????????? no permision"</code> が発生したら、<a href="http://source.android.com/source/initializing.html" title="http://source.android.com/source/initializing.html">Android open source project サイト</a>の「Configuring USB Access」セクションを確認して、udev ルールを修正するか、正しい udev ルールを追加してください。変更後は udev サービスを再起動することを忘れないでください。</p>
diff --git a/files/ja/archive/b2g_os/performance/index.html b/files/ja/archive/b2g_os/performance/index.html
new file mode 100644
index 0000000000..ee8d9adb45
--- /dev/null
+++ b/files/ja/archive/b2g_os/performance/index.html
@@ -0,0 +1,226 @@
+---
+title: パフォーマンスの基本
+slug: Archive/B2G_OS/Performance
+tags:
+ - B2G
+ - Firefox OS
+ - Guide
+ - Performance
+translation_of: Web/Performance/Fundamentals
+---
+<div class="summary">
+<p><span class="seoSummary">パフォーマンスは効率とも言い換えられます。このドキュメントは、パフォーマンスとは何か、ブラウザープラットフォームがその改善にどう役立つか、そのテストと改善にどのようなツールやプロセスが使えるかを、Open Web Apps の文脈で一般的な視点から解説します。</span></p>
+</div>
+
+<h2 id="What_is_performance.3F" name="What_is_performance.3F">パフォーマンスとは何か?</h2>
+
+<p>究極的には、ユーザーによって知覚されるパフォーマンスが唯一重要なパフォーマンスです。ユーザーは、タッチ、動作、音声を通じてシステムに入力を与え、その引き替えに視覚、触覚、聴覚を通じて出力を感知します。パフォーマンスとは、ユーザーの入力に応えるシステム出力の質と言えます。</p>
+
+<p>他の条件がすべて同じであると仮定すれば、ユーザーによって知覚されるパフォーマンス (以降 UPP と言います) を除く一部の対象に対して最適化されたコードは、UPP に対して最適化されたコードとの競争に敗れます。ユーザーは、例えば、毎秒 100,000,000 件を処理するものの動作がギクシャクとした応答性の低いアプリより、毎秒 1,000 件のデータベーストランザクション処理しか行わなくても応答性の高いスムーズなアプリを好みます。もちろん、これは決して他の指標への最適化が無意味と言うことではありませんが、現実的な UPP 対象が優先されるのです。</p>
+
+<p>次のいくつかの小項目では、最も重要なパフォーマンス指標について取り上げ解説します。</p>
+
+<h3 id="Responsiveness" name="Responsiveness">応答性</h3>
+
+<p>応答性とは単に、ユーザーの入力に対してシステムがどれだけ速く出力 (複数になることもあります) を返すかということです。例えばユーザーは、スクリーンをタップしたときに、何らかの方法でピクセルに変化が起きると考えます。このインタラクションでは、応答性の指標はタップからピクセル変化までの所要時間が応答性の指標となります。</p>
+
+<p>応答性は時に、フィードバックで複数の段階を必要とします。アプリケーションの起動は特に重要なケースのひとつであり、これについては後ほど詳しく説明します。</p>
+
+<p>ユーザーは無視されたときに不満を募らせ腹を立てるという単純な理由から、応答性は重要です。ある入力に対して応答するまでの間、アプリは刻々とユーザーを無視していることになるのです。</p>
+
+<h3 id="Framerate" name="Framerate">フレームレート</h3>
+
+<p>フレームレートとは、システムがユーザーに表示するピクセルを変更する速度です。これはよく知られている概念です。例えば毎秒 60 フレームを表示するゲームは、理由を説明できなくても毎秒 10 フレームを表示するゲームよりも人々に好まれます。</p>
+
+<p>フレームレートは「サービス品質」の指標として重要です。コンピューターのディスプレイは現実をまねた光を届けることにより、ユーザーの「おろかな」目向けに設計されています。例えば、印刷された文字で覆われた紙はいくつかのパターンでユーザーの目に光子を反射します。ピクセルを操作することで、リーダーアプリは同様のパターンで光子を発してユーザーの目を「だまして」います。</p>
+
+<p>あなたの頭脳が推測するように、動作はギクシャク動いたり不連続であったりするのではなく、むしろスムーズかつ連続的に「更新」します。(ストロボはこれをひっくり返して、不連続な現実の錯覚を作り出すように脳への入力を減らすため、楽しいものです。) コンピューターのディスプレイ上では、単純により高いフレームレートの方が現実をより忠実に再現できます。</p>
+
+<div class="note">
+<p><strong>注</strong>: 人間は通常 60Hz より高いフレームレートの違いを知覚できません。これが、現代のほとんどのディスプレイが 60Hz でリフレッシュするよう設計されている理由です。例えばハチドリには、テレビがおそらくぎくしゃくして非現実的なものに見えるでしょう。</p>
+</div>
+
+<h3 id="Memory_usage" name="Memory_usage">メモリー使用量</h3>
+
+<p><strong>メモリー使用量</strong>もまた重要な指標です。応答性やフレームレートとは異なり、ユーザーはメモリー使用量を直接は知覚できませんが、メモリー使用量は「ユーザー状態」と密接しています。理想的なシステムは、常に 100% のユーザー状態を維持するでしょう: システム内の全アプリケーションが同時に動作し、また全アプリケーションが、ユーザーが直前にアプリケーションと行った対話によってもたらされた状態を維持します (アプリケーションの状態はコンピューターのメモリーに保存されることが、密接している理由です。)</p>
+
+<p>これは重要かつ直感に反した帰結を見ることとなります。よく設計されたシステムは、<strong>空き</strong>メモリーの量を最大化するようには最適化していないはずです。メモリーはリソースであり、また空きメモリーは使用していないリソースです。むしろよく設計されたシステムは、ユーザー状態を維持するために可能な限り多くのメモリーを<strong>使用する</strong>ように最適化して、同時に他の UPP の目的を達成します。</p>
+
+<p>それはシステムがメモリーを<strong>無駄使い</strong>して良いということではありません。システムが特定のユーザー状態を維持するのに必要なメモリーより多くのメモリーを使用することは、他のユーザー状態を保持するために使用できたりソースの無駄使いです。実際は、すべてのユーザー状態を維持できるシステムはありません。ユーザー状態のために賢くメモリーを割り当てることは、後ほど詳しく説明する通り重要事項です。</p>
+
+<h3 id="Power_usage" name="Power_usage">電気使用量</h3>
+
+<p>最後に挙げる指標は<strong>電気使用量</strong>です。メモリー使用量と同様に、端末がどれだけ長く他のすべての UPP の目的を維持できるかということから、ユーザーは間接的にのみ電気使用量を認識します。UPP の目的を達成するため、システムは必要最小限の電力量だけを消費しなければなりません。</p>
+
+<p>本ドキュメントでは、これらの指標でのパフォーマンスについて説明します。</p>
+
+<h2 id="Platform_performance" name="Platform_performance">プラットフォームパフォーマンスの最適化</h2>
+
+<p>本章では、Firefox OS と Gecko が全アプリケーションの水準より下で、パフォーマンスに対し通常どのように寄与しているかをおおまかに説明します。開発者あるいはユーザーの視点から「プラットフォームは何を行うか」という質問に答えます。</p>
+
+<h3 id="Web_technologies" name="Web_technologies">Web 技術</h3>
+
+<p>Web プラットフォームには多くのツールがあり、他より特定のジョブに対してより適しているものもあります。アプリケーションのロジックは JavaScript で記述します。グラフィックを表示する場合、開発者は HTML/CSS (高レベルな記述言語) か、<a href="/ja/docs/Web/HTML/Element/canvas" title="HTML の &lt;canvas> 要素 と Canvas スクリプティング API や WebGL API を使用して、グラフィックスやアニメーションを描画することができます。"><code>&lt;canvas&gt;</code></a> 要素が提供する低レベルな命令インターフェイス (<a href="/ja/docs/Web/WebGL">WebGL</a> を含む) を使用できます。HTML/CSS と Canvas の「中間」には <a href="/ja/docs/Web/SVG">SVG</a> があり、これは両方のメリットを提供します。</p>
+
+<p>HTML/CSS は、時にレンダリング時のピクセルレベルの制御や秒間数フレームを犠牲にしつつ、生産性を飛躍的に高めます。テキストや画像は自動的にリフローされ、UI 要素には自動的にシステムテーマが提供され、また異なる解像度や RTL 言語など、開発者が当初考慮しないかもしれない一部のユースケースについてシステムは「組み込みの」対応を提供します。</p>
+
+<p><code>canvas</code> 要素は、描画のためのピクセルバッファを開発者に直接与えます。これによって開発者は、レンダリングのピクセルレベルでの制御やフレームレートの正確な制御が可能となりますが、一方で様々な解像度や画面の向き、RTL 言語などに対応する必要があります。開発者は Canvas への描画に、よく知られた 2 次元描画 API か、OpenGL ES 2.0 にほぼ従う「ハードウェアに近い」バインディングである WebGL を使用できます。</p>
+
+<div class="note">
+<p><strong>注</strong>: Firefox OS は、<a href="/ja/docs/Web/HTML">HTML</a>、<a href="/ja/docs/Web/CSS">CSS</a>、<a href="/ja/docs/Web/JavaScript">JavaScript</a> といった Web 技術によって作られたアプリケーションに最適化されています。わずかな基本システムサービスを除き、Firefox OS で実行されるすべてのコードは Web アプリであり、Gecko エンジン上で動作します。OS のウィンドウマネージャーでさえ、HTML/CSS/JavaScript で記述されています。コアオペレーティングシステムがアプリケーションと同じ Web 技術で構築されているため、それら Web 技術のパフォーマンスは重要です。「逃げ道」はありません。これにより、サードパーティアプリも OS 独自の最適化によるあらゆる恩恵を受けられることから、開発者に大きなメリットをもたらします。プリインストールのコードのみ使える「魔法のようなパフォーマンス源」はありません。Firefox OS のパフォーマンスに関する詳細は <a href="/ja/Apps/Developing/Performance/Firefox_OS_performance_testing">Firefox OS パフォーマンステスト</a> を参照してください。</p>
+</div>
+
+<h3 id="Gecko_rendering" name="Gecko_rendering">Gecko のレンダリング</h3>
+
+<p>Gecko の JavaScript エンジンは、ジャストインタイム (JIT) コンパイルに対応しています。これはアプリケーションのロジックを、Java VM など他の仮想マシンに匹敵するほど高速に実行し、また「ネイティブコード」に迫る場合もあります。</p>
+
+<p>HTML、CSS、Canvas を支えている Gecko のグラフィックスパイプラインはいくつかの方法で最適化されています。Gecko 内の HTML/CSS のレイアウトやグラフィックスのコードは、スクロールなど一般的なケースでの無効化や再描画の回数を減らします。開発者はこの支援を「無償で」受けられます。Gecko が「自動的に」、またアプリケーションが <code>canvas</code> へ「手動で」書き込むピクセルバッファは、ディスプレイフレームバッファへ書き込まれる際にコピー量が最小化されます。これはオーバーヘッドを生み出す中間のサーフェイス (多くのオペレーティングシステムにおける、アプリケーションごとの「バックバッファ」など) を避けたり、コンポジションハードウェアが直接アクセスできるグラフィックスバッファ用の特別なメモリーを使用したりすることで実現します。複雑なシーンは最大限のパフォーマンスを得るため、端末の GPU を使用して描画されます。消費電力を低減するため、シンプルなシーンは特別な専用のコンポジションハードウェアで描画し、GPU はアイドル状態または無効化します。</p>
+
+<p>完全に静的なコンテンツは、リッチアプリケーションよりもむしろ例外的です。リッチアプリケーションは <a href="/ja/docs/Web/CSS/animation" title="CSS の animation プロパティは、様々なアニメーションのプロパティ、 animation-name, animation-duration, animation-timing-function, animation-delay, animation-iteration-count, animation-direction, animation-fill-mode, animation-play-state の 一括指定プロパティです。"><code>animation</code></a> や <a href="/ja/docs/Web/CSS/transition" title="CSS の transition プロパティは、 transition-property、 transition-duration、 transition-timing-function、 transition-delay の一括指定プロパティです。"><code>transition</code></a> 効果とともに動的なコンテンツを使用します。トランジションやアニメーションは、アプリケーションにとって特に重要です。開発者は CSS を使うことで、シンプルで高レベルな構文を使用して複雑な挙動を宣言できます。一方、Gecko のグラフィックスパイプラインは、一般的なアニメーションを効率的に描画するよう、高度に最適化されています。一般的なアニメーションはシステムのコンポジション機能に「押しつけられ」、ハイパフォーマンスかつ低消費電力で描画できます。</p>
+
+<p>アプリケーションの実行パフォーマンスも重要ですが、起動時のパフォーマンスも同様に重要です。Gecko は、多種多様なコンテンツ、つまり Web 全体を効率的に読み込むよう最適化されています。HTML パースの並列処理、リフローや画像デコードの賢いスケジューリング、優れたレイアウトアルゴリズムなど、こうしたコンテンツに対して行われた長年にわたる改良が、Firefox 上で実行される Web アプリケーションのパフォーマンス改善にも適用されます。</p>
+
+<div class="note">
+<p><strong>注</strong>: 起動時のパフォーマンスをさらに改善するには、Firefox OS 固有の詳しい情報を <a href="/ja/Apps/Developing/Performance/Firefox_OS_performance_testing">Firefox OS パフォーマンステスト</a> で参照してください。</p>
+</div>
+
+<h2 id="Application_performance" name="Application_performance">アプリケーションのパフォーマンス</h2>
+
+<p>本章は、「自分のアプリを高速にするために何ができるか」という疑問を持つ開発者に向けたものです。</p>
+
+<h3 id="Startup_performance" name="Startup_performance">起動時のパフォーマンス</h3>
+
+<p>アプリケーションの起動は一般的に、ユーザーが知覚する 3 つのイベントに分けられると言われます。</p>
+
+<ul>
+ <li>最初に、アプリケーションの「初回描画」です。最初のフレームを描画するのに十分なアプリケーションのリソースが読み込まれた時点です。</li>
+ <li>次に、アプリケーションが<strong>インタラクティブ</strong>になったときです。例えば、ユーザーがボタンをタップしてアプリケーションが反応するときです。</li>
+ <li>最後のイベントは「読み込み完了」であり、例えば音楽プレイヤーでユーザーのアルバムすべてが表示されたときです。</li>
+</ul>
+
+<p>高速起動の秘訣は、以下 2 点を覚えておくことです。UPP こそが重要であることと、上記のユーザーが知覚するイベントそれぞれに至る「クリティカルパス」があることです。クリティカルパスはイベントが発生するまでに実行しなければならない、完全かつ最適なコードです。</p>
+
+<p>例えばいくつかの HTML と HTML にスタイル付けする CSS で視覚的に構成される、アプリケーションの最初のフレームを描画するときは、次のような流れとなります。</p>
+
+<ol>
+ <li>HTML を解析する</li>
+ <li>その HTML の DOM を構築する</li>
+ <li>DOM の一部である画像などのリソースを読み込みデコードする</li>
+ <li>CSS スタイルをその DOM に適用する</li>
+ <li>スタイル付けしたドキュメントをリフローする</li>
+</ol>
+
+<p>この中に「一般的ではないメニューに必要な JS ファイルを読み込む」「ハイスコア一覧用の画像を読み込んでデコードする」などはありません。これらの作業項目は、最初のフレームを描画するためのクリティカルパス上にないからです。</p>
+
+<p>これは明らかですが、ユーザーが知覚する起動イベントへより早く達するための主な「トリック」は、「クリティカルパス上にあるコードのみ」実行することです。また、シーンをシンプルにしてクリティカルパスを短くしましょう。</p>
+
+<p>Web プラットフォームは高度に動的です。JavaScript は動的型付け言語であり、また Web プラットフォームではコード、HTML、CSS、画像、その他のリソースを動的に読み込むことが可能です。これらの機能は必要ではないコンテンツを起動後に "ゆっくりと" 読み込むことにより、クリティカルパスから外れる作業を遅れて行うために使用できます。</p>
+
+<p>起動を遅らせるもうひとつの問題はアイドル時間であり、(データベースの読み込みといった) リクエストへのレスポンスを待つことにより発生します。この問題を避けるため、アプリケーションは起動時にできるだけ早くリクエストを発行すべきです (これは「フロントローディング」と呼ばれます)。すると後でデータが必要になったとき、それはおそらくすでに読み込まれており、アプリケーションは待つ必要がないでしょう。</p>
+
+<div class="note">
+<p><strong>注</strong>: 起動時のパフォーマンス改善に関する詳しい情報は <a href="/ja/Apps/Developing/Performance/Optimizing_startup_performance">起動パフォーマンスの最適化</a> を参照してください。</p>
+</div>
+
+<p>また、ローカルにキャッシュされた静的リソースは、高レイテンシかつ低帯域のモバイルネットワークを通じて取得される動的なデータよりも格段に速く読み込まれます。アプリケーション起動初期のクリティカルパスにネットワークリクエストを含むべきではありません。ローカルにリソースをキャッシュすることは、アプリケーションをオフラインで使用可能にする唯一の方法でもあり、標準的な Open Web Apps では、現時点ではこのために HTML5 <a href="/ja/docs/HTML/Using_the_application_cache">AppCache</a> を使う必要があります。</p>
+
+<div class="note">
+<p><strong>注</strong>: Firefox OS では、圧縮 ZIP ファイルに「パッケージ」するか、HTML5 <a href="/ja/docs/HTML/Using_the_application_cache">AppCache</a> を通じて「ホスト」するか、いずれかの方法でアプリケーションとしてインストールすることで、アプリケーションによるリソースのキャッシュを可能にしています。特定のアプリケーションタイプ向けのこれら選択肢からどのように選択するかは本ドキュメントの範囲を超えますが、一般的にアプリケーションパッケージは最適な読み込みパフォーマンスを提供し、AppCache は比較的遅くなります。インストール可能なアプリは他の OS でもまもなく使えるようになる見込みです。</p>
+</div>
+
+<h3 id="Framerate_2" name="Framerate_2">フレームレート</h3>
+
+<p>高フレームレートを得るためにまず考慮すべき重要なことは、適切なツールの選択です。ほぼ静的で、スクロールされ、たまにアニメーションしたりするぐらいのコンテンツには HTML と CSS を使いましょう。レンダリングで精密な制御が必要でありテーマ付けは必要ないゲームなど、高度に動的なコンテンツの実装には Canvas を使いましょう。</p>
+
+<p>Canvas を使用して描画するコンテンツは、目標フレームレートに達するかどうかは開発者次第です。何を描画するかは開発者が直接制御します。</p>
+
+<p>HTML/CSS コンテンツでは、高フレームレートを得るには適切な基本要素を使用します。Firefox は任意のコンテンツのスクロールに高度に最適化されています。これは通常、懸念することではありません。しかし CSS による放射状グラデーションの代わりに静的レンダリングを使用するなど、速さについて一般性と品質を配分することで、スクロールのフレームレートを目標に近づけられることがしばしばあります。CSS <a href="/ja/docs/Web/Guide/CSS/Media_queries">メディアクエリ</a> は、それらが必要なデバイスにのみ制限するための折衷策になります。</p>
+
+<p>多くのアプリケーションは「ページ」や「パネル」の移動にトランジションやアニメーションを使用します。例えばユーザーが「設定」ボタンをタップすると、アプリケーションの設定画面に遷移したり、設定メニューが「ポップアップ」したりします。Firefox は以下のようなトランジションやアニメーションのシーンに対して高度に最適化されています。</p>
+
+<ul>
+ <li>デバイスの画面サイズとほぼ同じか、より小さいページやパネルを使用する</li>
+ <li>CSS <code>transform</code>、<code>opacity</code> プロパティのトランジションやアニメーション</li>
+</ul>
+
+<p>これらのガイドラインに従うトランジションやアニメーションはシステムのコンポジション機能にオフロードされて、最大効率で実行されます。</p>
+
+<h3 id="Memory_and_power_usage" name="Memory_and_power_usage">メモリーと電力使用量</h3>
+
+<p>メモリーや電力の消費の改善は、起動速度向上の問題と似ています。不要な作業を行わない、あまり使われない UI リソースは後から読み込む、効率のよいデータ構造を使用する、画像のようなリソースが十分を最適化する、といったことです。</p>
+
+<p>最近の CPU は、ほぼアイドル状態であるときに低消費電力モードに入ることができます。絶えずタイマーを発生させたり不要なアニメーションを実行し続けたりするアプリケーションは、CPU が低消費電力モードへ移行するのを妨げます。電力効率がよいアプリケーションは、そのようなことを行うべきではありません。</p>
+
+<p>アプリケーションがバックグラウンドに移行するとき、そのドキュメント上で <code><a href="/ja/docs/Web/Reference/Events/visibilitychange" title="/ja/docs/Web/Reference/Events/visibilitychange">visibilitychange</a></code> イベントが発生します。このイベントは開発者の役に立ちます。アプリケーションは、このイベントを監視すべきです。バックグラウンドへ移行するときにできるだけ多くの読み込み済みリソースを手放すアプリケーションは、メモリー使用量が減り、Firefox OS アプリの場合には終了されにくくなります (下記注参照)。この結果、(すでに実行中であるという利点により)「起動」が速くなり UPP も向上します。</p>
+
+<div class="note">
+<p><strong>注</strong>: 先に述べたとおり、Firefox OS は可能な限り多くのアプリケーションを同時に実行し続けようとしますが、通常端末のメモリーが不足しているとき、場合によってはアプリケーションを終了しなければなりません。Firefox OS がメモリー使用量をどう管理しているか、メモリー不足が問題になったときに同アプリをどう終了するかといった情報は、<a href="/ja/Firefox_OS/Debugging/Debugging_OOMs">Firefox OS でのメモリー不足エラーのデバッグ</a> を参照してください。</p>
+</div>
+
+<h3 id="Specific_coding_tips_for_application_performance" name="Specific_coding_tips_for_application_performance">アプリケーションパフォーマンス改善のための具体的なコーディングのヒント</h3>
+
+<p>以下の実用的なヒントは、上記で解説したアプリケーションパフォーマンスのひとつもしくはそれ以上を改善するのに役立つでしょう。</p>
+
+<h4 id="Use_CSS_animations_and_transitions" name="Use_CSS_animations_and_transitions">CSS アニメーションとトランジションを使う</h4>
+
+<p>一部のライブラリが提供する <code>animate()</code> 関数は、まだ様々なパフォーマンスの悪い技術 (例えば <a href="/ja/docs/Web/API/Window/setTimeout" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>window.setTimeout()</code></a> や <code>top</code>/<code>left</code> 位置指定) を使っている可能性がありますので、代わりに <a href="/ja/docs/Web/Guide/CSS/Using_CSS_animations">CSS アニメーション</a> を使いましょう。たいていの場合、実際には <a href="/ja/docs/Web/Guide/CSS/Using_CSS_transitions">CSS トランジション</a> を使えば、やりたいことを実現できます。ブラウザーはそうした効果を最適化し、GPU を使用してプロセッサのパフォーマンスへの影響を最小限に抑えつつスムーズに処理するように設計されていますので、問題なく動作するはずです。もうひとつのメリットは、標準的な構文を使って、アプリの他の視覚要素とともにそれらの効果を CSS で定義できるという点です。</p>
+
+<p>CSS アニメーションでは、<a href="/ja/docs/Web/CSS/@keyframes">キーフレーム</a> を使って、非常に細かく効果を調整することが可能です。アニメーションの表示中に実行されたイベントを監視し、そのプロセスの設定点で実行すべき他のタスクを処理することさえ可能です。<a href="/ja/docs/Web/CSS/:hover" title="CSS の :hover 疑似クラスは、ユーザーがポインティングデバイスで要素に反応したものの、アクティブ化する必要がないものを選択します。普通はユーザーがカーソル(マウスポインタ―)で要素の上をホバー(通過)させたときにこの状態になります。"><code>:hover</code></a>、<a href="/ja/docs/Web/CSS/:focus" title="CSS の :focus 疑似クラスは、フォーカスを持っている(フォームの入力のような)要素を表します。普通はユーザーが要素をクリックやタップをしたり、キーボードの[タブ]キーで選択したりしたときです。"><code>:focus</code></a>、<a href="/ja/docs/Web/CSS/:target" title="CSS の :target 疑似クラスは、 URL のフラグメントに一致する id を持つ固有の要素(対象要素)を表します。"><code>:target</code></a> といった疑似クラスを使用して、あるいは親要素へ動的にクラスを追加、削除することで、そうしたアニメーションを簡単に実行することができます。</p>
+
+<p><a href="/ja/docs/JavaScript">JavaScript</a> でアニメーションを動的に生成あるいは変更したい場合は、James Long が作成した <a href="https://github.com/jlongster/css-animations.js/">CSS-animations.js</a> というシンプルなライブラリを使うこともできます。</p>
+
+<h4 id="Use_CSS_transforms" name="Use_CSS_transforms">CSS トランスフォームを使う</h4>
+
+<p>要素の位置や比率などを調整したいときは、絶対配置を変更し、その数値を自分自身で計算する代わりに、<a href="/ja/docs/Web/CSS/transform" title="transform CSS プロパティは、与えられた要素の回転、拡大縮小、傾斜、移動ができます。これは、CSS 視覚整形モデル の座標空間を変更することにより実現しています。"><code>transform</code></a> CSS プロパティを使いましょう。その理由は、先ほどと同じくハードウェアアクセラレーションです。ブラウザーはそうしたタスクを GPU 上で処理し、他のことを CPU に処理させることが可能です。</p>
+
+<p>さらにトランスフォームは、他の方法ではおそらく実現できない機能を提供します。要素を 2 次元空間内で移動させるだけでなく、3 次元空間内の移動や、ゆがみ、回転といった処理を行えるのです。Paul Irish が、パフォーマンスの観点から <a href="http://paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/"><code>translate()</code> のメリットに関する綿密な分析を行っています</a>。ただ一般的には、CSS アニメーションを使っても同じメリットを得られます。実現したい効果のために適切なツールを使用し、最適化はブラウザーに任せましょう。また、要素の位置を変更するには、簡単に拡張可能な方法を使用できます。<code>top</code> や <code>left</code> の座標変更でそうした移動をエミュレートするとなると、コードを大量に追加しなければならないでしょう。もうひとつのメリットは <code>canvas</code> 内でも使えるという点です。</p>
+
+<div class="note">
+<p><strong>注:</strong> 今のところ、一部の環境では、ハードウェアアクセラレーションを活用するには <code>translateZ(0.1)</code> を使用する必要があります。先に述べた通り、これによってパフォーマンスを改善できますが、メモリー消費量を増大させるといった問題を引き起こす可能性もあります。この点でどう対処すべきかは開発者次第です。多少のテストを行い、あなたの具体的なアプリに最適な方法を見つけてください。</p>
+</div>
+
+<h4 id="Use_requestAnimationFrame()_instead_of_setInterval()" name="Use_requestAnimationFrame()_instead_of_setInterval()"><code>setInterval()</code> の代わりに <code>requestAnimationFrame()</code> を使う</h4>
+
+<p><a href="/ja/docs/Web/API/Window/setInterval" title="WindowOrWorkerGlobalScope ミックスインの setInterval() メソッドは、一定の遅延間隔を置いて関数やコードスニペットを繰り返し呼び出します。これは、インターバルを一意に識別する interval ID を返します。よって clearInterval() を呼び出して、後でインターバルを削除できます。このメソッドは Window および Worker インターフェイスで提供します。"><code>window.setInterval()</code></a> の呼び出しは、現状では実行可能かどうか定かではない推定フレームレートでコードを実行します。また、ブラウザーが実際には描画していない、つまりビデオハードウェアが次の表示サイクルに達していないときにも結果を描画させようとします。これはプロセッサ時間の無駄遣いであり、ユーザーの端末のバッテリー寿命を縮める結果にもなります。</p>
+
+<p>代わりに <a href="/ja/docs/Web/API/Window/requestAnimationFrame" title="このメソッドは、いつでも画面上でアニメーションの更新準備が整った時に呼び出してください。これにより、ブラウザの次の再描画が実行される前にアニメーション関数が呼び出されることを要求します。このコールバックの回数は、たいてい毎秒 60 回ですが、一般的に多くのブラウザーでは W3C の勧告に従って、ディスプレイのリフレッシュレートに合わせて行われます。ただし、コールバックの確率は、バックグラウンドのタブや隠れた &lt;iframe> では、パフォーマンス向上やバッテリー消費を減らすために低くなるでしょう。"><code>window.requestAnimationFrame()</code></a> を使ってみましょう。これは、ブラウザーが実際にアニメーションの次のフレームのビルドを開始する準備が整うまで待機し、ハードウェアが実際には何も描画しようとしていない場合は実行されません。この API が持つもうひとつのメリットは、アプリが画面上に表示されていないとき (バックグラウンドのタブにあって他のタスクが実行されている場合など) はアニメーションが実行されないということです。これはバッテリー消費を抑え、ユーザーの間で悪評が立つのを防ぐことにもなります。</p>
+
+<h4 id="Make_events_immediate" name="Make_events_immediate">イベントを即時に実行する</h4>
+
+<p>保守的な、アクセシビリティに配慮した Web 開発者として、私たちはキーボード入力にも対応しているクリックイベントを気に入っています。モバイル端末上では、それらは非常に遅くなります。代わりに <code><a href="/ja/docs/Web/Reference/Events/touchstart" title="/ja/docs/Web/Reference/Events/touchstart">touchstart</a></code> や <code><a href="/ja/docs/Web/Reference/Events/touchend" title="/ja/docs/Web/Reference/Events/touchend">touchend</a></code> を使うべきです。その理由は、アプリの動作が緩慢であると感じさせるような遅延が発生しないということです。タッチ対応を始めにテストする場合、アクセシビリティも犠牲にしてはいけません。例えば、Financial Times はそのために、一般公開もされている <a href="https://github.com/ftlabs/fastclick">fastclick</a> というライブラリを使用しています。</p>
+
+<h4 id="Keep_your_interface_simple" name="Keep_your_interface_simple">インターフェイスをシンプルに保つ</h4>
+
+<p>HTML5 アプリに見られる大きなパフォーマンス問題のひとつに、多くの <a href="/ja/docs/DOM">DOM</a> 要素を移動させることで、特にグラデーションやドロップシャドウを多用している場合、あらゆる動作が緩慢になるということが挙げられます。デザインをシンプルにし、ドラッグ&ドロップ処理を行う場合は仮の要素を移動させることで、そうした問題を大幅に改善することが可能です。</p>
+
+<p>例えば、アプリ内に要素の長大なリスト (ツイート一覧など) がある場合、それらをすべて移動させようとしてはいけません。その代わりに、表示されているツイートと、その前後にある多少のツイートだけを DOM ツリー内に保持することも可能でしょう。残りは隠すか削除しましょう。DOM へアクセスする代わりに JavaScript オブジェクト内にデータを保持することで、アプリのパフォーマンスを大幅に向上させることができます。表示を、データそのものではなく、データの表現として考えましょう。これは本来の HTML をソースとして使えないということではありません。ユーザーがツイートを読んで 10 要素分スクロールしたら、表示されていない 100 要素を移動する代わりに、結果リスト内の位置によって最初と最後のコンテンツを変更するのです。同じテクニックはスプライト処理を行うゲームにも当てはまります。要素が画面上にない場合は、それらにポーリングを行う必要はありません。代わりに、画面外に出た要素を画面内に入る要素として再利用すれば良いのです。</p>
+
+<h2 id="General_application_performance_analysis" name="General_application_performance_analysis">一般的なアプリケーションパフォーマンス解析</h2>
+
+<p>Firefox、Chrome、その他のブラウザーには、遅いページレンダリングの原因を突き止めるのに役立つ組み込みのツールが含まれています。特に、<a href="/ja/docs/Tools/Network_Monitor">Firefox のネットワークモニター</a> は、ページ上のネットワークリクエストがいつ発生したか、どのぐらいの大きさで、どのぐらい時間が掛かったかという正確なタイムラインを表示できます。</p>
+
+<p><img alt="GET リクエスト、複数ファイル、各リソースの読み込みに掛かった個別の時間をグラフ上に表示している Firefox のネットワークモニター" src="https://mdn.mozillademos.org/files/6845/network-monitor.jpg" style="display: block; height: 713px; margin: 0px auto; width: 700px;"></p>
+
+<p>実行に時間の掛かる JavaScript コードがページに含まれている場合、<a href="/ja/docs/Tools/Profiler">JavaScript プロファイラ</a> で最も遅いコードの行数を特定できます。</p>
+
+<p><img alt="完了したプロファイル 1 を表示している Firefox JavaScript プロファイラ" src="https://mdn.mozillademos.org/files/6839/javascript-profiler.png" style="display: block; height: 433px; margin: 0px auto; width: 896px;"></p>
+
+<p><a href="/ja/docs/Performance/Profiling_with_the_Built-in_Profiler">組み込み Gecko プロファイラ</a> は、プロファイラの実行中にブラウザーコードのどの部分が遅いかについてさらに詳しい情報を提供する大変便利なツールです。これは使い方が多少複雑ですが、多くの有益な詳細情報を提供してくれます。</p>
+
+<p><img alt="多数のネットワーク情報を表示している組み込み Gecko プロファイラウィンドウ" src="https://mdn.mozillademos.org/files/6837/gecko-profiler.png" style="display: block; height: 514px; margin: 0px auto; width: 896px;"></p>
+
+<div class="note">
+<p><strong>注</strong>: これらのツールは Android ブラウザーでも使用できます。Firefox を起動し <a href="/ja/docs/Tools/Remote_Debugging">リモートデバッグ</a> を有効にしてください。</p>
+</div>
+
+<p><a href="https://addons.mozilla.org/ja/firefox/addon/yslow/">YSlow</a> (<a href="https://getfirebug.com/">Firebug</a> アドオンの拡張機能) は、パフォーマンス改善のため非常に有益なアドバイスを提供してくれます。特定された問題と提案された解決策の多くはモバイルブラウザーで特に有益なものです。絶対に YSlow を実行し、そのアドバイスに従うべきです。</p>
+
+<p><img alt="パフォーマンス改善のためのヒントを表示している YSlow ウィンドウ。1 番目は HTTP リクエストを減らしましょうというもの。" src="https://mdn.mozillademos.org/files/6843/yslow.png" style="display: block; height: 240px; margin: 0px auto; width: 605px;"></p>
+
+<p>特に、ネットワークリクエストを多数実行すること、モバイルブラウザーでは時間が掛かります。巨大な画像のレンダリングや CSS グラデーションも時間が掛かるでしょう。モバイルハードウェアは時として利用可能な帯域をすべて活用するには遅すぎるため、巨大なファイルのダウンロードは高速なネットワーク上でさえ時間が掛かります。モバイル Web パフォーマンスに関する有益で一般的なヒントは、Maximiliano Firtman の <a href="http://www.slideshare.net/firt/mobile-web-high-performance">モバイル Web ハイパフォーマンス</a> プレゼンテーションにあります。</p>
+
+<h3 id="Testcases_and_submitting_bugs" name="Testcases_and_submitting_bugs">テストケースの作成とバグの報告</h3>
+
+<p>Firefox と Chrome の開発者ツールが問題発見の役に立たない場合、あるいは Web ブラウザーが問題を引き起こしている可能性があるという情報を示している場合、問題を最大限に分離した最小限のテストケースを用意してみてください。おそらく問題の診断に役立つでしょう。</p>
+
+<p>HTML ページの (埋め込まれている画像、スタイルシート、スクリプトを含む) 静的なコピーを保存して読み込むことで問題を再現できるか確かめてください。その場合、その静的なファイルを編集してあらゆる個人情報を削除した上で、他の人に送って助けを求めましょう (例えば <a href="https://bugzilla.mozilla.org">Bugzilla</a> にバグを報告するか、サーバー上に置いて URL を共有してください)。上記のツールを使って収集したプロファイル情報があればそれも共有すべきでしょう。</p>
diff --git a/files/ja/archive/b2g_os/phone_guide/best_practices_open_reference_devices/index.html b/files/ja/archive/b2g_os/phone_guide/best_practices_open_reference_devices/index.html
new file mode 100644
index 0000000000..73f5718c7a
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/best_practices_open_reference_devices/index.html
@@ -0,0 +1,58 @@
+---
+title: open リファレンス端末用ベストプラクティス
+slug: Archive/B2G_OS/Phone_guide/Best_practices_open_reference_devices
+tags:
+ - Firefox OS
+ - リファレンス端末
+translation_of: Archive/B2G_OS/Phone_guide/Best_practices_open_reference_devices
+---
+<div class="summary">
+ <p><span class="seoSummary">以下の記事では、広く入手できる、いかなるopenリファレンス端末向けにも強く推奨するベストプラクティスの提供を狙います。最近の Firefox OS リファレンス端末は全てがこのプラクティスに従っていて、来るFlameもそうです。</span></p>
+</div>
+<p>端末は以下を備えます:</p>
+<ul>
+ <li>容易にアクセス・インストール可能なビルド</li>
+ <li>完全にロックされないOS</li>
+ <li>世界中で入手可能</li>
+ <li>コンシューマー機と同等の機能サポート</li>
+ <li>交換用電池が入手可能</li>
+ <li>言語選択が容易に可能</li>
+</ul>
+<h2 id="Easily_accessible_and_installable_builds">Easily accessible and installable builds</h2>
+<p>Reference devices are largely aimed at developers and other groups with a greater degree of technical knowledge than average device consumers. But even so, we shouldn't expect users of these devices to compile their own builds if they don't wish to — for many of them this is a complete waste of time.</p>
+<p>Open reference devices should have a maintained set of unlocked builds for current and future releases that are easy to access and install. This means having multiple tiers of builds available, at least:</p>
+<ul>
+ <li>Release/Current</li>
+ <li>Stable/Beta</li>
+ <li>Nightly</li>
+</ul>
+<p>They should be made easily available on a dedicated download page, and updated regularly and often. Devices should also have OTA updates made available to them.</p>
+<p>The OEMs should be responsible for providing these builds since they are the only ones who can legally distribute all the required binaries, etc.</p>
+<p>It may make sense to follow a similar model to the Firefox browser, where each of the release, stable and nightly channels are based on subsequent versions of the source code.</p>
+<h2 id="Completely_unlocked_operating_system">Completely unlocked operating system</h2>
+<p>The device operating system platform should be completely unlocked, so that app and platform developers can have the necessary freedom of control available over their devices to perform any desired tests and development work. This includes:</p>
+<ul>
+ <li>SIM unlocked</li>
+ <li>Bootloader unlocked</li>
+ <li>Root access</li>
+</ul>
+<h2 id="Worldwide_availability">Worldwide availability</h2>
+<p>If you want your reference devices to be a universal standard, then it follows that you should make them available worldwide. If this is not the case, people in different locales will have to make do with different devices, which may carry different behaviours.</p>
+<h2 id="Feature_support_equivalent_to_consumer_phones">Feature support equivalent to consumer phones</h2>
+<p>There is no point in creating a reference device that does not have support for the same technologies and associated features as the consumer devices you will ultimately be distributing Firefox OS builds and open web apps on.</p>
+<p>These include:</p>
+<ul>
+ <li>AGPS/other associated geolocation hardware</li>
+ <li>Phone compass/gyroscope/accelerometer</li>
+ <li>Phone camera(s) with image and video capabilities</li>
+ <li>Vibration hardware</li>
+ <li>SDCard storage</li>
+ <li>Phone ringer</li>
+ <li>Appropriate hardware buttons</li>
+ <li>3G or better connectivity</li>
+</ul>
+<h2 id="Availability_of_replacement_batteries">Availability of replacement batteries</h2>
+<p>Replacement batteries can often be really hard to obtain for different devices, and can lead to otherwise useful devices being rendered useless. It is therefore a good idea to make replacement batteries as available as possible.</p>
+<h2 id="Easily_enabled_language_choices">Easily enabled language choices</h2>
+<p>Since these device will be distributed worldwide, it is important to make localised builds available for as many languages as possible,  taking into account availability of resources and most popular target market locales.</p>
+<p>The most likely solution to this is localised Gaia builds or language packs that can be flashed onto the device separately, and Mozilla is working on a solution to make creation and installation of these as easy as possible.</p>
diff --git a/files/ja/archive/b2g_os/phone_guide/firefox_os_device_features/index.html b/files/ja/archive/b2g_os/phone_guide/firefox_os_device_features/index.html
new file mode 100644
index 0000000000..198931fa88
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/firefox_os_device_features/index.html
@@ -0,0 +1,75 @@
+---
+title: Firefox OS 端末の機能
+slug: Archive/B2G_OS/Phone_guide/Firefox_OS_device_features
+tags:
+ - Firefox OS
+ - ハードウェア
+ - 要求
+translation_of: Archive/B2G_OS/Phone_guide/Firefox_OS_device_features
+---
+<h2 id="ボタンとコントロール">ボタンとコントロール</h2>
+
+<p>典型的な Firefox OS 端末には次のハードウェアボタンがつきます。</p>
+
+<dl>
+ <dt>ホームボタン</dt>
+ <dd>ホームボタンは通常スクリーン下中央についています。押すとアプリランチャーへ戻ります。長押しでカードスイッチングビューが表示されます。このビューで上にスワイプすると、アプリを終了できます。</dd>
+ <dt>音量調整とロック</dt>
+ <dd>左側に音量のロックがつきます。それの上部を押すと音量が増加し、下部を押すと減少します。</dd>
+ <dt>電源ボタン</dt>
+ <dd>電源ボタンは端末の右上の角につきます。</dd>
+</dl>
+
+<h2 id="最小のハードウェア要件">最小のハードウェア要件</h2>
+
+<p>最新の ARM<strong> </strong>ベース端末であれば Firefox OS  を移植するのに充分です。 Firefox OS  を動作させられる基本的なハードウェアの最小要件と、推奨要件は以下の通りです。</p>
+
+<table>
+ <thead>
+ <tr>
+ <th scope="col">コンポーネント</th>
+ <th scope="col">最小</th>
+ <th scope="col">推奨</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <th scope="row">CPU</th>
+ <td>ARMv6</td>
+ <td>Cortex A5 class or better<br>
+ ARMv7a with NEON</td>
+ </tr>
+ <tr>
+ <th scope="row">GPU</th>
+ <td>—</td>
+ <td>Adreno 200 class or better</td>
+ </tr>
+ <tr>
+ <th scope="row">RAM</th>
+ <td>128 MB</td>
+ <td>512 MB</td>
+ </tr>
+ <tr>
+ <th scope="row">Connectivity</th>
+ <td>—</td>
+ <td>WiFi<br>
+ 3G</td>
+ </tr>
+ <tr>
+ <th scope="row">Sensors</th>
+ <td>—</td>
+ <td>Accelerometer<br>
+ Proximity<br>
+ Ambient light<br>
+ A-GPS</td>
+ </tr>
+ </tbody>
+</table>
+
+<div class="note">
+<p><strong>注意</strong>: 統一されたカラープロファイル (グラフィックスのデバイスドライバによって実装されます) を提供されている端末や、メディアのミュート、アンミュート、再生、停止できるヘッドフォンをサポートする端末を選択することは、良いユーザ体験を提供できるため、良いアイディアと言えます。これらはスマートフォンの多くが持っている機能です。</p>
+</div>
+
+<dl>
+ <dt> </dt>
+</dl>
diff --git a/files/ja/archive/b2g_os/phone_guide/flame/index.html b/files/ja/archive/b2g_os/phone_guide/flame/index.html
new file mode 100644
index 0000000000..89710e20d8
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/flame/index.html
@@ -0,0 +1,134 @@
+---
+title: Flame
+slug: Archive/B2G_OS/Phone_guide/Flame
+tags:
+ - B2G
+ - Firefox OS
+ - Flame
+ - developer phone
+ - reference device
+ - レファレンス端末
+ - 開発者向け端末
+translation_of: Archive/B2G_OS/Phone_guide/Flame
+---
+<div class="note">
+<p><strong>Flame の更新情報</strong>: 定期的なソフトウェアビルドや Flame に関するその他の情報を受け取るために、次のメーリングリストに参加されることをお勧めします。<a href="https://mail.mozilla.org/listinfo/flamenews">https://mail.mozilla.org/listinfo/flamenews</a></p>
+</div>
+
+<p><strong>開発者向け端末 Flame に関するものを含め、日本語での情報交換 (<a href="https://groups.google.com/forum/?fromgroups#!forum/firefoxos">Google グループ</a>) や勉強会などのイベントについては <a href="http://fxos.org/">Firefox OS コミュニティサイト</a> をご覧ください。</strong></p>
+
+<p><img alt="A picture of the Flame device, showing the Firefox OS homescreen containing several app icons." src="https://mdn.mozillademos.org/files/7697/Firefox-OS-Flame-Reference-Device-small.png" style="float: left; margin-bottom: 20px; margin-right: 50px;"></p>
+
+<p><span class="seoSummary">Flame 端末は公式のリファレンス端末であり、その用途は Firefox OS やオープン Web アプリの開発、テスト、デバッグを行うことです。このガイドには、この電話機で実験したり、互換性のあるソフトウェアを開発・テストしたりする実用的ドキュメント仕様の他に、そのハードウェア仕様についての基本的な情報があります。</span></p>
+
+<p>Flame には代表的なスペックのハードウェア (FWVGA のディスプレイとデュアルコアプロセッサを含む) が搭載されており、開発者が優れたコンテンツや体験を構築しやすくなっています。また、開発端末が 1 機種であることは、検証する人にとっても良いことであり、端末固有の問題であるかどうかを悩む必要がなく、ソフトウェアのテストと問題の検証が容易に行えるようになります。</p>
+
+<p>既に端末をお持ちで、遊んだり、アプリを開発・配布したい、あるいは Firefox プラットフォーム自体に貢献したい場合、下記のリンクも、必要な場所へ案内してくれるでしょう:</p>
+
+<ul>
+ <li><a href="/ja/Firefox_OS">Firefox OS ゾーン</a>: ご自身の Firefox OS ビルドの作成をされたい方、もしくはB2G と Gaia への貢献をお考えの方はこちら</li>
+ <li><a href="/ja/Apps">アプリセンターゾーン</a>: Firefox OS アプリも含む、オープンな Web アプリをお作りになりたい方はこちら</li>
+ <li><a href="/ja/Marketplace">マーケットプレースゾーン</a>: アプリの公開と配布をお考えの方はこちら</li>
+ <li><a href="https://marketplace.firefox.com/">Firefox Marketplace</a>: Firefox OS アプリの最適な公開場所の情報はこちら</li>
+ <li><a href="http://fxos.org/">Firefox OS コミュニティ</a>: 日本語での情報交換は <a href="https://groups.google.com/forum/?fromgroups#!forum/firefoxos">Google グループ</a> にて</li>
+</ul>
+
+<p style="">OS の更新、復旧、アプリのインストール、端末スペックについての詳細情報が必要な方は、以下 2 つの記事をご覧ください。</p>
+
+<ul>
+ <li><a href="/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">初期セットアップ</a>: Flame で作業するためのコンピュータをセットアップする基本ステップ</li>
+ <li><a href="/Firefox_OS/Developer_phone_guide/Flame/Updating_your_Flame">Flame を更新する</a>: Flame の Firefox OS を更新またはアップグレード、アプリのインストール、トラブル解決、テストする方法</li>
+</ul>
+
+<p>端末の購入をご検討されている方、日本国内での使い方についての情報を必要とされている方は以下をご覧ください。</p>
+
+<h2 id="Get_a_device" name="Get_a_device">端末の入手方法</h2>
+
+<p>開発者向け端末 Flame は日本国内では株式会社びぎねっとの運営する<a href="http://store.shopping.yahoo.co.jp/opensource-store/0001.html"> Yahoo! ショッピング OSS ストア</a>にて 19,980円 (税込み、一部地域を除き送料無料) で販売されました (在庫切れ)。Flame は SIM フリー端末であり、ブートローダもロック解除された状態で出荷されます。開発者ご自身でビルドしたソフトウェアを導入したり世界中のキャリアの SIM カードを挿して通信できます。</p>
+
+<p><a href="http://store.shopping.yahoo.co.jp/opensource-store/0001.html">Yahoo! ショッピング OSS ストア - <span>Flame (Firefox OS 開発者向けリファレンス端末)</span></a></p>
+
+<h2 id="Notices_for_using" name="Notices_for_using">国内利用に関して</h2>
+
+<p>Flame は TELEC や JATE などの認証も受けており、国内でも安心してご利用いただけます。ただし、初期出荷時のビルドは日本国内での利用を想定したソフトウェアや設定になっておらず、いくつかの制限事項があります。</p>
+
+<ul>
+ <li>出荷時のビルドには日本語環境が含まれておりません</li>
+ <li>出荷時のビルドに含まれる APN 設定では一部 SIM カードでのデータ通信ができません</li>
+ <li>出荷時のビルドでは日本国内で放送されている FM ラジオが聴けません</li>
+</ul>
+
+<p>これらの制限は端末 (ハードウェア) の問題ではなく、ビルド設定 (ソフトウェア) によるものであり、ビルドイメージを入れ替えたり、端末内のファイルを書き換えたりすることで解消できます。日本語での開発者同士の情報交換には <a href="http://fxos.org/">Firefox OS コミュニティ</a> の <a href="https://groups.google.com/forum/?fromgroups#!forum/firefoxos">Google グループ</a> をご利用ください。</p>
+
+<h3 id="Installing_Japanese_IME" name="Installing_Japanese_IME">日本語入力をするには</h3>
+
+<p>日本語入力をするためには日本語 IME ソフトウェアの追加インストールが必要になります。Firefox OS 2.0 以降にアップデート後の端末であれば、Firefox OS の開発者向けにオムロンソフトウェア社から提供頂いている iWnn IME for Firefox OS 試用版を<a href="https://github.com/mozilla-japan/iwnn-ime-sample">こちらで公開されているスクリプト</a>でインストールして頂けます (git clone するか <a href="https://github.com/mozilla-japan/iwnn-ime-sample/archive/master.zip">ZIP ファイルとしてダウンロード</a>してください)。</p>
+
+<p>Flame 出荷時のビルドは Firefox OS のバージョンが古く、IME とキーボードを追加インストールすることはできません (キーボードアプリの追加は Firefox OS 2.0 以降で可能になります)。必ず v180 以降のベースイメージと Firefox OS 2.0 以降の Nightly ビルドに更新した端末にインストールしてください。</p>
+
+<h3 id="Deta_connection" name="Deta_connection">データ通信をするには</h3>
+
+<p>国内の携帯ネットワークを通じてデータ通信を行う場合、データ通信に対応した SIM をご用意の上、Flame 背面のフタを開けて 3G 通信用 SIM スロット (左側の SIM スロット) に挿入し、データ通信の有効化と APN の設定を行ってください。</p>
+
+<p>この設定は、Settings (環境設定) アプリ - Cellular &amp; Data (携帯ネットワーク設定) - SIM1 - Data settings (データ通信設定) で行えます。ご利用の SIM が選択肢として表示されている場合はそれを選択、表示されない場合は Custom Setting (カスタム設定) に APN, Identifier (ユーザ名), Password (パスワード) などを入力して OK をタップし、Data connection (データ通信接続) をオンにしてください。</p>
+
+<p>ただし、初期出荷時のビルドでは、ご利用の SIM によっては APN 情報を入力しても設定値が反映されず接続できない場合があります。そのような場合は、<a href="https://github.com/dynamis/firefoxos-patch">こちらで公開されているスクリプト</a> (git clone するか <a href="https://github.com/dynamis/firefoxos-patch/archive/master.zip">ZIP ファイルとしてダウンロード</a>してください) を用いて端末内のファイルを書き換えることで APN の設定が可能になります。詳しくは、<a href="https://github.com/dynamis/firefoxos-patch/blob/master/README.md">README</a> をご参照ください。</p>
+
+<h3 id="Listening_FM_radio" name="Listening_FM_radio">FM ラジオを聴くには</h3>
+
+<p>Firefox OS 端末の FM ラジオで視聴できる周波数帯の設定は <a href="http://dxr.mozilla.org/mozilla-central/source/dom/fmradio/FMRadioService.cpp">dom.fmradio.band という設定で調整できます</a>が、既存の端末では国内の FM ラジオとは異なる周波数帯が設定されています。</p>
+
+<p>この設定は、<a href="https://github.com/dynamis/firefoxos-patch">こちらで公開されているスクリプト</a> (git clone するか <a href="https://github.com/dynamis/firefoxos-patch/archive/master.zip">ZIP ファイルとしてダウンロード</a>してください) で変更可能です。詳しくは、<a href="https://github.com/dynamis/firefoxos-patch/blob/master/README.md">README</a> をご参照ください。</p>
+
+<h2 id="Device_specifications" name="Device_specifications">対応ネットワークと端末仕様</h2>
+
+<p>仕様の詳細については、<a href="/Firefox_OS/Developer_phone_guide/Phone_specs">端末の機能と仕様のページ</a>もご参照ください。</p>
+
+<h3 id="Network" name="Network">対応ネットワーク</h3>
+
+<ul>
+ <li>WiFi 802.11b/g/n</li>
+ <li>GSM 850/900/1800/1900MHz</li>
+ <li>UMTS 850/900/1900/2100MHz</li>
+ <li>Bluetooth 3.0</li>
+</ul>
+
+<p>SIM カードの大きさは通常サイズです。Micro SIM や Nano SIM をご利用頂く場合にはそれぞれアダプタが必要になります。</p>
+
+<h3 id="Basic_specifications" name="Basic_specifications">基本仕様</h3>
+
+<ul>
+ <li>メーカー: T2Mobile</li>
+ <li>CPU: Qualcomm MSM8210 (デュアルコア 1.2GHz)</li>
+ <li>RAM 容量: 1GB</li>
+ <li>ROM 容量: 8GB</li>
+ <li>外部メモリ: Micro SD カード (最大 32GB、付属品なし)</li>
+ <li>画面サイズ: 4.5 インチ (静電容量式タッチパネル)</li>
+ <li>画面解像度: 854 x 480 (FWVGA)</li>
+ <li>メインカメラ: 5.0 MP、フロントカメラ 2.0 MP</li>
+ <li>SIM カードスロット: 2G/3G デュアル SIM (通常サイズ)</li>
+ <li>本体: 132 x 68 x 10 mm (5.2 x 2.7 x 0.4 インチ)</li>
+ <li>製品重量: 0.12 kg</li>
+</ul>
+
+<h3 id="Hardware" name="Hardware">その他のハードウェア機能</h3>
+
+<ul>
+ <li>NFC</li>
+ <li>Bluetooth 3.0</li>
+ <li>GPS搭載 (A-GPS にも対応)</li>
+ <li>加速度センサー</li>
+ <li>近接センサー</li>
+ <li>環境光センサー</li>
+ <li>FM ラジオ (国内ラジオの視聴については上記参照</li>
+</ul>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">初期セットアップ</a>: Flame で作業するためのコンピュータをセットアップする基本ステップ</li>
+ <li><a href="/Firefox_OS/Developer_phone_guide/Flame/Updating_your_Flame">Flame を更新する</a>: Flame の Firefox OS を更新またはアップグレード、アプリのインストール、トラブル解決、テストする方法</li>
+ <li><a href="https://hacks.mozilla.org/2014/08/videos-getting-started-with-your-flame-device/">Getting started with your Flame</a>: Chris Heilmann による How-to 動画</li>
+ <li><a href="http://mozilla.github.io/flame-on/">Flame On</a>: a great starting page for all Flame owners created at Mozilla Festival 2014.</li>
+ <li><a href="https://blog.mozilla.org/press/2014/02/developer-momentum-2/">Original annoncement</a>: 2014年2月23日のプレス発表 (英語)</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/phone_guide/flame/initial_setup/index.html b/files/ja/archive/b2g_os/phone_guide/flame/initial_setup/index.html
new file mode 100644
index 0000000000..f7701a9283
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/flame/initial_setup/index.html
@@ -0,0 +1,108 @@
+---
+title: 初期セットアップ
+slug: Archive/B2G_OS/Phone_guide/Flame/Initial_setup
+tags:
+ - B2G
+ - Firefox OS
+ - Flame
+translation_of: Archive/B2G_OS/Phone_guide/Flame/Initial_setup
+---
+<div class="summary">
+<p>Flameを入手して端末の更新を試す前に、使っているOSに応じて、確実に従っておくべきいくつかの手順があります。例えばFlameのFirefox OSのバージョンを更新したり、アプリを電話機にプッシュしたり(両方とも下記に載っています)する前に。この両方が続く記事に載っていますが、まず一通りこの記事に取り組むべきです。</p>
+</div>
+
+<h3 id="全てのOS">全てのOS</h3>
+
+<p>コ ンピューターにADBとFastbootをインストールする必要があります — これらは、電話機とコンピューター同士を、USB充電ケーブル接続時に、相互作用を可能にするアプリケーションです。これらは新バージョンの Firefox OSを電話機に焼く時や、無反応状態から回復する時、アプリを電話機にプッシュする時、などに必要です。</p>
+
+<div class="note">
+<p><strong>記</strong>: Ubuntu上で ADB や Fastboot をインストールするには、単に <code>sudo apt-get install android-tools-adb android-tools-fastboot</code> をコマンドラインで使います。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: Mac OS上で ADB や Fastboot をインストールするには、コマンドラインでHomebrewを使いいます。 <a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Installing_ADB">ADBをインストールして使用する</a>.を見て下さい。</p>
+</div>
+
+<p>ADBとFastbootは<a class="external-icon external" href="http://developer.android.com/sdk/index.html" title="Android Developer Tookit">Android Developer Toolkit</a>で入手できます:</p>
+
+<ol>
+ <li>このリンクに移動します。</li>
+ <li>"<em>Download Eclipse ADT</em>"ボタンを押します。</li>
+ <li>ライセンス条件に同意します。</li>
+ <li>32-bitか64-bitバージョンを選択します(よく分からない時は32-bitで良い)</li>
+ <li>最終の"<em>Download Eclipse ADT with the Android SDK...</em>"ボタンをクリックします。</li>
+ <li>ダウンロードが終わったら、コンピューターのデスクトップにzipファイルを展開します。</li>
+ <li>フォルダ名が多少ややこしいかもしれません、単に<em>adt</em>に名前変更します。</li>
+</ol>
+
+<p>ADB はコマンドラインから実行するツールです。ターミナル/コマンドプロンプトを開いた場合、adt/sdk/platform-tools へ移動して <code>adb</code> コマンドを実行します。ADBで何ができるかについての大量の情報が帰ってくるのが見えるでしょう。 <code>adb devices</code> を実行すると <code>List of devices attached</code>の行だけが返り、なぜならまだ端末を接続してないためです。</p>
+
+<p>しかしこの時点で、PATH 変数が ADB ツールを指すようにセットする必要があり、そうするとどこからでも、ADBが入っているディレクトリにいなくても実行できます。</p>
+
+<p>Windows 8 で実行するには(Windows 7 は同様ですがメニューオプションが多少変わります):</p>
+
+<ul>
+ <li>下 端の左側にあるWindows ボタンを右クリックし、Control Panel &gt; System and Security &gt; System &gt; Advanced System settings &gt; Environment Variables を選びます。</li>
+ <li><em>システム変数一覧に、</em>Pathを探して選択して、 <em>Edit...</em> をクリック</li>
+ <li><em>結果のダイアログボックスの変数の値</em> のテキストフィールドの中で、大きな文字列の最後に、セミコロン (;) に続いてお使いのシステムのadbツールの場所を入力します。それは <em>C:\Users\[YOUR USER NAME]\Desktop\adt\sdk\platform-tools</em> になるでしょう。</li>
+ <li>あなたの名前がjamessmithならば、こう入力します; <em>C:\Users\jamessmith\Desktop\adt\sdk\platform-tools</em></li>
+ <li>全てのダイアログボックスでokを押します。</li>
+ <li>コマンドプロンプトを閉じて、新しく開き、<code>adb devices</code> とタイプしてテストします。<code>List of devices attached と出たら成功です</code>! 下記の <a href="#Windows.E3.81.AE.E8.BF.BD.E5.8A.A0.E6.89.8B.E9.A0.86">Windowsの追加手順</a> 節の手順に従う必要もあります。</li>
+</ul>
+
+<p>Mac/Linuxでは:</p>
+
+<ul>
+ <li>Finderアプリで、ホームフォルダに移動します (家のアイコン)</li>
+ <li>まだ非表示ファイル(例えば、ドット(.)で始まるシステムファイル)が見えない場合、ターミナルへ移動し、<code>defaults write com.apple.finder AppleShowAllFiles とコマンド入力し、はいと答えて</code>Finderを再起動します。</li>
+ <li>.bash_profile または .bashrc ファイルを、Text WranglerやSublime Text (プレーンテキストエディタが必要です) のようなプレーンテキストエディタで開きます。</li>
+ <li>ファイル内に PATH=/Users/<em>[YOUR USER NAME]</em>/Desktop/adt/sdk/platform-tools:$PATH と書いた行を追加します</li>
+ <li>ファイルを保存して閉じます。</li>
+ <li>ターミナルを再起動して、<code>adb devices</code>とタイプしてテストします。<code>List of devices attached</code><code> と出たら成功です</code>!</li>
+</ul>
+
+<h3 id="Linuxの追加手順">Linuxの追加手順</h3>
+
+<p>Linuxのディストリビューションによっては、電話機に<a href="https://developer.mozilla.org/ja/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udevルールを追加</a>します。</p>
+
+<p>端末のベンダーIDを知るには、電話機をUSB経由で接続して <code>lsusb</code> コマンドを使ってUSBサブシステム上に検知される端末を見ます。一覧から電話機を見ます見つけて、"ID"に続く4桁の数字をメモします。Flame によくあるIDは <code>05c6 なので、この時のudevルールは</code>下記のようになります:</p>
+
+<pre class="language-html"><code class="language-html">SUBSYSTEM=="usb", ATTRS{idVendor}=="05c6", MODE="0666"</code></pre>
+
+<p>別の番号が載っている場合、代わりにそれを使います。例えば:</p>
+
+<pre class="language-html"><code class="language-html">SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"</code></pre>
+
+<p><code><code>udevadm control --reload-rules </code>を実行し(環境に依っては自動で行われます)、端末の抜き差しを忘れずに行っておきます。</code></p>
+
+<p> </p>
+
+<h3 id="Windowsの追加手順">Windowsの追加手順</h3>
+
+<p>Flame端末に<a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Installing_ADB">ADB</a>やMozilla開発ツールの<a href="https://developer.mozilla.org/ja/Firefox_OS/Using_the_App_Manager">App Manager</a>/<a href="https://developer.mozilla.org/ja/docs/Tools/WebIDE">WebIDE</a>でアクセスするにはUSBドライバが必要です。下記の章にある手順にしたがってインストールして下さい。</p>
+
+<h4 id="ドライバをダウンロードする">ドライバをダウンロードする</h4>
+
+<p><a href="http://cds.w5v8t3u9.hwcdn.net/Alcatel_USB_Driver_Q_4.0.0_2013_11_11_noinstall.zip">この場所からWindowsドライバをダウンロードします。</a>終わったらZIPファイルをハードディスクの適当な場所に展開します。</p>
+
+<div class="note">
+<p><strong>記</strong>: Android デバッグブリッジ (<a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Installing_ADB">ADB</a>) が先にインストールされていなければなりません: まだこれが終わっていない場合、上記指示を見て下さい。</p>
+</div>
+
+<h4 id="USBドライバをインストールする">USBドライバをインストールする</h4>
+
+<p>この時点で、Flame端末とコンピュータをUSBケーブルで接続します。</p>
+
+<p>ドライバをインストールするには、ZIPファイルを展開してできる the <code>Alcatel_USB_Driver_Q_4.0.0_2013_11_11_noinstall</code> フォルダを開き、<code>DriverInstaller.exe</code> の実行ファイルをダブルクリックします。この時に不明な発行元の警告が出るかもしれません。その場合、はいを選んで実行ファイルを起動します。</p>
+
+<p><img alt="Simple dialog box showing a picture of a phone along with install and uninstall buttons." src="https://mdn.mozillademos.org/files/8079/driver-install.png" style="width: 358px; height: 523px; display: block; margin: 0px auto;"></p>
+
+<p><em>Install</em> ボタンをクリックしてドライバをインストールします。</p>
+
+<p>ドライバのインストール後、コマンドラインウィンドーで <code>adb devices</code> とタイプして動作をチェックします。<br>
+ 接続されている端末がこのように出力されます。</p>
+
+<pre class="language-html"><code class="language-html">List of devices attached
+3561d02a device</code></pre>
+
+<p>ここで端末が出てこない時、Windowsのデバイスマネージャを開 きます。Flameが"ACER ADB Interface"として出ているかもしれません。端末を抜いた時にデバイスマネージャで消えるかで、これを確認できます。"ACER ADB Interface"を右クリックし、アンインストールをクリックして、ドライバをアンインストールします。ドライバソフトウェアの削除ダイアログの中でチェックがされていることを確認して下さい。ここで上記のインストーラを再度起動します。Flameの画面タイムアウト設定をいくらか高くしておくとよいでしょう (<em>Settings </em>&gt; <em>Display </em>&gt; <em>Screen timeout</em>) 。画面が消えている時に、Windowsがたまにデフォルトのドライバを再インストールするようです。</p>
diff --git a/files/ja/archive/b2g_os/phone_guide/flame/updating_your_flame/index.html b/files/ja/archive/b2g_os/phone_guide/flame/updating_your_flame/index.html
new file mode 100644
index 0000000000..a0aa0d611b
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/flame/updating_your_flame/index.html
@@ -0,0 +1,441 @@
+---
+title: Flameを更新する
+slug: Archive/B2G_OS/Phone_guide/Flame/Updating_your_Flame
+tags:
+ - Firefox OS
+ - Flame
+ - developer phone
+ - reference device
+translation_of: Archive/B2G_OS/Phone_guide/Flame/Updating_your_Flame
+---
+<div class="summary">
+<p>この記事では、Flame のソフトウェアを更新する方法 (Firefox OS の更新や電話機へアプリをインストールすることを含む) や、データのバックアップ、トラブルシューティングやテストに役立つ情報を扱います。これらを開始する前に、必ず <a href="/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">初回セットアップ</a> の情報に目を通してください。</p>
+</div>
+
+<h2 id="Quick_guide_to_updating_your_device" name="Quick_guide_to_updating_your_device">端末のソフトウェアを更新するためのクイックガイド</h2>
+
+<p>この記事には多くの情報があるため、ここでは、端末を更新するのに必要な手順だけを含めたクイックスタートガイドを記載します。より詳しい内容は、必要に応じて後述のセクションを参照してください。</p>
+
+<h3 id="Full_flash_to_the_latest_base_image" name="Full_flash_to_the_latest_base_image">最新のベースイメージに完全に書き換える</h3>
+
+<p>この一連の手順は、端末に何かする前に必ず行ってください。 (詳細は、後述の <a href="#Base_image">Base image</a> および <a href="#Base_image_installation">Base image installation</a> のセクションを参照してください。)</p>
+
+<p><strong>必要条件</strong>: adb と fastboot をインストールし、システムの <code>PATH</code> を通しておいてください。(<a href="/docs/Mozilla/Firefox_OS/Debugging/Installing_ADB">ADB と Fastboot をインストールする</a> を参照。)</p>
+
+<ol>
+ <li>最新のベースイメージをダウンロードしてください — <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v5/v18D_nightly_v5.zip">ベースイメージ v18D_nightly_v5</a></li>
+ <li>Flame 端末でリモートデバッグを有効にします。<em>環境設定 &gt; 開発者</em> から <a href="/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">USB 経由のデバッグ</a> オプションを有効にします。</li>
+ <li>USB ケーブルで Flame とコンピュータを接続してください。</li>
+ <li>次のコマンドを実行して端末とコンピュータが接続されていることを確認します:
+ <pre class="brush: bash">adb devices</pre>
+ 正しく接続されていれば、次のように表示ます:
+
+ <pre class="brush: bash">List of devices attached
+94f7ce4c device</pre>
+ 端末が認識されていない (2 行目が表示されない) 場合は、USB ケーブルを接続し直し、再度試してください。また、上記の手順 2 のとおりに <em>USB 経由のデバッグ</em> が有効になっているか確認してください。adb が見つからず実行できない場合は、システムの環境変数で adb への PATH が正しく設定されていません (必要条件を参照)。</li>
+ <li>ベースイメージの zip ファイルを展開し、次のコマンドで、新たに作成されたディレクトリを開いてください:
+ <pre class="brush: bash"><em>cd </em>v18D_nightly_v5</pre>
+ </li>
+ <li>以下のご使用のシステム向けのフラッシュスクリプトを実行してください。
+ <pre class="brush: bash"># Windows
+<em>flash.bat</em>
+
+# Linux / OSX
+<em>./flash.sh</em></pre>
+ </li>
+</ol>
+
+<div class="note">
+<p><strong>注記</strong>: ご使用のシステムでファイル名が正しくない場合は、適宜 flash.bat や flash.sh を名前変更してください。内容は同じです。</p>
+</div>
+
+<div class="note">
+<p>補足: 以下のチェックサムでベースイメージのコンテンツを検証してください:</p>
+
+<pre>Checksum: <strong>SHA512(v18D_nightly_v5.zip)= f92123446f71289dd0ea23b0c602f8a192267fbfcf2f25682cbc072f8bbe3e8b795aea3305ba6ea6cc504d252f1d895b07704b5b65700fcf3760e1386b89c431</strong><strong>
+</strong>Build id<strong>: 20151221215202</strong>
+</pre>
+</div>
+
+<p>この時点で、Flame が最新の 2.6 ベースイメージになり、FOTA アップデートを受けられるようになります。</p>
+
+<div class="note">
+<p><strong>補足</strong>: Flame の最新ナイトリービルド (十分にテストされていません) を使用したい場合は、端末の <em>環境設定 &gt; 開発者</em> メニューから下へスクロールし、更新チャンネルを <code>nightly-latest</code> に変更してください。次に、端末を再起動し、<em>環境設定 &gt; 端末情報</em> からソフトウェアの更新を確認してください。 shallow flash をせずに最新バージョンに更新できます。shallow flash については、次のセクションをご覧ください。</p>
+</div>
+
+<h4 id="Update_channel_reset_bug" name="Update_channel_reset_bug">更新チャンネルのリセットバグ</h4>
+
+<p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1217490" title="FIXED: [Aries] The dogfood/dogfood-latest channel are reset to nightly after latest OTA">バグ 1217490</a> で言及されているとおり、一部の Firefox OS テスターが Firefox OS 2.5 や最新の FOTA アップデート (Flame だけでなく他の dogfooding 端末を含む) をテストした際に、FOTA アップデートをインストールすると更新チャンネルが <code>nightly</code> にリセットされてしまう問題が見つかりました。これはつまり、その後の FOTA アップデートが他のチャンネルで配布されてしまうため受けられないことを意味します。この問題を避けるには、WebIDE 経由で Firefox OS の環境設定から更新チャンネルを <code>nightly-latest</code> に設定することを推奨します。手順は以下の通り:</p>
+
+<ol>
+ <li>USB ケーブルで端末をコンピュータに接続します (端末の <a href="/docs/Mozilla/Firefox_OS/Debugging/Developer_settings">開発者設定</a> で、<em>USB 経由のデバッグ</em> オプションが <em>ADB と開発ツール</em> に設定されていることを確認してください)。</li>
+ <li>デスクトップの Firefox を起動し、<a href="/docs/Tools/WebIDE">WebIDE</a> を開きます。</li>
+ <li>WebIDE の右側の <em>USB デバイス</em> のリストから端末に接続してください。端末側で接続の確認が表示されたら許可してください。</li>
+ <li>WebIDE の右側の <em>その他</em> のリストから <em>端末の設定</em> を選択します。</li>
+ <li>設定リストから <code>app.update.channel</code> を見つけ、この設定値を <code>nightly-latest</code> に変更してください。</li>
+ <li>また、さらに永続的に更新したい場合は、<code>app.update.channel.backup</code> を見つけ、この設定値を <code>nightly-latest</code> に変更してください。</li>
+</ol>
+
+<h3 id="Shallow_Flash_to_the_latest_Firefox_OS_nightly_(Gaia_and_Gecko)" name="Shallow_Flash_to_the_latest_Firefox_OS_nightly_(Gaia_and_Gecko)">最新の Firefox OS ナイトリー (Gaia と Gecko) を Shallow Flash する</h3>
+
+<p>この一連の手順は、最新のナイトリービルドに更新したいときにだけ実行する必要があります (詳細は <a href="#Updating_your_Flame_to_a_nightly_build">Updating your Flame to a nightly build</a> を参照してください)。</p>
+
+<p><strong>必要条件</strong>: Windows のユーザは <a href="https://cygwin.com/">Cygwin</a> をインストールする必要があります。これは、Windows 上で Linux 環境のコマンドを提供するものです。以下の説明には、適切なパッケージを自動的にインストールする方法も含まれています。まだインストールしていない場合に実行してください。</p>
+
+<ol>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk/">Mozilla Central</a> から最新のビルドをダウンロードしてください。b2g-XX.XX.en-US.android-arm.tar.gz と gaia.zip の両方のファイルをダウンロードしてください。</li>
+ <li><strong>すべてのプラットフォーム:</strong> <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.sh">shallow flash スクリプト</a> をビルドファイルと同じディレクトリにダウンロードしてください。</li>
+ <li><strong>Windows ユーザ:</strong> <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.bat">shallow_flash.bat</a> Windows スクリプトも同じディレクトリにダウンロードしてください。Cygwin をまだインストールしていない場合は、<a href="https://cygwin.com/setup-x86.exe">Cygwin のインストールファイルをダウンロード</a> してください (このセットアップを実行する必要はありません。<code>shallow_flash.bat</code> スクリプトから自動的に実行され、必要なパッケージと共にインストールされます)。</li>
+ <li>ターミナル (コマンドプロンプト) で、<code>cd</code> を実行してファイルを保存したディレクトリへ移動します。次のコマンドを実行して、ビルドを端末に書き込んでください:
+ <pre class="brush: bash"># Linux
+./shallow_flash.sh --gaia=gaia.zip --gecko=b2g-XX.XX.en-US.android-arm.tar.gz
+
+# Mac
+./shallow_flash.sh --gaia gaia.zip --gecko b2g-XX.XX.en-US.android-arm.tar.gz
+
+# Windows
+# Windows エクスプローラーから shallow_flash.bat アイコン (歯車付き) をダブルクリックして実行することもできます。
+shallow_flash.bat</pre>
+ </li>
+</ol>
+
+<p>この処理は、gaia.zip と b2g-XX.XX.en-US.android-arm.tar.gz ファイルを端末に書き込みます。ファイルが端末へ送られ、処理が完了した後に端末を再起動します。</p>
+
+<div class="note">
+<p><strong>補足</strong>: Linux で、Gaia の書き込み中にスクリプトが失敗する場合、オプションを短いものに置き換えて再度試してください。 <code>--gaia=gaia.zip</code> を <code>-g gaia.zip</code> に置き換え、<code>--gecko=b2g-XX.XX.en-US.android-arm.tar.gz</code> を <code>-G b2g-XX.XX.en-US.android-arm.tar.gz</code> に置き換えてみてください。</p>
+</div>
+
+<h2 id="Updating_upgrading_the_Flame's_software" name="Updating_upgrading_the_Flame's_software">Flame のソフトウェア更新</h2>
+
+<p>Flame 端末に対する Firefox OS ソフトウェアのリリースは、主に 2 つのチャンネルがあります:</p>
+
+<ul>
+ <li>1 つ目は release チャンネルです。工場出荷時の Flame は、このチャンネルのソフトウェアを搭載しています。Flame のソフトウェアが 1.3 から 2.0 または 2.1 へ、メジャーバージョンの OTA アップデートの場合にもこのチャンネルが利用されます。</li>
+ <li>2 つ目は nightly チャンネルです。毎日の OTA アップデートを受け取りたいならば、このチャンネルのソフトウェアを Flame にフラッシュすると良いでしょう。</li>
+</ul>
+
+<h3 id="Base_Image" name="Base_Image">ベースイメージ</h3>
+
+<p>次のリンクから、リカバリイメージとツールをダウンロードできます:</p>
+
+<h4 id="Up-to-date_(use_these_unless_you_have_a_good_reason_not_to)" name="Up-to-date_(use_these_unless_you_have_a_good_reason_not_to)">最新版 (特に避ける理由が無ければこれを使う)</h4>
+
+<ul>
+ <li>製品:
+ <ul>
+ <li>Stable (安定版): <a href="http://cds.w5v8t3u9.hwcdn.net/v18D.zip">Base Image v18D.zip</a>: 最新の安定したアーカイブで、Firefox OS 2.0 の製品版 Flame ベースイメージが含まれています。</li>
+ <li>Nightly (開発版): <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v5/v18D_nightly_v5.zip">Base image v18D_nightly_v5</a>: Firefox OS 2.6 の Flame ベース製品イメージの最新バージョンです。
+ <pre>Checksum: <strong>SHA512(v18D_nightly_v5.zip)= f92123446f71289dd0ea23b0c602f8a192267fbfcf2f25682cbc072f8bbe3e8b795aea3305ba6ea6cc504d252f1d895b07704b5b65700fcf3760e1386b89c431</strong><strong>
+</strong>Build id<strong>: 20151221215202</strong>
+</pre>
+ </li>
+ <li>サイドロード: <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v5/update.zip">v18D_nightly_v5 update.zip</a>: 端末を手動で更新するためのサイドロードファイルです。データを失わずに端末を更新する方法は、<a href="#sideload">sideload</a> セクションをご覧ください。
+ <pre>Checksum: <strong>SHA512(update.zip)= 4c174f901a242a96729aa45d8551200ef4566913473f88f935c264689031a483e46d21856f0919c4dff467277d2f9c90cf0879107a6671d7b84c5d05405f4b6d</strong><strong>
+</strong>Build id<strong>: 20151221215202</strong>
+</pre>
+ </li>
+ <li>Nightly (開発版): <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v4.zip">Base image v18D_nightly_v4</a>: Firefox OS 2.5 の Flame ベース製品イメージが含まれています。これは v3 と同じですが、システムパーティションのサイズが更新されています (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1184980" title="FIXED: System partition size should be updated">バグ 1184980</a> を参照)。端末を Nightly ビルドに更新する前に、必ず、最新のベースイメージをフラッシュして基本システムを更新してください。
+ <pre>Checksum: <strong>SHA512(v18D_nightly_v4.zip)= 9105e29fd39da1ae487b01da4431a803d619d31482147b4383002b8a10268905fd444b108a438395a78d289cfe4e8fba10c3fb6b0d187f3535f027bf90c2391a
+</strong>Build id<strong>: 20150527010201</strong>
+</pre>
+ </li>
+ <li>Nightly (開発版): <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v3.zip">Base image v18D_nightly_v3</a>: Firefox OS 2.5 の Flame ベース製品イメージが含まれており、セキュリティ、フォント、NFC、カメラ、その他の修正 (詳細は <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1154072" title="FIXED: respin of contributor facing build : 18D_nightly ( v3)">バグ 1154072</a> を参照) が含まれます。
+ <pre>Checksum: <strong>SHA512(v18D_nightly_v3.zip)= 98ec1d24604eaed4a22e7d1439501544622788b30f8f2993409bfc2244a4886863d33238aa78ccb7cd5f9f71464058b81920cc0ba85806a1dbf0220d08a8444b</strong></pre>
+ </li>
+ </ul>
+ </li>
+ <li>Engineering: エンジニアリング版のベースイメージはまだありません。製品版のベースイメージを使用し、<a href="#Updating_your_Flame_to_a_nightly_build">エンジニアリング版の nightly ビルドをフラッシュしてください</a>。</li>
+</ul>
+
+<div class="note">
+<p><strong>注記</strong>: 次のコマンドを実行することで、ご使用の端末のベースイメージを確認できます: <code>adb shell getprop ro.bootloader</code> バージョン番号は最後の 4 桁から末尾の数字を除き、先頭に 'v' を付けたものです (例: L1TC000118D0 &gt; v18D)。</p>
+</div>
+
+<div class="warning">
+<p><strong>重要</strong>: 浅い書き込み (shallow flash)、または全部の書き込み (full flash) を実行すると、電話機のデータが上書きされます。更新する前にデータをバックアップしておいてください! 詳細は、<a href="#Backing_up_and_restoring_your_Flame_data">Backing up and restoring your Flame data</a> のセクションをご覧ください。</p>
+</div>
+
+<h4 id="Outdated" name="Outdated">昔の情報</h4>
+
+<p>これらのベースイメージは、安定・製品版のみ提供されています。</p>
+
+<ul>
+ <li><a href="http://cds.w5v8t3u9.hwcdn.net/v188.zip">Base Image v188.zip</a>: Firefox OS 2.0 用の Flame ベースイメージで、前回のイメージからのバグ修正版が入っているアーカイブ。</li>
+ <li><a href="http://cds.w5v8t3u9.hwcdn.net/Flame_2.0_v180_1.zip">Base Image v180.zip</a>: Firefox OS 2.0 用のFlameベースイメージが入っている古いアーカイブ。</li>
+ <li><a href="http://cds.w5v8t3u9.hwcdn.net/v123.zip">Base Image v123.zip</a>: 開発終了になった Android Jellybean ベースの Firefox 1.3 用イメージ。このイメージはもう使わないようにしましょう。</li>
+</ul>
+
+<div class="note">
+<p><strong>注記</strong>: v188 ベースイメージで他言語を使うと、画面上では英語の混じった表示になります。</p>
+</div>
+
+<div class="note">
+<p><strong>注記</strong>: Firefox OS イメージ v180 以上は、Android KK (Kitkat 4.4) ベースになっています。JB (Jellybean 4.1~4.3) ビルドは開発終了しており、サポートされません。ですから v180 より古いものは使わないでください。</p>
+</div>
+
+<h3 id="Base_Image_installation" name="Base_Image_installation">ベースイメージのインストール</h3>
+
+<p>ご使用の端末にベースイメージをインストールするには:</p>
+
+<ol>
+ <li>Flame のリモートデバッグを有効にしてください。端末の <a href="/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">開発者設定 (Developer settings)</a> (このオプションは、Firefox OS 1.3 以前と Firefox OS 1.4 以降で異なります) の配下にある <em>リモートデバッグ (リモートデバッグ/USB 経由のデバッグ)</em> オプションで設定できます。(オプション名は Firefox OS 1.3 以前と 1.4 以降で異なります)</li>
+ <li>Flame とコンピュータを USB ケーブルで接続します。ターミナルから <code>adb devices</code> コマンドを実行して、コンピュータと端末が正しく接続されているか確認してください。</li>
+ <li>前述のベースイメージの <code>.zip</code> ファイルをダウンロードし、デスクトップに展開します。</li>
+ <li>展開したディレクトリを開き、次のとおりに実行します:
+ <ul>
+ <li>Windows の場合は、コマンドプロンプトを開き、先ほど展開したディレクトリへ移動し、<code>flash.bat</code> スクリプトを実行します (またはエクスプローラー上でスクリプトをダブルクリックします)。<br>
+ <strong>補足</strong>: <code>flash.bat</code> が見当たらない場合は、<code>flash.sh</code>ファイルを <code>flash.bat</code> に名前変更して実行してください。<code>adb</code> と <code>fastboot</code> がインストールされ、これらへのパスが環境変数 PATH に書かれているかどうかも確認しておいてください。</li>
+ <li>Linux / OSX の場合は、ターミナルで先ほど展開したディレクトリへ移動し、<code>./flash.sh</code> と入力して <code>flash.sh</code> スクリプトを実行します。(以前の説明では <code>sudo</code> コマンドの利用を薦めていましたが、これは絶対に行わないでください。インターネットからダウンロードしたファイルに対して <code>sudo</code> コマンドを利用することは<strong>非常に危険</strong>です。スクリプトが端末を見つけられない場合は、あなたの <a href="/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev rules</a> が正しいか、もう一度確認してください。) <code>flash.sh</code> が見当たらない場合は、<code>flash.bat</code> ファイルを <code>flash.sh</code> に名前変更した後で、上記のコマンドを実行してください。</li>
+ </ul>
+ </li>
+</ol>
+
+<div class="note">
+<p><strong>注記</strong>: 上記コマンドの実行時に "permission denied" エラーが表示された場合、おそらくシェルスクリプトに適切な権限がありません。 <code>chmod +x flash.sh</code> を実行すると問題を解決できるでしょう。</p>
+</div>
+
+<div class="note">
+<p><strong>注記</strong>: flash スクリプトが "&lt; waiting for device &gt;" で停止し、ディスプレイに "ThunderSoft(R)" が表示されたままになっている場合、fastboot モードでデバイスにアクセスする権限がスクリプトにありません。<a href="/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev ルール</a> をセットアップして、アクセスできるようにする必要があります。また、USB 3 ポートでは fastboot がうまく動作しない可能性があり、この問題の原因となることがあります。</p>
+</div>
+
+<div class="note">
+<p><strong>注記</strong>: ご自身で Flame へインストールするソフトウェアをビルドすることも可能です。こちらもご覧ください: <a href="/Firefox_OS/Building_and_installing_Firefox_OS">Firefox OS のビルドとインストール</a></p>
+</div>
+
+<h4 id="Font_fix" name="Font_fix">フォントの修正</h4>
+
+<div class="warning">
+<p><strong>重要:</strong> この手順は v180ベースイメージでのみ必要です。</p>
+</div>
+
+<p>Gecko と Gaia を v180 ベースイメージの nightly に更新した後、Gecko/Gaia の想定するフォントとベースイメージの提供するフォントとの間にミスマッチが生じます (この問題は v188 で修正されています)。この問題を修正するには、以下の 2 通りの選択肢があります:</p>
+
+<ul>
+ <li><a href="https://people.mozilla.org/~mwu/fira-font-update.zip">フォント更新パッケージ</a> をダウンロードして展開します。その展開したディレクトリを開き、そこに含まれる <code>flash.sh</code> スクリプトを実行する。</li>
+ <li><a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/update_system_fonts.sh"><code>update_system_fonts.sh</code></a> スクリプトを使用する。このスクリプトは、システムフォントを自動的にダウンロードしてフラッシュします。</li>
+</ul>
+
+<h3 id="Updating_your_Flame_to_a_nightly_build" name="Updating_your_Flame_to_a_nightly_build">Flame を nightly ビルドに更新する</h3>
+
+<div class="note">
+<p><strong>注記</strong>: 現在のビルドについて、Firefox OS の Nightly 開発ビルドは A-GPS をサポートしていません。これは、GPS 機能のパフォーマンスを低下させる可能性があります。将来の Nightly チャンネルの更新で、この問題を解決する予定です。</p>
+</div>
+
+<div class="warning">
+<p><strong>重要</strong>: 浅い書き込み (shallow flash)、または全部の書き込み (full flash) を実行する時、電話機のデータが上書きされます。更新する前にデータをバックアップしておいてください! 詳細は、<a href="#Backing_up_and_restoring_your_Flame_data">Backing up and restoring your Flame data</a> のセクションをご覧ください。</p>
+</div>
+
+<ol>
+ <li>電話機を Nightly ビルドに更新する前に、根底のシステムを確実に最新のものにするため、最新のベースイメージを書き込んでください。<u>下記のステップ 3 で使おうとするバージョンと同じか、より新しいバージョンの Firefox OS</u> の <a href="#Base_Image">ベースイメージ</a> をダウンロードし、端末のソフトウェアを前述のように更新します。</li>
+ <li>上記ステップでは端末のオペレーティングシステムがインストールされるため、Flame のリモートデバッグを端末の <a href="/Firefox_OS/Debugging/Developer_settings">開発者設定</a> 内の <em>リモートデバッグ</em> オプションを再び有効にしておく必要があります。</li>
+ <li>次に、インストールするビルドを選んでください (<a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/">https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/</a> にあります)。次のどれか一つになるでしょう:
+ <ul style="margin-left: 40px;">
+ <li>製品ビルド (ロケール含む)
+ <ul>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk/">最新 master ビルド</a> (現在は 2.6)</li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g44_v2_5-flame-kk/">最新 v2.5 ビルド</a></li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g37_v2_2-flame-kk/">v2.2 ビルド</a></li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015/07/2015-07-24-00-12-07-mozilla-b2g34_v2_1-flame-kk/">v2.1 ビルド</a></li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015/07/2015-07-23-00-02-07-mozilla-b2g32_v2_0-flame-kk/">v2.0 ビルド</a></li>
+ </ul>
+ </li>
+ <li>エンジニアビルド (テストアプリと疑似ロケール付き)
+ <ul>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk-eng/">最新 master ビルド</a> (現在は 2.6)</li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g44_v2_5-flame-kk-eng/">最新 v2.5 ビルド</a></li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g37_v2_2-flame-kk-eng/">v2.2 ビルド</a></li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015/07/2015-07-24-00-12-07-mozilla-b2g34_v2_1-flame-kk-eng/">v2.1 ビルド</a></li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/2015/07/2015-07-22-16-02-01-mozilla-b2g32_v2_0-flame-kk-eng/">v2.0 ビルド</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>バージョンを選び、<code>b2g-XX.XX.en-US.android-arm.tar.gz</code> と <code>gaia.zip</code> の両方のファイルをダウンロードします。デスクトップ上の <code>fxos</code> のようなディレクトリの中に保存します。</li>
+ <li><a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.sh">shallow flash スクリプト</a> をダウンロードし、上の 2 個のファイルと同じディレクトリに保存します。</li>
+ <li><strong>Windows ユーザ向け:</strong> この他に Windows スクリプトの <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.bat">shallow_flash.bat</a> と <a href="https://cygwin.com">Cygwin</a> (Windows 上の Linux ライクなコマンド環境) をダウンロードします。デフォルトの Cygwin <em>base</em> カテゴリーに加えて <em>unzip</em> パッケージをインストールする必要がありますが、Cygwin setup*.exe のコピーをスクリプトと同じフォルダに置いておけば、shallow_flash.bat があなたの代わりにやってくれます。</li>
+ <li>
+ <p>ターミナルで、保存したファイルのあるフォルダに <code>cd</code> で移動し、次のコマンドで電話機にビルドを書き込みます:</p>
+
+ <p><strong>Linux</strong>:</p>
+
+ <pre class="brush: bash">./shallow_flash.sh --gaia=gaia.zip --gecko=b2g-XX.XX.en-US.android-arm.tar.gz</pre>
+
+ <p><strong>Mac</strong>:</p>
+
+ <pre class="brush: bash">./shallow_flash.sh --gaia gaia.zip --gecko b2g-XX.XX.en-US.android-arm.tar.gz</pre>
+
+ <p><strong>Windows</strong>:</p>
+
+ <p><code>shallow_flash.bat</code> (歯車アイコン) をダブルクリックするか、コマンドシェルから実行します。これは <code>gaia.zip</code> と、単一の <code>b2g-XX.XX.en-US.android-arm.tar.gz</code> ファイルを書き込みます。</p>
+ </li>
+</ol>
+
+<div class="note">
+<p><strong>補足</strong>: 更新が "Flashing out/target/product/flame/system.img failed because the image was too large." (イメージが大きすぎたため、〜/system.img の書き込みに失敗しました。) のエラーで失敗する場合、最新版の <a href="#Base_Image">ベースイメージ</a> へ更新する必要があります。次に、再びナイトリービルドの適用を試してください。これは、システムパーティションのサイズが更新されたためです (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1184980" title="FIXED: System partition size should be updated">バグ 1184980</a> 参照)。</p>
+</div>
+
+<div class="note">
+<p><strong>補足</strong>: 上記のコマンドで "permission denied" エラーが出た場合、おそらくシェルスクリプトに適切な権限がありません。 <code>chmod +x shallow_flash</code> を実行すると、この問題を解決できるでしょう。</p>
+</div>
+
+<div class="note">
+<p><strong>補足</strong>: "shallow flash" では <a href="/docs/Mozilla/Gecko">Gecko</a> と <a href="/Firefox_OS/Platform/Gaia">Gaia</a> に加えてデータディレクトリを更新します。その一方で、"full flash" では Gecko/Gaia だけでなく、その下の <a href="/Firefox_OS/Platform/Gonk">Gonk</a> 層と端末に特有な関連バイナリも更新します。このことが、上で述べたように、最初に公式の <a href="#">ベースイメージ</a> に更新し、次に適切な Gonk /バイナリ層の上から shallow flash をするのが良いとされる理由です。</p>
+</div>
+
+<div class="note">
+<p><strong>補足</strong>: 各ビルドの更新状態は、<a href="https://wiki.mozilla.org/B2G/QA/Flame_OTA">Flame OTA ステータスのページ</a> で確認できます。</p>
+</div>
+
+<p>インストールの手続きが完了すると、更新されたビルドで端末が再起動し、初回のユーザ設定画面が表示されます。</p>
+
+<h4 id="Switch_to_nightly_update_channel" name="Switch_to_nightly_update_channel">nightly 更新チャンネルに切り替える</h4>
+
+<p>v2.2 では、<a href="/Firefox_OS/Debugging/Developer_settings#Update_channel">開発者設定</a>で、<strong>更新チャンネル</strong> を <code>default</code> から <code>nightly</code> へ変更できます。</p>
+
+<p>以下は、上記の設定が端末に見つからない場合のための古い方法です。</p>
+
+<ol>
+ <li>Flameで remote debugging が有効になっていることを、端末の <a href="/Firefox_OS/Debugging/Developer_settings">Developer settings</a> のUSBオプションの<em>Remote debugging/Debugging から、</em>確認してください。</li>
+ <li><a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/change_channel.sh">change channel</a> スクリプトをダウンロードします: 次のリンクで、 <em>Raw</em> を押して、次にブラウザの保存機能を使ってページを直接 <code>change_channel.sh</code> として保存します。</li>
+ <li>ターミナルで、スクリプトを保存したディレクトリに <code>cd</code> して更新チャンネルを次のコマンドを使って変更します:
+ <pre class="brush: bash">./change_channel.sh -v nightly</pre>
+ </li>
+ <li>端末を一旦再起動し、<em>Settings &gt; Device information &gt; Check now</em> へ移動して更新を確認してください。</li>
+</ol>
+
+<div class="note">
+<p><strong>補足</strong>: このステップは、Firefox OS ソフトウェアの新しいバージョンでは必要ありません。自動的に OTA アップデートを取得できます。</p>
+</div>
+
+<div class="note">
+<p><strong>注記:</strong> いくつか異なる更新チャンネルを選択できます。"./change_channel.sh -h" を実行すると、その他のチャンネルオプションが表示されます。</p>
+</div>
+
+<h3 id="Fastboot_mode" name="Fastboot_mode">Fastboot モード</h3>
+
+<p>端末に新しいビルドをフラッシュするのに失敗した場合、電話機が応答しなくなり、リカバリモードで再起動されることがあります。リカバリモードには、いくつかのオプション (再起動、adb からの更新、データ消去、キャッシュ消去、SD カードからの更新) があります。残念ながら、<em>Update from adb</em> を選ぶとサイドロードモードに入り、他の <code>adb</code> コマンドが使えなくなります。<code>adb sideload</code> コマンド自体は動作するでしょうが、様々な flash スクリプトは他の adb コマンドに依存しています。</p>
+
+<p>以下の手順で強制的に fastboot モードにできます:</p>
+
+<ol>
+ <li>端末の電源を切ります。(極端な場合、バッテリーも外します...)</li>
+ <li>音量ダウンキーと電源ボタンを同時に押しながら、端末の電源を入れます。</li>
+</ol>
+
+<p>しばらくすると、端末に "FASTBOOT" というテキストが表示されます。これは Fastboot モードであり、USB ケーブルの接続を待機しています。この時点で、adb をインストールしたコンピュータと USB ケーブルで接続してください。コンピュータで <code>fastboot devices</code> コマンドを実行すると端末リストを見ることができます。通常の adb コマンドでは端末を見られないので注意してください。fastboot コマンドでだけ見えます。このモードでは、上記で説明した <a href="#Base_Image">ベースイメージ</a> をインストールするスクリプトが使用できます。このスクリプトは、adb と fastboot 両方のコマンドを使えるため、adb からは最初のエラーや警告が出ることもありますが、処理の終わりには、適切に端末にフラッシュできているでしょう。</p>
+
+<h3 id="Emergency_download_mode" name="Emergency_download_mode">緊急ダウンロードモード</h3>
+
+<p>新しいビルドを端末にフラッシュし損ねて端末が操作不能になり、さらに fastboot モードも利用できない場合は、緊急ダウンロードモードを利用して端末を復旧できます。緊急ダウンロードモードに入るには、"Recovery Cable" と書かれた赤いラベルのついた USB ケーブルと <a href="http://cds.w5v8t3u9.hwcdn.net/Flame_Rescure_Tool_(updated_with_tutorial).zip">Emergency Download Tool</a> が必要です。詳しい説明は、ダウンロードしたツールに含まれる Flame emergency rescue tool チュートリアルをご覧ください。技術サポートが必要な場合は、端末製造元 (flameservice [at] thundersoft.com) にお問い合わせください。</p>
+
+<p><img alt="緊急ダウンロードツールを起動したときに表示されるダイアログボックス" src="https://mdn.mozillademos.org/files/9787/EmergencyDownloadTool.jpg" style="height: 363px; width: 497px;"></p>
+
+<div class="note">
+<p><strong>注記</strong>: この提供されたツールは Windows 専用です。</p>
+</div>
+
+<h3 id="Recovery_mode" name="Recovery_mode">リカバリモード</h3>
+
+<p>リカバリモードを利用することで、端末のデータを削除したり、ファームウェアを手動で更新したりできます。リカバリモードに入るには 2 通り方法があります。</p>
+
+<ul>
+ <li><a href="/Firefox_OS/Debugging/Installing_ADB">ADB</a> ツールが利用できる場合は、端末の<a href="/Firefox_OS/Debugging/Developer_settings#Remote_debugging">開発者設定</a>画面からリモートデバッグを有効にした上で、端末とコンピュータを USB ケーブルで接続し、<code>adb reboot recovery</code> とコマンドラインから入力すると、リカバリモードで端末が再起動します。</li>
+ <li>端末の電源が切れている時に、音量アップキーと電源ボタンを同時に押すと、リカバリモードで起動します。</li>
+</ul>
+
+<p>リカバリモードでは、音量アップ / 音量ダウンキーでメニューを上下へ移動、電源キーを押すと項目を選択して実行します。データを消去したり、更新のためのアップグレードパッケージをダウンロードする前には、必ず、連絡先や SMS メッセージなどのデータのバックアップを取るようにしてください。</p>
+
+<h2 id="sideload" name="sideload">ADB サイドロード経由で端末を更新する</h2>
+
+<p>コンピュータに adb をインストールしてあれば、adb sideload コマンドで、端末を現在の <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v5/update.zip">update.zip</a> ビルドに更新できます。手順は以下の通り:</p>
+
+<ol>
+ <li>端末を USB 経由でコンピュータに接続します。</li>
+ <li>次のコマンドを実行します:
+ <pre class="brush: bash">adb reboot recovery</pre>
+ </li>
+ <li>端末の音量ダウンボタンを 1 回押して、メニューの選択項目を "apply update from ADB" オプションへ移動します。行き過ぎた場合は、音量アップキーとダウンキーを押して移動してください。</li>
+ <li>電源ボタンを押してメニューを選択します。</li>
+ <li>コンピュータ上で、update.zip ファイルを置いたディレクトリで次のコマンドを実行します:
+ <pre class="brush: bash">adb sideload update.zip
+</pre>
+ </li>
+ <li>サイドロードが完了するまでお待ちください。完了すると、端末に "Install from ADB complete" と表示されます。</li>
+ <li>端末の音量アップボタンを押して "reboot system now" オプションへ移動し、電源ボタンを押して選択してください。端末が再起動します。</li>
+</ol>
+
+<h2 id="Backing_up_and_restoring_your_Flame_data" name="Backing_up_and_restoring_your_Flame_data">Flame のデータをバックアップ・リストアする</h2>
+
+<p>Flame を通常の用途で使用している場合、(この記事の前の方で説明した通り) 新しいビルドへ更新する際に電話機の連絡先やその他データを失いたくないでしょう。データをバックアップ・リストアするためのBackup and restore profile tool が使用できます。このツールは、<a href="https://github.com/Mozilla-TWQA/B2G-flash-tool">B2G-flash-tool Git リポジトリ</a> から入手できます。</p>
+
+<ol>
+ <li>これを使うには、まずコマンドライン/ターミナルを開きます。</li>
+ <li>次のコマンドで上記のリポジトリを clone します (<a href="http://www.git-scm.com/downloads">Git をインストール</a>しておいてください):
+ <pre class="brush: bash">git clone https://github.com/Mozilla-TWQA/B2G-flash-tool</pre>
+ </li>
+ <li>このツールは、<code>backup_restore_profile.py</code> という名前の python ファイルです。<a href="https://www.python.org/downloads/">Python もインストール</a>しておいてください (2.7.x が良いでしょう)。Linux や Mac のシステムには最初から入っているはずです。</li>
+ <li>次のコマンドで clone したディレクトリに移動してください: <code>cd B2G-flash-tool</code></li>
+</ol>
+
+<div class="note">
+<p><strong>注記</strong>: そのツールを使う時、確実に端末とコンピュータが USB 経由で接続されている事と、ADB (上の <a href="#Base_Image">先にしておく重要な手順</a> を参照) と USB 経由のデバッグ (端末の <a href="/Firefox_OS/Debugging/Developer_settings">開発者設定</a> 内)が有効になっている事も必要です。</p>
+</div>
+
+<div class="note">
+<p><strong>注記</strong>: このファイルを実行する権限がないのに文句を言うメッセージが出た場合、保存ファイルのディレクトリに <code>cd</code> して、次のコマンドを実行します:</p>
+
+<pre class="brush: bash">chmod +x backup_restore_profile.py</pre>
+</div>
+
+<h3 id="Backing_up_data_from_your_phone" name="Backing_up_data_from_your_phone">データを端末からバックアップする</h3>
+
+<p>バックアップの前に、端末が最近の OTA に更新されているか確認してください。これをするには、電話機で <em>環境設定アプリ &gt; 端末情報 &gt; 更新の確認 &gt; 今すぐ確認 </em>をクリックします。利用可能な更新がある場合、すぐに利用可能な更新の通知がでるでしょう。更新をインストールを選びます。</p>
+
+<p><code>backup_restore_profile.sh</code> ファイルを保存したディレクトリで、次のコマンドを実行します:</p>
+
+<pre class="brush: bash">python backup_restore_profile.py -b</pre>
+
+<p>これは、端末プロファイルを <code>mozilla-profile</code> というディレクトリに保存します。このディレクトリは、スクリプトと同じディレクトリ内にあります。</p>
+
+<div class="warning">
+<p>警告: デフォルトでは、内部 SD カードのコンテンツを保存しません。ギャラリーアプリからは、写真や動画などのファイルが保存されません。SD カードのコンテンツをバックアップしたいときは、下記のように <code>--sdcard</code> オプションを付けてください。</p>
+
+<pre class="brush: bash">python backup_restore_profile.py -b --sdcard</pre>
+</div>
+
+<h3 id="Restoring_data_to_your_phone" name="Restoring_data_to_your_phone">データを端末にリストアする</h3>
+
+<p>リストアの前に、端末が最近の OTA に更新されているか確認してください。これをするには、電話機で <em>環境設定アプリ &gt; 端末情報 &gt; 更新の確認 &gt; 今すぐ確認</em> をクリックします。利用可能な更新がある場合、すぐに利用可能な更新の通知がでるでしょう。更新をインストールを選びます。</p>
+
+<p><code>mozilla-profile</code> ディレクトリがあるディレクトリ (上記のセクションを参照) で、次のコマンドを実行します:</p>
+
+<pre class="brush: bash">python backup_restore_profile.py -r</pre>
+
+<div class="note">
+<p><strong>注記</strong>: 次のコマンドで、ツールがサポートするすべてのオプション一覧を得られます:<br>
+ <code>python backup_restore_profile.py -h</code></p>
+</div>
+
+<h2 id="Pushing_apps_to_your_Flame" name="Pushing_apps_to_your_Flame">Flame にアプリを書き込む</h2>
+
+<p><a href="/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a> や <a href="/docs/Tools/WebIDE">WebIDE</a> を使うと、簡単にアプリを端末に書き込んだりテストしたりできます。</p>
+
+<h2 id="RAM_adjustment" name="RAM_adjustment">使用可能な RAM の調整</h2>
+
+<p>メモリが少ない環境でのアプリの振る舞いを調査するために、使用可能な RAM 容量を調整できます。</p>
+
+<p>fastboot モードで調整できます (<a href="/Firefox_OS/Debugging/Installing_ADB">ADB</a> に同梱されている fastboot のインストールが必要です)。fastboot モードに入り、次のコマンドを実行してください:</p>
+
+<pre class="brush: bash">adb reboot bootloader
+fastboot oem mem [0|256-1024]</pre>
+
+<p>“0” と入力するとメモリサイズが自動的に調整されます。容量を具体的に設定するには、256 から1024 の間の数値を指定してください。例えば、使用可能な RAM のサイズを 512M バイトとするには、次のように指定します: <code>fastboot oem mem 512</code></p>
+
+<p>設定を有効にするには、端末の再起動が必要です。次のコマンドを実行して再起動します:</p>
+
+<pre class="brush: bash">fastboot reboot</pre>
+
+<p>現在のメモリサイズを調べるには、次のコマンドを実行します:</p>
+
+<pre class="brush: bash">fastboot getvar mem
+</pre>
diff --git a/files/ja/archive/b2g_os/phone_guide/fx0/index.html b/files/ja/archive/b2g_os/phone_guide/fx0/index.html
new file mode 100644
index 0000000000..b1204135dc
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/fx0/index.html
@@ -0,0 +1,50 @@
+---
+title: Fx0
+slug: Archive/B2G_OS/Phone_guide/Fx0
+tags:
+ - Firefox OS
+ - Fx0
+ - KDDI
+ - Phone
+translation_of: Archive/B2G_OS/Phone_guide/Fx0
+---
+<div class="column-container">
+<div class="column-half"><img alt="" src="https://mdn.mozillademos.org/files/9835/fx0.png" style="display: block; height: 439px; margin-bottom: 20px; margin-right: 50px; margin: 0 auto; width: 200px;"></div>
+
+<div class="column-half">
+<p>Fx0 は、日本で初めてコンシューマ向けに販売された Firefox OS 搭載のハイエンドスマートフォンです。2014年12月25日に KDDI から発売されました。</p>
+
+<h2 id="購入方法">購入方法</h2>
+
+<p>Fx0は日本国内のスマートフォン取り扱い店舗を通して購入することができます。この端末はSIMロックされており、日本国内でのみ使用可能です。</p>
+
+<h2 id="ソフトウェアの更新およびアップグレード方法">ソフトウェアの更新およびアップグレード方法</h2>
+
+<p>Fx0 端末のシステムイメージはロックされており、ソフトウェアの更新は、ネットワーク事業者による OTA のアップデートがリリースされた際にのみ行うことができます。端末のシステムイメージは Firefox OS 2.0 です。</p>
+</div>
+</div>
+
+<h2 id="端末の詳細情報">端末の詳細情報</h2>
+
+<p>端末仕様の詳細は、<a href="/Firefox_OS/Phone_guide/Phone_specs">Firefox OS 端末とその仕様のページ</a> をご覧ください。</p>
+
+<h3 id="ハードウェア">ハードウェア</h3>
+
+<ul>
+ <li><strong>CPU</strong>: Qualcomm Snapdragon S4 MSM8926 1.2GHz quad-core</li>
+ <li><strong>カメラ</strong>: フロントカメラ 800 万画素, バックカメラ 210 万画素</li>
+ <li><strong>バッテリー</strong>: 2,370mAh</li>
+ <li><strong>ディスプレイ</strong>: 4.7"/IPS</li>
+ <li><strong>画面サイズ</strong>: 1280 x 720</li>
+ <li><strong>内部メモリ</strong>: 16GB ROM, 1.5GB RAM</li>
+ <li><strong>外部メモリ</strong>: microSDXC (最大 64GB)</li>
+ <li><strong>端末サイズ</strong>: 70x139x10.5 mm</li>
+ <li><strong>重量</strong>: 約148g</li>
+</ul>
+
+<h2 id="関連ページ">関連ページ</h2>
+
+<ul>
+ <li><a href="http://au-fx.kddi.com/">公式の KDDI Fx0 情報ポータルサイト</a></li>
+ <li><a href="https://blog.mozilla.org/blog/2014/12/22/mozilla-and-kddi-launch-first-firefox-os-smartphone-in-japan/">公式の Mozilla ブログアナウンス</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/phone_guide/geeksphone/index.html b/files/ja/archive/b2g_os/phone_guide/geeksphone/index.html
new file mode 100644
index 0000000000..dbdeb6dbb0
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/geeksphone/index.html
@@ -0,0 +1,107 @@
+---
+title: Geeksphone
+slug: Archive/B2G_OS/Phone_guide/Geeksphone
+translation_of: Archive/B2G_OS/Phone_guide/Geeksphone
+---
+<div class="summary">
+ <p><span class="seoSummary">開発者向けプレビュー版の Firefox OS 端末の多くはは <a href="http://www.geeksphone.com/">Geeksphone</a> から提供されています. 開発者向けの端末であるからには、可能な限りこれで遊んでください!この文書では端末を最新に保ち、Gaia アプリを調整するための TIPS を紹介します。</span></p>
+</div>
+<div class="note">
+ <p><strong>注意:</strong> この手順は旧式の Keon と Peak 向けです。最新の Geeksphone Revolution では必要ありません。</p>
+</div>
+<h2 id="最新イメージへの更新">最新イメージへの更新</h2>
+<p>更新ファイルは設定アプリの端末情報からダウンロードできます。設定できるアップデートの確認頻度は日ごと、週ごと、月ごとの3種類です。また「すぐに確認する」も選択できます。アップデートがある場合は、最新バージョンをダウンロードしインストールするかどうかを確認するプロンプトが表示されます。</p>
+<p><img alt="The screen for checking updates on the Firefox OS settings app" src="https://mdn.mozillademos.org/files/6051/checkupate.png" style="width: 318px; height: 478px; display: block; margin: 0px auto;"></p>
+<h2 id="手動アップデート">手動アップデート</h2>
+<p>Geeksphone は最新の安定版と nightly ビルドを提供しており、それらを利用して端末を手動で更新することもできます。</p>
+<h3 id="端末の設定">端末の設定</h3>
+<p><span style="line-height: 1.572;">手動アップデートをする前に、</span><a href="https://hacks.mozilla.org/2013/05/pushing-firefox-os-apps-to-the-geeksphone/" style="line-height: 1.572;">Pushing Firefox OS Apps to the Geeksphone</a><span style="line-height: 1.572;"> の <span style="line-height: 1.572;">“Setting Up the Geeksphone Device” にある設定をする必要があります。この設定により、データを端末に書き込めるようになります。前述の記事にある手順に従って、正しい USB ドライバをインストールしてください。</span></span></p>
+<div class="note">
+ <p><strong>注意:</strong> USB ドライバを正しく設定することは、特に Windows で重要です。</p>
+</div>
+<p>ビルドは <a href="http://downloads.geeksphone.com/">Geeksphone ダウンロードサイト</a> で提供されます。端末とビルドの種類を選んで、イメージをダウンロードできます。</p>
+<p><img alt="Two phone images side by side, the Geeksphone Keon and Peak, with different software download options below each one." src="https://mdn.mozillademos.org/files/6055/geeksphone-download.png" style="width: 530px; height: 486px; display: block; margin: 0px auto;"></p>
+<p>Download the build according to your device and extract the archive to your filesystem. The archive contains the images and commands required to flash the phone using Windows, Mac OS, or Linux. In order to flash the phone you need to enabled Remote debugging on your phone. This option is avalible in Settings app.</p>
+<p><code><strong>Settings</strong> -&gt; <strong>Device information</strong> -&gt; <strong>More information</strong> -&gt; <strong>Developer</strong></code><strong> tab</strong>.</p>
+<p>Make sure the Phone power level is above 50%, since it's gonna take several restarts to change the system files a power faill can bring disaster.</p>
+<p><img alt="Enabling remote debugging on the Firefox OS Settings app" src="https://mdn.mozillademos.org/files/6049/remote-debugging.png" style="width: 320px; height: 480px; display: block; margin: 0px auto;"></p>
+<h3 id="Windows">Windows</h3>
+<div class="note">
+ <p><strong>Note:</strong> You might need to install USB drivers on Windows. For instructions, see <span style="line-height: 1.572;">the section “Setting Up the Geeksphone Device” in </span><a href="https://hacks.mozilla.org/2013/05/pushing-firefox-os-apps-to-the-geeksphone/" style="line-height: 1.572;">Pushing Firefox OS Apps to the Geeksphone</a><span style="line-height: 1.572;">.</span></p>
+</div>
+<p>Open a Command Prompt (<code>start -&gt; type cmd in search -&gt; enter</code> on Windows 7, <code>Windows key + X -&gt; select Command Prompt</code> on Windows 8) and cd to the directory containing the extracted files. Run:</p>
+<pre class="brush: bash" lang="bash">flash.bat
+</pre>
+<h3 id="Mac_OS">Mac OS</h3>
+<p>Open a Terminal (<code>Cmd + space -&gt; type terminal -&gt; enter</code>) window and cd to the directory containing the extracted files. Run:</p>
+<pre class="brush: bash" lang="bash">./flash_mac.sh
+</pre>
+<h3 id="Linux">Linux</h3>
+<p>To flash a Keon from Ubuntu add the following rules to /etc/udev/rules.d/51-android.rules</p>
+<div>
+ SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", ATTR{idProduct}=="8013", MODE="0666"</div>
+<div>
+ SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d00d", MODE="0666"</div>
+<div>
+  </div>
+<p>Open a Terminal (control-alt-t on Ubuntu) window and cd to the directory containing the extracted files. Run:</p>
+<pre class="brush: bash" lang="bash">./flash.sh
+</pre>
+<p>This should flash the new image to the phone. The phone will need to be set up again as all data will be cleared. If you want to backup your data and restore afterwards, you can follow the instructions at <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition">Backup the phone system partition</a>.</p>
+<h2 id="If_you_have_an_'unagi'_or_developer_preview_phone_that_is_not_a_Geeksphone">If you have an 'unagi' or developer preview phone that is not a Geeksphone</h2>
+<p>If you have a developer phone that is not a Geeksphone such as an 'unagi' or a previously Android-based device, you may need to perform the following steps. If this is not you, please skip to the next section.</p>
+<p>You will need to install <strong>adb</strong> and <strong>fastboot</strong>. These utilities can be found in the Android Developer Toolkit.</p>
+<p>It is not necessary to install the entire toolkit. Download the toolkit from here and extract the contents. adb and fastboot are found in the /platform-tools/ folder. They can be copied to the /usr/bin of your Linux or Mac OS machine, or copied to another folder as long as that folder is added to your $PATH.</p>
+<p>If you are attempting to flash your device and have another device plugged in via USB, your phone may not be detected by these utilities correctly. Only have your phone plugged in while trying to flash it.</p>
+<h2 id="Tweaking_Gaia">Tweaking Gaia</h2>
+<p>If you are the industrious sort, you may want to tweak the default applications in Gaia — the UI in Firefox OS. In this section we will cover some of the basics for cloning Gaia and making changes to the default system apps. Bear in mind these tips are “at your own risk” and may involve you later referring to the section “Ok, I bricked my phone”. Before proceeding make sure that you have adb and fastboot installed on your system. To verify if these are installed open a terminal and type adb devices with your phone connected. You should see your phone listed under the attached devices.</p>
+<p>You should also be able to run fastboot from the terminal. If you run fastboot, a set of parameter options should be displayed. If you do not have adb or fastboot installed, a quick Google search with your operating system will return several quick starts on how to install them. In addition to adb and fastboot you will need Git. If you do not currently have Git installed, have a look at this <a href="https://help.github.com/articles/set-up-git">setup guide</a>. Finally make sure your phone is set up for remote debugging as described in the previous section.</p>
+<p>Once you have the prerequisites you can open a terminal and cd to the directory you would like to clone the Gaia source code to. Type the following commands:</p>
+<pre class="brush: bash" lang="bash">git clone git://github.com/mozilla-b2g/gaia.git gaia
+cd gaia
+</pre>
+<p>This will clone the current Gaia code to your system.</p>
+<div class="warning">
+ <p>If you plan on submitting changes back to the Gaia source, be sure to fork the source before cloning as described in <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia/Hacking">Hacking Gaia</a>.</p>
+</div>
+<p>Currently the Geeksphone Keon uses the v1.0.1 branch of Gaia code, so set the proper branch using the following command before you do anything else:</p>
+<pre class="brush: bash" lang="bash">git checkout -b v1.0.1 origin/v1.0.1
+</pre>
+<p>Most of the system apps are located in the apps subdirectory of gaia. You can now make any changes to these Firefox OS apps you wish. Once you have made changes, make sure your device is mounted properly by first running:</p>
+<pre class="brush: bash">adb remount</pre>
+<p>Next, run the following command to push the modified apps to your phone. This will by default push all the system apps to the phone:</p>
+<pre class="brush: bash" lang="bash">B2G_SYSTEM_APPS=1 make install-gaia
+</pre>
+<p>If you only changed one of the apps you can specify the particular app using similar syntax. In this example only the calendar app will be pushed to the phone:</p>
+<pre class="brush: bash" lang="bash">APP=calendar B2G_SYSTEM_APPS=1 make install-gaia
+</pre>
+<p>If you have issues while making the changes, you can reset the phone to default values using either of the following commands:</p>
+<pre class="brush: bash" lang="bash">make production
+make reset-gaia
+</pre>
+<div class="note">
+ <p><strong>Note</strong>: Bear in mind that either of the above commands will clear any data or apps that you have pushed to the phone. If you want to backup your data and restore afterwards, you can follow the instructions at <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition">Backup the phone system partition</a>.</p>
+</div>
+<h2 id="Ok_I_bricked_my_phone">"Ok, I bricked my phone"</h2>
+<p>If you are in the process of modifying your phone and it becomes “unresponsive” you should be able to recover it using fastboot with a simple procedure. The following illustrates resetting the Keon but other phones should have a similar process. You will also need to verify that you have fastboot and ADB installed (try typing <code>fastboot</code> and <code>adb</code> in the command line if you are not sure).</p>
+<ol>
+ <li>Remove the USB cable and then remove the battery from the phone for 30 seconds.</li>
+ <li>Reinsert the battery and hold down the volume up and power buttons at the same time, for a few seconds, until the system recovery menu appears.</li>
+ <li>Reconnect the USB cable</li>
+ <li>Type in the command run adb reboot bootloader.</li>
+ <li>When the phone reboots and starts to show the Geeskphone logo, you are now in fastboot mode; run the following commands from a terminal window in the directory that contains the latest img files described in the first section of this post:</li>
+</ol>
+<pre class="brush: bash" lang="bash">fastboot flash recovery recovery.img
+fastboot flash boot boot.img
+fastboot flash userdata userdata.img
+fastboot flash system system.img
+fastboot reboot
+</pre>
+<p>This process should recover your phone. If it doesn't seem to work, you may have to try it a second time.</p>
+<h2 id="Go_play!">Go play!</h2>
+<p>We hope these instructions are useful to you, and naturally we want you to be as happy about Firefox OS and the possibilities as we are! Feel free to play around with updating your devices, make changes/updates to Gaia apps, and also be inspired to build you own open web apps.</p>
+<h2 id="See_also">See also</h2>
+<ul>
+ <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Geeksphone/Geeksphone_FAQ">Geeksphone FAQ</a></li>
+ <li><a href="/en-US/Apps/Quickstart/Build/Intro_to_open_web_apps">Introduction to open web apps</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/phone_guide/index.html b/files/ja/archive/b2g_os/phone_guide/index.html
new file mode 100644
index 0000000000..12c01e617e
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/index.html
@@ -0,0 +1,90 @@
+---
+title: Firefox OS 端末ガイド
+slug: Archive/B2G_OS/Phone_guide
+tags:
+ - Firefox OS
+ - Landing
+ - Phones
+ - TopicStub
+translation_of: Archive/B2G_OS/Phone_guide
+---
+<div class="summary">
+<div class="seoSummary">
+<p>ここには Firefox OS 端末(開発者向けと消費者向けの両方)に関する開発者向け情報がまとめられています。 一般的な <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="Building and installing Firefox OS">Firefox OS  のビルドとインストール</a> や <a href="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS" title="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS">Firefox OS のハック方法</a> については、それぞれの文書を参照してください。個別の端末に関しては、以下の文書を参照してください。</p>
+</div>
+</div>
+
+<h2 id="開発者向け端末に関する情報">開発者向け端末に関する情報</h2>
+
+<p>ここに挙げられている端末は Firefox OS でアプリの開発や Firefox OS 自体への貢献をしたい開発者向けに調整されています。それらはたいてい、SIM、システムファイルなどがロックされていません。</p>
+
+<dl>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/Flame">Flame</a></dt>
+ <dd>Mozilla のハイエンドな開発者向け端末 Flame についての情報です。</dd>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone" title="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Geeksphone</a></dt>
+ <dd>Geeksphone のアップデートと、Gaia アプリケーションを調整するための TIPS 集です。</dd>
+ <dt><a href="https://developer.mozilla.org/docs/Mozilla/Firefox_OS/Phone_guide/Nexus_5">Nexus 5</a></dt>
+ <dd>この記事では Nexus 5 でFirefox OS を使う情報を、端末に Firefox OS を焼くことも含めて、提供します。</dd>
+ <dt><a href="https://developer.mozilla.org/docs/Mozilla/Firefox_OS/Phone_guide/Nexus_4">Nexus 4</a></dt>
+ <dd>この記事では Nexus 4 でFirefox OS を使う情報を、端末に Firefox OS を焼くことも含めて、提供します。</dd>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/ZTE_OPEN">ZTE OPEN</a></dt>
+ <dd>ZTE Open に関する情報がまとまっています。</dd>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/ZTE_OPEN_C">ZTE Open C</a></dt>
+ <dd>よりハイエンドなハードウェアとより新しいソフトウェアのあるFirefox OS端末である、ZTE Open C に関する情報がまとまっています。</dd>
+</dl>
+
+<h2 id="消費者向け端末に関する情報">消費者向け端末に関する情報</h2>
+
+<p>ここに挙げられた端末は消費者向けモデルです。端末をハックしたい開発者にとって理想的ではありません。しかし、特定のロケール向けのアプリを開発したい、あるいは、特定の端末上で動作することを保証したい開発者にとっては役に立つ情報があります。端末のさらなる完全な一覧は、 <a href="https://www.mozilla.org/en-US/firefox/os/devices/">購入可能なFirefox OS 端末を探そう</a> ページを参照してください。</p>
+
+<dl>
+ <dt> </dt>
+ <dt><a href="https://developer.mozilla.org/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire">Alcatel One Touch Fire</a></dt>
+ <dd>Firefox OS  1.3 をベースにしています。5 ヶ国以上で購入可能です。</dd>
+ <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Phone_guide/Alcatel_One_Touch_Pixi_3_%283.5%29">Alcatel One Touch Pixi 3 (3.5)</a></dt>
+ <dd><span>ハイエンド消費者のスマートフォンで、2 メガピクセルのカメラを備え、Firefox OS 2.0で強化されています</span></dd>
+ <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_Onetouch_Fire_C_4020D">Alcatel Onetouch Fire 2C 4020D</a></dt>
+ <dd>Tarako Firefox OS (1.3T) をベースにしていて、インドで発売されました。</dd>
+ <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire_C">Alcatel Onetouch Fire C</a></dt>
+ <dd>Tarako Firefox OS (1.3T) をベースにしていて、インドで発売されました。</dd>
+ <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire_E">Alcatel Onetouch Fire E</a></dt>
+ <dd>5カ国以上で入手できます。</dd>
+ <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Cherry_Mobile_Ace">Cherry Mobile Ace</a></dt>
+ <dd>Firefox OS 1.3T をベースにしていて、フィリピンで入手できます。</dd>
+</dl>
+
+<dl>
+ <dt><a href="https://developer.mozilla.org/Firefox_OS/Phone_guide/Fx0">Fx0</a></dt>
+ <dd>日本で初めてリリースされた Firefox OS 端末で、KDDI によって発売されました。</dd>
+ <dt><a href="https://developer.mozilla.org/Firefox_OS/Phone_guide/LG_fireweb"> </a><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Huawei_Y300_II">Huawei Y300 II</a></dt>
+ <dd>Firefox OS 1.1 をベースにしています。 フィリピンとメキシコで購入可能です。</dd>
+ <dt><a href="https://developer.mozilla.org/Firefox_OS/Phone_guide/Intex_Cloud_FX">Intex Cloud FX</a></dt>
+ <dd>インドで初めてリリースされた初の Firefox OS Tarako 端末です(Firefox OS 1.3T をベースにしています)。</dd>
+ <dt><a href="https://developer.mozilla.org/Firefox_OS/Phone_guide/LG_fireweb">LG Fireweb</a></dt>
+ <dd>Firefox OS 1.1 をベースにしています。ウルグアイとブラジルで購入可能です。</dd>
+ <dt><a href="https://developer.mozilla.org/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX1">Spice Firefox MI FX1</a></dt>
+ <dd>Tarako Firefox OS (1.3T) をベースに、インドで発売されました。</dd>
+ <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX2">Spice Firefox MI FX2</a></dt>
+ <dd>ハイエンド消費者向け Firefox OS 3Gスマートフォンで、 <span>2 メガピクセルのカメラを備え、</span>Firefox OS 1.4 をベースに、インドで発売されました。</dd>
+ <dt><a href="https://developer.mozilla.org/Firefox_OS/Developer_phone_guide/Symphony_GoFox_F15">Symphony GoFox F15</a></dt>
+ <dd>The Symphony GoFox F15 はFirefox OS 端末としては初めて3G ビデオ電話機能をもったものです。バングラデシュで発売されました。</dd>
+ <dt><a href="https://developer.mozilla.org/Firefox_OS/Phone_guide/Zen_U105_Fire">Zen U105 Fire</a></dt>
+ <dd>この記事にはインドで購入可能な低価格スマートフォン Zen U105 Fire に関する情報が含まれています。</dd>
+ <dt style="font-size: 13.63636302948px; line-height: 19.0909080505371px;"><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/ZTE_Open_II">ZTE Open II</a></dt>
+ <dd style="font-size: 13.63636302948px; line-height: 19.0909080505371px;"><strong style="font-size: 13.63636302948px; font-weight: bold; line-height: 19.0909080505371px;">ZTE Open II</strong> は消費者向け Firefox OS スマートフォンで、<span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">1.2 GHz デュアルコアプロセッサと </span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">2.0 MP </span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">リアカメラを搭載しています。7 ヶ国で購入可能です。</span></dd>
+ <dt style="font-size: 13.63636302948px; line-height: 19.0909080505371px;"><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Phone_guide/Orange_Klif">Orange Klif</a></dt>
+ <dd style="font-size: 13.63636302948px; line-height: 19.0909080505371px;"><span>Orange Klif は 3G スマートフォンで、2 メガピクセルのカメラを備え、Firefox OS 2.0で強化されています。アフリカの多数の国で入手できます。</span></dd>
+</dl>
+
+<h2 id="Firefox_OS_に関する情報">Firefox OS に関する情報</h2>
+
+<dl>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/Phone_specs">Firefox OS 端末データ</a></dt>
+ <dd>コードネーム、購入方法、ハードウェアの仕様といった Firefox OS 端末の情報がまとまっています。</dd>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/Firefox_OS_device_features">Firefox OS 端末の一般的な特徴</a></dt>
+ <dd>Firefox OS 端末の一般的な特徴と、最小ハードウェア構成についての文書です。</dd>
+ <dt><a href="/ja/Firefox_OS/Troubleshooting">トラブルシューティング</a></dt>
+ <dd>Firefox OS を使う上で、良くあるトラブルとその解決方法を解説します。</dd>
+ <dt><a href="/ja/Firefox_OS/Developer_phone_guide/Best_practices_open_reference_devices">オープンレファレンス端末に関するベストプラクティス</a></dt>
+ <dd>オープンなレファレンス端末に関するベストプラクティス集です。最近の Firefox OS の開発端末は全てこのベストプラクティスに従っています。</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/phone_guide/nexus_4/index.html b/files/ja/archive/b2g_os/phone_guide/nexus_4/index.html
new file mode 100644
index 0000000000..f823a5af39
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/nexus_4/index.html
@@ -0,0 +1,46 @@
+---
+title: Nexus 4
+slug: Archive/B2G_OS/Phone_guide/Nexus_4
+tags:
+ - B2G
+ - Firefox OS
+ - Installing
+ - Nexus 4
+translation_of: Archive/B2G_OS/Phone_guide/Nexus_4
+---
+<p class="summary">この記事は、Nexus 4 で、端末に Firefox OS をインストールすることを含め、Firefox OS を使用することについての情報を提供します。</p>
+
+<h2 id="Nexus_4_に_Firefox_OS_をインストールする">Nexus 4 に Firefox OS をインストールする</h2>
+
+<p>このセクションでは、Firefox OS を Nexus 4 へインストールする手順について説明します。</p>
+
+<h3 id="はじめに">はじめに</h3>
+
+<p><a href="/docs/Mozilla/Firefox_OS/Debugging/Installing_ADB">ADB と Fastboot</a> が必要です。ADB と Fastboot を持っていない場合、<a href="http://developer.android.com/sdk/index.html">Android SDK</a> の一部として ADB と Fastboot をインストールしてください。</p>
+
+<p>Windows ユーザは、Google USB Dirver もインストールしてください。<a href="http://developer.android.com/sdk/win-usb.html">USB ドライバをダウンロード</a>し、<a href="http://developer.android.com/sdk/win-usb.html">インストール手順に従います</a>。</p>
+
+<h3 id="Windows_でのインストール">Windows でのインストール</h3>
+
+<ol>
+ <li><a href="https://index.taskcluster.net/v1/task/gecko.v1.mozilla-central.latest.linux.nexus-4-kk-user.opt/artifacts/public/build/nexus-4-kk.zip">nexus-4-kk.zip をダウンロード</a>します。</li>
+ <li>zip ファイルを展開し、<code>flash.bat</code> ファイルが <code>b2g-distro</code> フォルダ内にあるかを確認します。(見つからない場合は、<a href="https://github.com/nhirata/flash-batch">https://github.com/nhirata/flash-batch</a> から入手できます。)</li>
+ <li>Nexus 4 が起動している場合、電源を切ります。</li>
+ <li>USB ケーブルで Nexes 4 とコンピュータを接続します。</li>
+ <li>電源ボタンをタップして端末を起動し、起動後すぐにボリュームダウンボタンを押して、画面に "Restart bootloader" と表示されるまで、押し続けます。</li>
+ <li><code>flash.bat</code> ファイルをダブルクリックします。</li>
+</ol>
+
+<h3 id="MacLinux_でのインストール">Mac/Linux でのインストール</h3>
+
+<ol>
+ <li><a href="https://index.taskcluster.net/v1/task/gecko.v1.mozilla-central.latest.linux.nexus-4-kk-user.opt/artifacts/public/build/nexus-4-kk.zip">nexus-4-kk.zip をダウンロード</a>します。</li>
+ <li>zip ファイルを展開し、<code>flash.sh</code> ファイルが <code>b2g-distro</code> フォルダ内にあるかを確認します。</li>
+ <li>USB ケーブルで Nexes 4 とコンピュータを接続します。</li>
+ <li>ターミナルを起動し、flash.sh が格納されているディレクトリに移動します。例: <code>cd nexus-4-kk/b2g-distro</code></li>
+ <li>デバイスが検知できているかどうかを確認するために、<code>adb devices</code> とコマンドを入力します。(コマンドについての詳細やヘルプは、<a href="http://developer.android.com/tools/help/adb.html">ADB コマンドセットアップ</a>をご覧ください。)</li>
+ <li>インストール用スクリプトに実行権限を与えるため、<code>chmod +x ./flash.sh</code> とコマンドを入力します。</li>
+ <li><code>./flash.sh</code> とコマンドを入力してスクリプトを実行し、インストールを開始します。</li>
+</ol>
+
+<p>プロセスが完了すると、端末がリブートして、Firefox OS が起動します。</p>
diff --git a/files/ja/archive/b2g_os/phone_guide/nexus_5/index.html b/files/ja/archive/b2g_os/phone_guide/nexus_5/index.html
new file mode 100644
index 0000000000..2a28c72035
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/nexus_5/index.html
@@ -0,0 +1,46 @@
+---
+title: Nexus 5
+slug: Archive/B2G_OS/Phone_guide/Nexus_5
+tags:
+ - B2G
+ - Firefox OS
+ - Installing
+ - Nexus 5
+ - flashing
+translation_of: Archive/B2G_OS/Phone_guide/Nexus_5
+---
+<p class="summary">この記事は、Nexus 5 で、端末に Firefox OS をインストールすることを含め、Firefox OS を使用することについての情報を提供します。</p>
+
+<h2 id="Nexus_5_に_Firefox_OS_をインストールする">Nexus 5 に Firefox OS をインストールする</h2>
+
+<p>このセクションでは、Firefox OS を Nexus 5 へインストールする方法について説明します。</p>
+
+<h3 id="はじめに">はじめに</h3>
+
+<p><a href="/docs/Mozilla/Firefox_OS/Debugging/Installing_ADB">ADB と Fastboot</a> が必要です。ADB と Fastboot を持っていない場合、<a href="http://developer.android.com/sdk/index.html">Android SDK</a> をインストールして下さい。ADB と Fastboot が含まれています。</p>
+
+<p>Windows ユーザは、Google USB Dirver もインストールしてください。<a href="http://developer.android.com/sdk/win-usb.html">USB ドライバをダウンロード</a>し、<a href="http://developer.android.com/sdk/win-usb.html">インストール手順に従います。</a></p>
+
+<h3 id="Windows_でのインストール">Windows でのインストール</h3>
+
+<ol>
+ <li><a href="https://index.taskcluster.net/v1/task/gecko.v1.mozilla-central.latest.linux.nexus-5-user.opt/artifacts/public/build/nexus-5-l.zip">nexus-5-l.zip をダウンロード</a>します。</li>
+ <li>zip ファイルを展開し、<code> flash.bat</code> ファイルが <code>b2g-distro</code> フォルダ内にあるかどうかを確認します。(見つからなかった場合は、<a href="https://github.com/nhirata/flash-batch">https://github.com/nhirata/flash-batch</a> から入手できます。)</li>
+ <li>USB ケーブルで端末と PC を接続します。</li>
+ <li>端末が起動し、ADB モードが有効となっていることを確認して下さい。(<strong>Firefox OS</strong>: <em>Settings &gt; Developer &gt; ADB and DevTools</em>; <strong>Android</strong>: <em>Settings &gt; Developer options &gt; USB debugging</em></li>
+ <li>flash.bat ファイルをダブルクリックします。</li>
+</ol>
+
+<h3 id="MacLinux_でのインストール">Mac/Linux でのインストール</h3>
+
+<ol>
+ <li><a href="https://index.taskcluster.net/v1/task/gecko.v1.mozilla-central.latest.linux.nexus-5-user.opt/artifacts/public/build/nexus-5-l.zip">nexus-5-l.zip をダウンロード</a>します。</li>
+ <li>zip ファイルを展開し、<code>flash.sh</code> ファイルが <code>b2g-distro</code> フォルダ内にあるかを確認します。</li>
+ <li>USB ケーブルで端末と PC を接続します。</li>
+ <li>ターミナルを起動し、flash.sh が格納されたディレクトリに移動します。例えば、<code>cd nexus-5-l/b2g-distro</code> にあります。</li>
+ <li>デバイスが検知できているかどうかを確認するために、以下のコマンドを入力します。(コマンドについての詳細やヘルプは、<a href="http://developer.android.com/tools/help/adb.html">adb コマンドヘルプ</a>をご覧ください。)</li>
+ <li><code>chmod +x ./flash.sh</code> と入力して、インストール用スクリプトに実行権限を与えます。</li>
+ <li><code>./flash.sh</code> と入力して、インストールを開始します。</li>
+</ol>
+
+<p>プロセスが完了すると、端末がリブートして Firefox OS が起動します。</p>
diff --git a/files/ja/archive/b2g_os/phone_guide/phone_specs/index.html b/files/ja/archive/b2g_os/phone_guide/phone_specs/index.html
new file mode 100644
index 0000000000..0c66d96593
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/phone_specs/index.html
@@ -0,0 +1,717 @@
+---
+title: Firefox OS 端末とその仕様
+slug: Archive/B2G_OS/Phone_guide/Phone_specs
+tags:
+ - B2G
+ - Device
+ - Firefox OS
+ - Guide
+ - Mobile
+ - Phone
+ - Specs
+translation_of: Archive/B2G_OS/Phone_guide/Phone_specs
+---
+<div class="summary">
+<p><span class="seoSummary">この文書は、詳細なハードウェアの仕様、コードネーム、初期インストールされている OS のバージョンといった Firefox OS 端末に関する情報を提供します。</span></p>
+</div>
+
+<h2 id="Firefox_OS_phones_available" name="Firefox_OS_phones_available">既存の Firefox OS 端末</h2>
+
+<p>以下の表は、利用可能な Firefox OS 端末のモデルの一覧です。</p>
+
+<div class="note">
+<p><strong>付記</strong>: 購入可能な国名や通信事業者、購入可能な商用端末の情報は、<a href="http://www.mozilla.org/firefox/os/devices/">購入可能な端末</a> のページをご覧ください。</p>
+</div>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">
+ <p>名称 / コードネーム</p>
+ </th>
+ <th scope="col">リリース日</th>
+ <th scope="col">初期 OS バージョン</th>
+ <th scope="col">入手可能性</th>
+ <th scope="col">補足</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire">Alcatel One Touch Fire</a></p>
+ <p><em>hamachi, buri</em></p>
+ </td>
+ <td>2013 年 7 月 12 日</td>
+ <td>1.0.1</td>
+ <td>入手可能</td>
+ <td>ブラジル、ウルグアイ、イタリア、ドイツ、ギリシャ、セルビア、ハンガリー、ポーランドで購入可能。<br>また eBay からも購入可能。</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire_E">Alcatel One Touch Fire E</a></td>
+ <td>2014 年 7 月 18 日</td>
+ <td>1.3.0</td>
+ <td>可能</td>
+ <td>チェコ共和国、ドイツ、ハンガリー、ポーランド、ロシアで購入可能。</td>
+ </tr>
+ <tr>
+ <td><em>otoro, unagi, inari</em></td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ <td>ZTE の入手不可能な端末向け。ZTE Open 以前の開発で利用されていた。</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/ZTE_OPEN">ZTE Open</a></p>
+ <p><em>ikura</em></p>
+ </td>
+ <td>2013 年 7 月 2 日</td>
+ <td>1.0.1</td>
+ <td>入手可能</td>
+ <td>inari に類似。eBay から購入可能</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/LG_fireweb">LG Fireweb</a></p>
+ <p><em>leo</em></p>
+ </td>
+ <td>2013 年 10 月 24 日</td>
+ <td>1.1</td>
+ <td>入手可能</td>
+ <td>ブラジルで購入可能</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/Geeksphone">Geeksphone Keon</a></p>
+ <p><em>keon</em></p>
+ </td>
+ <td>2013 年 4 月 24 日</td>
+ <td>1.0.1</td>
+ <td>在庫切れ</td>
+ <td>開発者向け端末</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/Geeksphone">Geeksphone Peak</a></p>
+ <p><em>peak</em></p>
+ </td>
+ <td>2013 年 4 月 24 日</td>
+ <td>1.0.1</td>
+ <td>在庫切れ</td>
+ <td>"twist" というコードネームであったこともあり。開発者向け端末。</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Geeksphone">Geeksphone Peak+</a></td>
+ <td>-</td>
+ <td>-</td>
+ <td>入手不可</td>
+ <td><a href="http://www.geeksphone.com/?wysija-page=1&amp;controller=email&amp;action=view&amp;email_id=15">販売中止</a></td>
+ </tr>
+ <tr>
+ <td>Geeksphone Revolution</td>
+ <td>2014 年 3 月 4 日</td>
+ <td>1.3pre</td>
+ <td>入手可能</td>
+ <td><a href="http://shop.geeksphone.com/moviles/9-revolution.html">オンラインで購入可能</a></td>
+ </tr>
+ <tr>
+ <td>
+ <p>LG Google Nexus 4</p>
+ <p><em>nexus-4</em></p>
+ </td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ <td>実験的。LG および Google によるサポートなし。端末は製造中止。</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/Flame">Flame</a></p>
+ <p><em>"リファレンス端末"</em></p>
+ </td>
+ <td>2014 年 4 月下旬</td>
+ <td>1.3</td>
+ <td> </td>
+ <td>
+ <p><a href="http://www.everbuying.com/product549652.html">プレオーダー</a><br>
+ 2014 年 12 月 - 売り切れ</p>
+ <p><a href="http://store.shopping.yahoo.co.jp/opensource-store/0001.html">Yahoo! ショッピング OSS ストア</a><br>
+ 在庫なし
+ </p></td>
+ </tr>
+ <tr>
+ <td>
+ <p>Spreadtrum</p>
+ <p><em>tarako</em></p>
+ </td>
+ <td>2014 年第 2 四半期終盤?</td>
+ <td> </td>
+ <td>Available soon</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/ZTE_OPEN_C">ZTE Open C</a></td>
+ <td>2014 年 5 月 13 日</td>
+ <td>1.3</td>
+ <td>入手可能</td>
+ <td><a href="http://www.ebay.co.uk/itm/eBay-exclusive-ZTE-OPEN-C-Latest-Firefox-OS-Dual-Core-3G-Unlocked-Smartphone-/171301269724?pt=UK_Mobile_Phones&amp;hash=item27e259f0dc">オンラインで購入可能</a></td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Symphony_GoFox_F15">Symphony GoFox F15</a></td>
+ <td>2014 年 9 月 16 日</td>
+ <td>1.4</td>
+ <td>入手可能</td>
+ <td>バングラデシュの Grameenphone チャンネルを通してのみ購入可能。</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Intex_Cloud_FX">Intex Cloud Fx</a></td>
+ <td> </td>
+ <td>1.3 </td>
+ <td>入手可能</td>
+ <td>インド国内の <a href="http://www.snapdeal.com/product/intex-cloud-fx/1356760619?utm_source=earth_mobile&amp;utm_campaign=mobiles_new_sku&amp;utm_medium=Intex_cloud_FX&amp;utm_content=SKU">Snapdeal</a> でのみ購入可能</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX1">Spice Fire One (Mi-FX1)</a></td>
+ <td> </td>
+ <td>1.3</td>
+ <td>入手可能</td>
+ <td>インド国内の <a href="http://www.snapdeal.com/product/spice-fire-one-mifx1/531126742?showGoogleAds=true&amp;lastKeyword=spice+fire+one&amp;productTagMapJson=%7B%22Exclusive%22:%7B%22offerDescription%22:%22%22,%22offer%22:false,%22tag%22:%22Exclusive%22,%22tagImageUrl%22:%22http://i2.sdlcdn.com/img/productTagAdmin/07/exclusive.png%22%7D,%22New%22:%7B%22offerDescription%22:%22%22,%22offer%22:false,%22tag%22:%22New%22,%22tagImageUrl%22:%22http://i4.sdlcdn.com/img/productTagAdmin/07/new2.png%22%7D,%22Offer%22:%7B%22offerDescription%22:%22%22,%22offer%22:false,%22tag%22:%22Offer%22,%22tagImageUrl%22:%22http://i2.sdlcdn.com/img/productTagAdmin/07/offer.png%22%7D%7D#prdsc?MID=custom_search_fireone">Snapdeal</a> でのみ購入可能</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Alcatel_Onetouch_Fire_C_4020D">Alcatel OneTouch Fire C 4020D</a></td>
+ <td>2014 年 10 月 1 日</td>
+ <td>1.3</td>
+ <td>入手可能</td>
+ <td>インドの <a href="http://www.flipkart.com/mobiles/alcatel~brand/pr?p%5B%5D=facets.price_range%255B%255D%3DRs.%2B2000%2Band%2BBelow&amp;p%5B%5D=sort%3Dfeatured&amp;sid=tyy%2C4io&amp;ref=b23d5a52-3b84-4fe6-80a9-99f451be31aa#jumpTo=106|2">Flipkart</a> で購入可能</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Zen_U105_Fire">Zen U105 Fire</a></td>
+ <td>2014 年 10 月 16 日</td>
+ <td>1.3</td>
+ <td>入手可能</td>
+ <td>インドの <a href="http://www.homeshop18.com/zen-fire-fox-phone-u105/mobiles/mobile-phones/product:32873765/cid:3027/">Homeshop18</a> で購入可能</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Cherry_Mobile_Ace">Cherry Mobile Ace</a></td>
+ <td>2014 年 11 月</td>
+ <td>1.3T</td>
+ <td>入手可能</td>
+ <td>フィリピンで購入可能</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Fx0">Fx0</a></td>
+ <td>2014 年 12 月</td>
+ <td>2.0</td>
+ <td>入手可能</td>
+ <td>消費者向け携帯電話。日本国内でのみ購入可能。(KDDI 回線契約者のみ)</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Firefox_OS_by_version" name="Firefox_OS_by_version">Firefox OS のバージョン別</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">バージョン</th>
+ <th scope="col">機能完成 (FC) 日付</th>
+ <th scope="col">パートナー向けリリース<br>
+ (RTP) 日付</th>
+ <th scope="col">コードネーム</th>
+ <th scope="col">Gecko のバージョン</th>
+ <th scope="col">含まれるセキュリティ修正</th>
+ <th scope="col">リリースノート</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>1.0</td>
+ <td>2012 年 12月 22 日</td>
+ <td>2013 年 2 月 21日</td>
+ <td>TEF</td>
+ <td>Gecko 18</td>
+ <td>Gecko 18</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>1.0.1</td>
+ <td>2013年 1 月 15 日</td>
+ <td>2013 年 9 月 6 日</td>
+ <td>Shira</td>
+ <td>Gecko 18</td>
+ <td>Gecko 20</td>
+ <td><a href="https://developer.mozilla.org/Firefox_OS/Releases/1.0.1">開発者向け</a><br>
+ <a href="https://support.mozilla.org/kb/whats-new-firefox-os-v11">ユーザ向け</a></td>
+ </tr>
+ <tr>
+ <td>1.1</td>
+ <td>2013 年 3 月 29 日</td>
+ <td>2013 年 10 月 9 日</td>
+ <td>Leo</td>
+ <td>Gecko 18+ (新 <a href="https://ja.wikipedia.org/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%95%E3%82%A7%E3%83%BC%E3%82%B9" title="Application programming interface">API 群</a>)</td>
+ <td>Gecko 23</td>
+ <td><a href="https://developer.mozilla.org/Firefox_OS/Releases/1.1">開発者向け</a><br>
+ <a href="http://www.mozilla.org/firefox/os/notes/1.1/">ユーザ向け</a></td>
+ </tr>
+ <tr>
+ <td>1.1.1</td>
+ <td> </td>
+ <td>TBD</td>
+ <td>HD</td>
+ <td>Same as 1.1.0 with WVGA</td>
+ <td>Gecko 23</td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>1.2</td>
+ <td>2013 年 9 月 15 日</td>
+ <td>2013年 12 月 9 日</td>
+ <td>Koi</td>
+ <td>Gecko 26<sup><a href="http://en.wikipedia.org/wiki/Firefox_OS#cite_note-39">[39]</a></sup></td>
+ <td>Gecko 26</td>
+ <td><a href="/Firefox_OS/Releases/1.2">開発者向け</a><br>
+ <a href="http://www.mozilla.org/firefox/os/notes/1.2/">ユーザ向け</a></td>
+ </tr>
+ <tr>
+ <td>1.3</td>
+ <td>2013 年 12 月 9 日</td>
+ <td>TBD</td>
+ <td> </td>
+ <td>Gecko 28</td>
+ <td>Gecko 28</td>
+ <td><a href="/Firefox_OS/Releases/1.3">開発者向け</a><br>
+ <a href="http://www.mozilla.org/firefox/os/notes/1.3/">ユーザ向け</a></td>
+ </tr>
+ <tr>
+ <td>1.4</td>
+ <td>2014 年 3 月 17 日</td>
+ <td>TBD</td>
+ <td> </td>
+ <td>Gecko 30</td>
+ <td>Gecko 30</td>
+ <td><a href="/Firefox_OS/Releases/1.4">開発者向け</a><br>
+ <a href="http://www.mozilla.org/firefox/os/notes/1.4/">ユーザ向け</a></td>
+ </tr>
+ <tr>
+ <td>2.0</td>
+ <td>2014 年 11 月</td>
+ <td>TBD</td>
+ <td> </td>
+ <td>Gecko 32</td>
+ <td>Gecko 32</td>
+ <td><a href="/Firefox_OS/Releases/2.0">開発者向け</a><br>
+ ユーザ向け (TBD)</td>
+ </tr>
+ <tr>
+ <td>2.1</td>
+ <td>2015 年 1 月?</td>
+ <td>TBD</td>
+ <td> </td>
+ <td>Gecko 34</td>
+ <td>Gecko 34</td>
+ <td><a href="https://developer.mozilla.org/Firefox_OS/Releases/2.1">開発者向け</a></td>
+ </tr>
+ <tr>
+ <td>2.2</td>
+ <td>2015 年 6 月</td>
+ <td>TBD</td>
+ <td> </td>
+ <td>Gecko 37</td>
+ <td>Gecko 37</td>
+ <td><a href="/Firefox_OS/Releases/2.2">開発者向け</a></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Device_specifications" name="Device_specifications">端末の仕様</h2>
+
+<p>注意: 下記には、未発表だがコード名などは公表できる端末の情報も含まれます。Andreas Gal もしくは彼と同等の権限をもつ主体によって公表することを許可された場合を除き、それらの端末に関して、記載された以上の情報を追加してはいけません。</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">名称</th>
+ <th scope="col">バージョン</th>
+ <th scope="col">解像度</th>
+ <th scope="col">画面サイズ (インチ)</th>
+ <th scope="col">CPU</th>
+ <th scope="col">カメラ (Mpx)</th>
+ <th scope="col">RAM</th>
+ <th scope="col">ROM</th>
+ <th scope="col">ストレージ</th>
+ <th scope="col">バッテリ (mAh)</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire">Alcatel One Touch Fire</a></p>
+ <p><em>hamachi, buri</em></p>
+ </td>
+ <td>v1.0.1/v1.1</td>
+ <td>
+ <p>320 x 480<br>
+ PX=1</p>
+ </td>
+ <td>3.5</td>
+ <td>Qualcomm Snapdragon S1 MSM7227A 1 GHz</td>
+ <td>背面: 3.2</td>
+ <td>256MB</td>
+ <td>512MB</td>
+ <td>/data: おそらく inari と同じ。<a href="http://www.alcatelonetouch.com/global-en/products/smartphones/one_touch_fire.html#.Unyg5UOVt1M">仕様上</a> 160MB の "エンドユーザメモリー"<br>
+ おそらく、内蔵の DeviceStorage なし、MicroSD カード (最大 32GB) が必要</td>
+ <td>1400</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire_E">Alcatel One Touch Fire E</a></td>
+ <td>v1.3.0</td>
+ <td>540 x 960</td>
+ <td>4.5</td>
+ <td>
+ <p>Qualcomm Snapdragon 200<br>
+ MSM8210<br>
+ 1.2 GHz<br>
+ デュアルコア
+ </p>
+ </td>
+ <td>背面: 5</td>
+ <td>512MB</td>
+ <td>4GB</td>
+ <td> </td>
+ <td>1700</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/ZTE_OPEN">ZTE Open</a> / variants</p>
+ <p><em>ikura</em></p>
+ </td>
+ <td>v1.0.1 (出荷時)</td>
+ <td>320 x 480<br>
+ PX=1</td>
+ <td>3.5</td>
+ <td>Qualcomm Snapdragon S1 MSM7225A 800 MHz</td>
+ <td>背面: 3.2</td>
+ <td>256MB</td>
+ <td>512MB</td>
+ <td>
+ <p>/data: 152M<br>
+ 内蔵の DeviceStorage なし、MicroSD カードが必要</p>
+ </td>
+ <td>1200</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/LG_fireweb">LG Fireweb</a></p>
+ <p><em>leo</em></p>
+ </td>
+ <td>v1.1</td>
+ <td>320 x 480<br>
+ PX=1</td>
+ <td>4</td>
+ <td>Qualcomm Snapdragon S1 MSM7227A 1 GHz</td>
+ <td>背面: 5</td>
+ <td>512MB</td>
+ <td>4GB</td>
+ <td>
+ <p>/data: 1007.90M<br>
+ 内蔵 DeviceStorage: あり、サイズ不明。約 3.7G だが正確でない。(On an unhapy device /sys/devices/platform/msm_sdcc.3/mmc_host/mmc0/mmc0:0001/block/mmcblk0/block is 7733248, and then assuming a 512 byte block size, we get 3.7G)</p>
+ </td>
+ <td>1540</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/Geeksphone">Geeksphone Keon</a></p>
+ <p><em>keon</em></p>
+ </td>
+ <td>
+ <p>v1.0.1 - nightly</p>
+ </td>
+ <td>320 x 480<br>
+ PX=1</td>
+ <td>3.5</td>
+ <td>Qualcomm Snapdragon S1 7225AB 1 GHz</td>
+ <td>背面: 3</td>
+ <td>512MB</td>
+ <td>4GB</td>
+ <td>
+ <p>/data: 1.5G<br>
+ 内蔵 DeviceStorage: 1023.4M</p>
+ </td>
+ <td>1580</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/Firefox_OS/Phone_guide/Geeksphone">Geeksphone Peak</a></p>
+ <p><em>peak</em></p>
+ </td>
+ <td>v1.0.1 - nightly</td>
+ <td>540 x 960<br>
+ PX=1.5</td>
+ <td>4.3</td>
+ <td>Qualcomm Snapdragon S4 8225 1.2 GHz デュアルコア</td>
+ <td>
+ <p>前面: 2<br>
+ 背面: 8</p>
+ </td>
+ <td>512MB</td>
+ <td>4GB</td>
+ <td>/data: 1.5G<br>
+ 内蔵 DeviceStorage: 1023.4M</td>
+ <td>1800</td>
+ </tr>
+ <tr>
+ <td>Geeksphone Revolution</td>
+ <td>v1.3pre (出荷時)</td>
+ <td>540 x 960 PX=1.5</td>
+ <td>4.7</td>
+ <td><span class="mini-text">Dual-core Intel® Atom™ processor Z2560 with up to 1.6GHz</span></td>
+ <td>
+ <p>前面: 1.3 背面: 8</p>
+ </td>
+ <td>1GB</td>
+ <td>4GB</td>
+ <td>
+ <p>/data: 2G<br>
+ 内蔵 DeviceStorage: 2.5GB</p>
+ </td>
+ <td>2000</td>
+ </tr>
+ <tr>
+ <td>
+ <p>Nexus 4</p>
+ <p><em>nexus-4</em></p>
+ </td>
+ <td>v1.3 - nightly</td>
+ <td>768 x 1280<br>
+ 720p</td>
+ <td>4.7</td>
+ <td>
+ <p>Qualcomm<br>
+ <span class="mw-redirect">Snapdragon S4 Pro</span><br>
+ 1.5 GHz クアッドコア</p>
+ </td>
+ <td>背面: 8</td>
+ <td>2GB</td>
+ <td>8 または 16GB</td>
+ <td>一つの端末内にすべて搭載、外部 (MicroSD) ストレージなし。入手された Nexus 4 端末のモデルによって様々。</td>
+ <td>2100</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="https://wiki.mozilla.org/FirefoxOS/TCP">Foxconn InFocus</a></p>
+ <p><em>flatfish</em></p>
+ </td>
+ <td> </td>
+ <td>1280 x 800</td>
+ <td>10</td>
+ <td>Allwinner A31, Cortex A7 クアッドコア 1.0 GHz</td>
+ <td>
+ <p>前面: 2<br>
+ 背面: 5</p>
+ </td>
+ <td>2GB</td>
+ <td>16GB</td>
+ <td> </td>
+ <td>7000</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="https://wiki.mozilla.org/Platform/2013-11-05">some phone thing</a></p>
+ <p><em>fugu</em></p>
+ </td>
+ <td>v1.2f (branch) <a href="https://groups.google.com/d/msg/mozilla.dev.b2g/JKAu9UNjBf8/9zj5Y3m6518J">per</a></td>
+ <td>320 x 480</td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ <td>256MB</td>
+ <td> </td>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="https://wiki.mozilla.org/FirefoxOS/Tarako">Spreadtrum SC6821</a></p>
+ <p><em>tarako</em></p>
+ </td>
+ <td>v1.3 <a href="https://wiki.mozilla.org/FirefoxOS/Tarako">per</a></td>
+ <td>HVGA<br>
+ 320 x 480</td>
+ <td>3.5</td>
+ <td>Spreadtrum SC6821, Cortex A5 1GHz</td>
+ <td>0.3 (背面のみ?)</td>
+ <td>128MB (zram)</td>
+ <td>2GB NAND flash (外部) + 1GB LPDDR1 (内蔵)</td>
+ <td>32GB micro SD カード</td>
+ <td>1100</td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="https://hacks.mozilla.org/2014/02/open-applications-tcp/">VIA Vixen</a></p>
+ <p><em><a href="https://wiki.mozilla.org/Platform/2014-03-18">community-driven customization of flatfish</a>?</em></p>
+ </td>
+ <td> </td>
+ <td>1024 x 600</td>
+ <td>7</td>
+ <td>Cortex-A9 デュアルコア 1.2 GHz</td>
+ <td>
+ <p>前面: 0.3<br> 背面: 2</p>
+ </td>
+ <td>1GB</td>
+ <td>8GB</td>
+ <td> </td>
+ <td> </td>
+ </tr>
+ <tr>
+ <td>
+ <p><a href="/en-US/Firefox_OS/Phone_guide/Flame">Flame</a></p>
+ <p><em>"リファレンス端末"</em></p>
+ </td>
+ <td>v1.3</td>
+ <td>
+ <p>FWVGA<br>
+ 854 × 480<br>
+ PX=1.5<br>
+ </p>
+ </td>
+ <td>4.5 capacitive touch</td>
+ <td>Qualcomm Snapdragon 200 MSM8210, 1.2GHz デュアルコアプロセッサ</td>
+ <td>前面: 2<br>
+ 背面: 5</td>
+ <td>256MB~1GB (開発者が調整可能)</td>
+ <td>8GB</td>
+ <td>32GB micro SD カード (USB 2.0)</td>
+ <td>1800</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/ZTE_OPEN_C">ZTE Open C</a></td>
+ <td>v1.3</td>
+ <td>800 x 480 PX=1.5</td>
+ <td>4</td>
+ <td>Qualcomm Snapdragon 200 MSM8210, 1.2GHz デュアルコアプロセッサ</td>
+ <td>背面: 3</td>
+ <td>512MB</td>
+ <td>4GB</td>
+ <td>/data: 1G</td>
+ <td>1400</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Symphony_GoFox_F15">Symphony GoFox F15</a></td>
+ <td>v1.4</td>
+ <td>320 x 480<br>
+ PX=?</td>
+ <td>3.5</td>
+ <td>Spreadtrum 1 GHz シングルコアプロセッサ</td>
+ <td>
+ <p>前面: 0.3<br>
+ 背面: 3.2 with Flash</p>
+ </td>
+ <td>512MB</td>
+ <td>512MB</td>
+ <td> </td>
+ <td>1450</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Intex_Cloud_FX">Intex Cloud Fx</a></td>
+ <td>v1.3</td>
+ <td>320 x 480</td>
+ <td>3.5</td>
+ <td>Spreadtrum 1 GHz</td>
+ <td><br>
+ 背面: 2.0 without Flash</td>
+ <td>128 MB</td>
+ <td>256 MB</td>
+ <td>
+ <p>Data: 2G</p>
+ <p>内部ストレージ: 46 MB (ユーザメモリー)</p>
+ <p>外部 - Micro SD カード: 4GB まで可能</p>
+ </td>
+ <td>1250</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX1">Spice Fire One (Mi-FX1)</a></td>
+ <td>V 1.3</td>
+ <td>320 x 480</td>
+ <td>3.5</td>
+ <td>Spreadtrum 1 GHz</td>
+ <td>
+ <p>前面: VGA</p>
+ <p>背面: 1.3</p>
+ </td>
+ <td>128MB</td>
+ <td>512MB</td>
+ <td>
+ <p>Data: 2G</p>
+ <p>内部ストレージ: 67.9 MB (ユーザメモリー)</p>
+ <p>外部 - Micro SD カード: 4GB まで可能</p>
+ </td>
+ <td>1400</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Alcatel_Onetouch_Fire_C_4020D">Alcatel OneTouch Fire C 4020D</a></td>
+ <td>v1.3</td>
+ <td>320 x 480</td>
+ <td>3.5</td>
+ <td>Spreadtrum 1 GHz</td>
+ <td> </td>
+ <td>128MB</td>
+ <td>256MB</td>
+ <td>
+ <p>Data: 2G</p>
+ <p>内部ストレージ: 65MB (ユーザメモリー)</p>
+ <p>がいぶ - Micro SD カード: 32GB まで可能</p>
+ </td>
+ <td>1000</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Zen_U105_Fire">Zen U105 Fire</a></td>
+ <td>v1.3</td>
+ <td>320 x 480</td>
+ <td>3.5</td>
+ <td>Spreadtrum 1GHz</td>
+ <td>
+ <p>前面: VGA</p>
+ 背面: 2</td>
+ <td>128MB</td>
+ <td>256MB</td>
+ <td>
+ <p>Data: 2G</p>
+ <p>外部 - Micro SD カード: 16GB まで可能</p>
+ </td>
+ <td>1200</td>
+ </tr>
+ <tr>
+ <td><a href="/Firefox_OS/Phone_guide/Fx0">Fx0</a></td>
+ <td>v2.0</td>
+ <td>1280 x 720</td>
+ <td>4.7</td>
+ <td>Qualcomm Snapdragon S4 MSM8926 1.2GHz クアッドコア</td>
+ <td>
+ <p>前面: 8</p>
+ <p>背面: 2.1</p>
+ </td>
+ <td>1.5GB</td>
+ <td>16GB</td>
+ <td>microSDXC (最大 64GB)</td>
+ <td>2370</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>凡例:</p>
+
+<ul>
+ <li>解像度:
+ <ul>
+ <li>幅 x 高さ</li>
+ <li>PX=1, PX=1.5, or PX=2 は端末で利用される GAIA_DEV_PIXELS_PER_PX の値。</li>
+ </ul>
+ </li>
+ <li>ストレージ:
+ <ul>
+ <li>"/data" が IndexDB、その他のデータの保存場所。ストレージはアプリごとに分けられており、USB ストレージにはアクセスできないようになっています。adb 経由で権限に応じたデータへアクセスできます。</li>
+ <li>DeviceStorage は <a href="/docs/WebAPI/Device_Storage">DeviceStorage API</a> を利用して操作します。端末の中には内部にストレージを持つものもあります。また MicroSD カードを外部ストレージとして利用できるものもあります。leo は外部ストレージと内部ストレージの両者を利用できます。このストレージにはアプリ、ユーザともに USB 経由でアクセスできます。</li>
+ <li>値は "adb shell df" で取得された "size" 値を記入しています。そのため、丸められて不正確なものもあります。</li>
+ </ul>
+ </li>
+</ul>
diff --git a/files/ja/archive/b2g_os/phone_guide/zte_open/index.html b/files/ja/archive/b2g_os/phone_guide/zte_open/index.html
new file mode 100644
index 0000000000..24e0bd67fa
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/zte_open/index.html
@@ -0,0 +1,298 @@
+---
+title: The Firefox OS ZTE OPEN
+slug: Archive/B2G_OS/Phone_guide/ZTE_OPEN
+tags:
+ - Firefox OS
+ - Gaia
+ - Gecko
+ - Phone
+ - zte
+translation_of: Archive/B2G_OS/Phone_guide/ZTE_OPEN
+---
+<div class="summary">
+<p>MozillaはZTEと一緒にZTE OPENをつくりました。世界中の開発者とアーリーアダプターに向けた Firefox OS ベースのパワフルなデバイスです。テストや実験用のために、ロックはなくオープンです。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: この操作法はZTE Opec C端末向けでは<strong>ありません</strong> ZTE Open C端末を持っている場合は代わりに<a href="https://developer.mozilla.org/en-US/Firefox_OS/Developer_phone_guide/ZTE_OPEN_C">ZTE Open C</a>のページへ移動してください。</p>
+</div>
+
+<h2 id="デバイスの購入">デバイスの購入</h2>
+
+<p>ZTE Open の販売は終了し、もう入手できません。<a href="https://developer.mozilla.org/Firefox_OS/Developer_phone_guide/ZTE_OPEN_C" style="font-style: italic;">ZTE Open C</a>を見てください。</p>
+
+<h2 id="Firefox_OS_を更新する">Firefox OS を更新する</h2>
+
+<p>この章ではZTE OPEN端末上で Firefox OS を更新する方法を提供します。</p>
+
+<h3 id="概要">概要</h3>
+
+<p>概して、 Firefox OS のビルド、更新、テストは、電話をUSBケーブルでコンピューターに接続し、ADB (Android Debugging Bridge)とFastbootを使って端末を結合してコマンドを発行することで完了します.すなわちADBとfastboootを<a href="http://developer.android.com/sdk/index.html" title="Android Developer Tookit">Android Developer Toolkit</a>からデスクトップ機にインストールする必要があるでしょう。ツールキット全体をインストールする必要はありません。ADBとfastbootは <code>/platform-tools/</code> フォルダーに見つかります。</p>
+
+<p>次に、電話機で <a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Developer_settings#Remote_debugging">リモートデバッグを有効</a>にします。</p>
+
+<h3 id="Firefox_OS_1.1">Firefox OS 1.1</h3>
+
+<p>2013年12月10日に、ZTEはZTE OPEN 用にアップグレードされた Firefox OS 1.1 をリリースしました。それまで発行済のビルドで問題が起こっていた結果、こ<strong>れはfastbootが有効になっています</strong></p>
+
+<p>この観点から、バージョン1.2にしたい場合でも、最初に電話機をバージョン1.1に更新することがベストです。このためには、あなたの電話機に応じた(<a href="http://www.ztedevices.com/support/smart_phone/b5a2981a-1714-4ac7-89e1-630e93e220f8.html">OPEN (American Standard)</a> または <a href="http://www.ztedevices.com/support/smart_phone/cba40ed6-d3ab-44c0-bdee-3a15803dc187.html">OPEN (European Standard)</a>) の1.1パッケージをダウンロードします。注意点として、OSのリビジョンに対応したバージョンをダウンロードします(つまり、V1.0からアップグレードする場合、、 "V1.1.0B02(for V1.0)"をダウンロードします。)。ZIPファイルの中にはアップグレード用の文書もあります。ファームウェアのZIP(ダウンロード済のZIP内)を、下記のように展開、コピーします。</p>
+
+<div class="note">
+<p><strong>記</strong>: SDパッケージのインストールにより、ユーザーデータは上書きされます。開始前に<a href="https://developer.mozilla.org/ja/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition">データをバックアップ</a>するべきです。</p>
+</div>
+
+<p>次に下記の手順に従います:</p>
+
+<ol>
+ <li>電話機の電源を切り、電池を外してmicroSDカードを取り外します。</li>
+ <li>microSDカードをデスクトップマシンに接続します。</li>
+ <li><strong>US_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip</strong> か <strong>EU_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip</strong> を(ダウンロード済のバージョンによります)microSDカードのルートディレクトリに移動します。zipを展開しないでください。</li>
+ <li>microSDカードをコンピューターから取り外し、電話機に戻します。</li>
+ <li>ボリュームアップキーと電源ボタンを同時に押します。電話機の左側の長いキーの上部が ボリュームアップです。正しく行うと、 Firefox OS のリカバリモードに入ります。(記: Firefox OS ロゴはリカバリモードに入る前に一瞬表示されます。長い間かかることもあります。)</li>
+ <li>ボリュームアップ/ダウンキーを使ってメニュー項目を動かし、“<strong>apply update from external storage</strong>.”を選びます。</li>
+ <li>電源ボタンを押して選択を確認します。別の画面でmicroSDカード内のファイル一覧が表されます。</li>
+ <li>またボリュームアップ/ダウンキーを使ってファームウェアを選択します。これは<strong>US_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip</strong> または <strong>EU_DEV_FFOS_V1.1.0B04_UNFUS_SD.zip</strong> (ダウンロード済のバージョンによります)のいずれかです、電源ボタンを押して確認します。</li>
+</ol>
+
+<p>すべてが上手く行ったら、<em>“<strong>Install from sdcard complete</strong>.</em>”という一連のステータスメッセージが見えます。インストールが完了したら“reboot system now”を選択する必要があり、すると電話機が再起動し、最初に電源をオンにした時に見えた設定画面が見えるでしょう。</p>
+
+<h3 id="Firefox_OS_1.2">Firefox OS 1.2</h3>
+
+<p>2014年1月、ZTEは Firefox OS 1.2のベータバージョンをリリースしました(fastboot有効、rootアクセス有り)。これはベースラインとなるバージョン1.1とバージョン1.2のGeckoとGaiaを足したものでした。そして電話機のSDカードにビルドを置く必要はありません。</p>
+
+<p>上記で記述した1.1をインストール済みの状態でターミナルを開いて、接続できているかを下記コマンドでチェックします:</p>
+
+<pre class="brush: bash">adb devices -l</pre>
+
+<p>レスポンスとして"roamer2    device usb:2-1.2"といったように端末を見ることができます。</p>
+
+<p>ZTEがセットアップしたDropboxアカウントから、適切なバージョンをダウンロードします(<a href="https://www.dropbox.com/sh/rnj3rja7gd54s98/32KXfFmedN/P752D04_DEV_US_20131212_v1.2.7z" title="Firefox OS 1.2 build for ZTE Open US">US version</a> か <a href="https://www.dropbox.com/sh/rnj3rja7gd54s98/_twgXEkMFH/P752D04_DEV_EU_20131212_v1.2.7z" title="Firefox OS 1.2 build for ZTE Open UK">UK version</a>)。Windows ユーザーには<a href="https://www.dropbox.com/sh/rnj3rja7gd54s98/6ZoJwmlRjn/Installation%20Instruction.docx" title="Special upgrade instructions for Windows users">特別な指示をダウンロード</a> したり、新バージョンを簡単にインストールする<a href="https://www.dropbox.com/sh/rnj3rja7gd54s98/-fyi2XHFPG/upgrade_tool" title="Upgrade tool">アップグレードツール</a> もあります。ただ下記のステップは <strong>全てのOS</strong> (Linux, OS X, とWindows) で特別なツールがなくても動きます。</p>
+
+<p>ファイルを取得したら、内容を抜き出してコンソールを開きます。下記ステップは個人データを消去するため、最初に (<a href="https://developer.mozilla.org/ja/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition">バックアップ</a>) を取得して下さい。次にファイルがある場所に移動し、コンソールのまま、下記コマンドをタイプします:</p>
+
+<pre class="brush: bash">adb reboot bootloader</pre>
+
+<p>電話機が再起動した時、下記コマンドを実行します(Fastbootは再起動中にのみ作動します):</p>
+
+<pre class="brush: bash">sudo fastboot devices</pre>
+
+<p>"&lt; waiting for device &gt;"と表示されたら、Ctrl-C を押して、"ROAMER2    fastboot"という反応が返ってくるのを待ちます。</p>
+
+<p>次に、再起動しているうちにすぐ下記コマンドを実行します:</p>
+
+<pre class="brush: bash">fastboot flash boot boot.img
+fastboot flash userdata userdata.img
+fastboot flash system system.img
+fastboot flash recovery recovery.img
+fastboot erase cache
+fastboot reboot</pre>
+
+<p>(気が散っていて全てのコマンドを入力するまでに再起動してしまった場合、"adb reboot bootloader"から再開します。)</p>
+
+<p>全てがうまくいった場合、電話機がここで再起動します。ZTEのバージョン1.2は多くのテストアプリが含まれているのに気づくでしょう。希望によりそれらを削除できます。</p>
+
+<div class="note">
+<p><strong>記</strong>: <span class="url">Frédéric Harperによる</span> <a href="https://hacks.mozilla.org/2014/01/upgrading-your-zte-open-to-firefox-1-1-or-1-2-fastboot-enabled/">Upgrading your ZTE Open to Firefox 1.1 or 1.2 (fastboot enabled)</a> にも便利なインストールプロセスの明細があります。</p>
+</div>
+
+<div class="note">
+<p><strong>記</strong>: ZTEのOpen用の1.2ビルドにはバグがあり、通知トレイが引き出せない/開きません。最新のエンジニアリング版Firefox OS 1.2を焼くことで解決できます。<a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Installing_ADB">ADB をインストールして</a> かつ <a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">remote debugging</a> をオンにして、ターミナルで下記コマンドを実行します:<br>
+ <br>
+ <code>git clone -b v1.2 <a href="https://github.com/mozilla-b2g/gaia.git" rel="nofollow">https://github.com/mozilla-b2g/gaia.git</a> gaia_v1.2<br>
+ cd gaia_v1.2<br>
+ make reset-gaia</code></p>
+</div>
+
+<h3 id="Firefox_OS_1.3とそれ以降">Firefox OS 1.3とそれ以降</h3>
+
+<p>ZTEは現状、Movistar (TME)向けに発売された青いZTE Open用の Firefox OS 1.3 のみをリリースしています。<a href="http://www.ztedevice.com/support/selectproduct.html">サポートサイト(英語)</a> や <a href="http://download.ztedevice.com/UpLoadFiles/product/550/3363/soft/2015030408423528.zip">直接ダウンロード</a>してパッケージを見つけられます。</p>
+
+<div class="note">
+<p><strong>注記</strong>: コミュニティビルドは <a href="http://forum.xda-developers.com/firefox-os/general/firefox-os-2-1-zte-1st-gen-modui-t2855235">ここ</a> と <a href="http://unofficialopenrom.free.fr/">ここ</a>に提供されています。</p>
+</div>
+
+<p>For the ebay ZTE Open, ZTE haven't released builds for Firefox OS 1.3 and beyond. To get these on your ZTE open you'll have to manually <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">build and install a new Firefox OS/B2G</a> build on it (start at the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">build prerequisite</a> instructions, and treat the ZTE like it is an Inari device, for the purposes of configuration). You can recover your phone if necessary, using the procedure cited in the <a href="#I_bricked_my_phone">I bricked my phone</a> section.</p>
+
+<h2 id="仕様">仕様</h2>
+
+<p>You can find more of the device specifications listed on our <a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Phone_specs">Phone and device specs page</a>.</p>
+
+<h3 id="ネットワーク">ネットワーク</h3>
+
+<ul>
+ <li>UMTS 850/1900 or UMTS900/2100</li>
+ <li>GSM 850/900/1800/1900 (2G EDGE)</li>
+ <li>Wifi b, g, n</li>
+ <li>Bluetooth 2.1 EDR</li>
+</ul>
+
+<div class="note">
+<p><strong>Note</strong>: 香港版の機種は tri-band 3Gネットワークもサポートしています<br>
+ HSDPA 850/1900/2100<br>
+ (US、CA:850/1900、アジア・AU:850/1900/2100、EU:900/2100)</p>
+</div>
+
+<h3 id="ハードウェア">ハードウェア</h3>
+
+<ul>
+ <li>CPU Qualcomm MSM7225A 1.0Ghz</li>
+ <li>Screen 3.5" HVGA</li>
+ <li>Camera 2 MP (back)</li>
+ <li>256 MB (RAM)</li>
+ <li>MicroSD (support up to 32GB)</li>
+ <li>Battery 1200 mAh</li>
+ <li>Light &amp; Prox. Sensor, G-Sensor</li>
+ <li>Radio FM, GPS</li>
+ <li>MicroUSB</li>
+</ul>
+
+<h2 id="キャリア">キャリア</h2>
+
+<div class="warning">
+<p>料金の情報は参考用で、正確ではないことがあります。公式の情報を得るにはリンク先をご参照ください。</p>
+</div>
+
+<h3 id="US">US</h3>
+
+<h4 id="ATT">AT&amp;T</h4>
+
+<ul>
+ <li><a href="http://www.att.com/shop/wireless.html">ウェブサイト</a></li>
+ <li>2G EDGEおよび3Gの全国対応</li>
+</ul>
+
+<h5 id="ATTのプリペイドプランの例">AT&amp;Tのプリペイドプランの例</h5>
+
+<p><a href="http://www.att.com/shop/wireless/gophone.html">Prepaid GoPhone®</a>, Smartphone Plans</p>
+
+<ul>
+ <li>$25/month, $5/50MB 3G data</li>
+ <li>$60/month with 2GB data, $10/GB additional 3G data</li>
+</ul>
+
+<h4 id="Aio">Aio</h4>
+
+<ul>
+ <li><a href="http://www.aiowireless.com/home.html">ウェブサイト</a></li>
+ <li><a href="#AT&amp;T">AT&amp;T</a>'s own MVNO</li>
+</ul>
+
+<h5 id="Aioのプリペイドプランの例">Aioのプリペイドプランの例</h5>
+
+<ul>
+ <li>Aio Smart - $55/month with 2GB 3G data, $10/GB additional 3G data</li>
+ <li>Aio Pro - $70/month with 7GB 3G data, $10/GB additional 3G data</li>
+</ul>
+
+<h4 id="Good2GO">Good2GO</h4>
+
+<ul>
+ <li><a href="https://us.good2gomobile.com/">ウェブサイト</a></li>
+ <li><a href="#AT&amp;T">AT&amp;T</a> MVNO</li>
+</ul>
+
+<h5 id="Good2GOプリペイドプランの例">Good2GOプリペイドプランの例</h5>
+
+<ul>
+ <li>$50/month with 1GB 3G data, $20/GB additional 3G data</li>
+</ul>
+
+<h4 id="Other_ATT_MVNOs">Other <a href="#AT&amp;T">AT&amp;T</a> MVNOs</h4>
+
+<p>These carriers do not offer additional 3G data.</p>
+
+<ul>
+ <li><a href="http://goredpocket.com/">RedPocket</a></li>
+ <li><a href="http://www.net10wireless.com/">Net10</a></li>
+ <li><a href="http://www.straighttalk.com/">Straight Talk</a></li>
+ <li><a href="https://www.airvoicewireless.com/">Airvoice</a></li>
+</ul>
+
+<h4 id="T-Mobile">T-Mobile</h4>
+
+<ul>
+ <li><a href="http://www.t-mobile.com/">Website</a></li>
+ <li>2G EDGEの全国対応と一部都市での3G対応</li>
+</ul>
+
+<h3 id="カナダ">カナダ</h3>
+
+<p>US版のZTE Openは、カナダでもBell/TelusもしくはRogersのネットワークを使用したキャリアで使用できます。  UMTS規格を持つSasktelやMTSのような一部の地域キャリアでも使用できます。</p>
+
+<p>Public MobileなどのUMTSもしくはGSMを使用していないキャリアや、WIND Mobile、Mobilicity、Videotron、EastlinkなどのAWSバンドを使用したキャリアでは使用できません。</p>
+
+<h2 id="メモリーカード">メモリーカード</h2>
+
+<h3 id="ファイルシステム">ファイルシステム</h3>
+
+<p>MicroSDを認識させるには、FAT32ファイルシステムでフォーマットされている必要があります。もしカードが新しいか、再フォーマットしていなければ、そのまま動作するはずです。</p>
+
+<h2 id="デバイスリビジョン">デバイスリビジョン</h2>
+
+<h3 id="リビジョン01">リビジョン01</h3>
+
+<p>2013/9/27よりも前に製造された機体はfastbootが有効になっておらず、アップデートが必要です。ふつうこれはソフトウェアアップデートによって処理さるはずですが、数多くのユーザーからこの方法にかんするトラブルがレポートされたため、ZTEは初期型のデバイスでfastbootを有効にするSDカードのパッケージを作成しました。各機種のフラッシュイメージは以下にあります:</p>
+
+<ul>
+ <li><a href="http://www.ztedevices.com/support/smart_phone/b5a2981a-1714-4ac7-89e1-630e93e220f8.html">ZTE eBay US/香港のストアから購入した機種</a></li>
+ <li><a href="http://www.ztedevices.com/support/smart_phone/cba40ed6-d3ab-44c0-bdee-3a15803dc187.html">ZTE eBay UKストアから購入した機種</a></li>
+</ul>
+
+<p>zipファイルがDownloads下にあります。お使いのOSリビジョンにあったバージョンをダウンロードするよう注意して下さい(すなわち、V1.0からアップグレードする場合、"V1.1.0B02(for V1.0)"をダウンロードします)。ファイルをダウンロードし解凍したら、付属のPDFに記載された説明にしたがってお使いの機体に転送してください。</p>
+
+<p>関連するサポートフォーラムの質問:</p>
+
+<ul>
+ <li><a href="https://support.mozilla.org/en-US/questions/971252">ZTE Open update crashes</a></li>
+ <li><a href="https://support.mozilla.org/en-US/questions/967817">Why is my ZTE Open unable to update Firefox OS ?</a></li>
+</ul>
+
+<h3 id="リビジョン02">リビジョン02</h3>
+
+<p>2013/9/27以降に製造された機体はデフォルトでfastbootが有効になっています。<strong>香港の機体もこれに含まれます。</strong></p>
+
+<div class="note">
+<p><strong>Note</strong>: もしお使いの機体のリビジョンを知りたい場合は、<strong>Settings &gt; Device Information &gt; Software</strong>を確認してください。もしこれが以下のバージョンナンバーよりも古い場合、fastbootを有効にするにはSDパッケージでアップデートする必要があります。</p>
+
+<ul>
+ <li>UKストアで購入:OPEN_EU_DEV_FFOS_V1.0.0B02</li>
+ <li>USストアで購入:OPEN_US_DEV_FFOS_V1.0.0B02 <em>(一部の機種で正しくバージョンが表示されない不具合があります。<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=916098#c39">bug 916098</a>)</em></li>
+</ul>
+</div>
+
+<h2 id="サポート">サポート</h2>
+
+<p>お使いの機体の <a href="#Device_revisions">fastbootが有効</a> となると、その上で<a href="https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">新しい Firefox OS /ビルドやインストール、B2Gビルドができるようになります</a>(まず<a href="/ja/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">ビルド要件</a>説明からお読みください。ConfigurationではZTEを Inari デバイスとして扱ってください)。また、もし必要であれば、<a href="#動かなくなったとき">動かなくなったとき</a>セクションの手順でリカバーしてください。</p>
+
+<p>もしカスタムビルドの転送中にシステム時刻に関するエラーが出た場合は、<a href="http://sl.edujose.org/2013/10/adapted-boot-image-for-use-with-b2g.html">修正版のブートイメージ</a>が必要です。</p>
+
+<h3 id="動かなくなったとき">動かなくなったとき</h3>
+
+<p>もし機体に修正をしている途中で“unresponsive”(無反応)となってしまったら、fastbootを使えば次のように簡単な手順でリカバーできます。</p>
+
+<p>まず、USBケーブルを抜き、そのあと30秒以内にバッテリー取り外してください。 バッテリーを再び挿入し、電源ボタンを押している数秒の間、音量アップボタンを押しておいてください。次に、再度USBケーブルに繋ぎ、以下のコマンドを上述のSDパッケージファイルのあるディレクトリでターミナルウィンドウから実行してください(これを行う前にSDパッケージにアップデートがないか確認すると良いでしょう)。</p>
+
+<pre class="brush: bash" lang="bash">fastboot flash recovery recovery.img
+fastboot flash boot boot.img
+fastboot flash userdata userdata.img
+fastboot flash system system.img
+fastboot reboot
+</pre>
+
+<p>このプロセスで、機体がリカバーされます。もしうまくいってなさそうなときは、もう一度ためしてみてください。</p>
+
+<h3 id="ヘッドフォンが動かない?">ヘッドフォンが動かない?</h3>
+
+<p>中国の工場でデザインされたヘッドフォンジャックに、他ブランドのマイク内蔵ヘッドフォンと互換性の上で問題があるようです。アップル、サムスン、HTCなどのヘッドフォンを使用しようとすると、音声がミュートになるという問題があります。これを回避するには、3.5 mmのヘッドフォンアダプターを購入し、ピンを差し込んでください。より詳しい情報は<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=812607" title="[Unagi] No microphone output through headphones when connected to a call">バグ 812607</a>を参照してください。</p>
+
+<h3 id="その他サポート情報">その他サポート情報</h3>
+
+<p>一部のお客様でfastbootを有効にするとFOTAアップデートが落ちる問題が発生していますが、これについてはまだ調査中です。わたしたちはあらゆるシナリオの検証するようZTEを支援しています。新しい情報が手に入り次第お届けします。</p>
+
+<p>もしZTEが誤ったアップデートファイルを提供し、運悪くFOTAアップデート中に機体がダメージを負ったら、<a href="#リビジョン01">リビジョン01</a>の説明を参照し、適切なSDイメージを適用することで工場出荷時の状態にリストアすることができます。もしくは、あなたが購入したeBeyストアに機体を送付し新しいものと交換することができます。eBayストアのオーナーにeBay messageから直接問い合わせてください。</p>
+
+<h2 id="参考">参考</h2>
+
+<p><a href="https://marketplace.firefox.com/developers/dev_phone">Official Dev Phone page on Firefox Marketplace</a></p>
+
+<p><a href="http://www.movistar.co/documentos/manualesProductos/ZTE_Mozilla_Open_P752-Manual_de_Usuario.pdf">Draft User Manual [en-US]</a> - PDF</p>
diff --git a/files/ja/archive/b2g_os/phone_guide/zte_open_c/index.html b/files/ja/archive/b2g_os/phone_guide/zte_open_c/index.html
new file mode 100644
index 0000000000..d38ce744c2
--- /dev/null
+++ b/files/ja/archive/b2g_os/phone_guide/zte_open_c/index.html
@@ -0,0 +1,85 @@
+---
+title: ZTE OPEN C
+slug: Archive/B2G_OS/Phone_guide/ZTE_OPEN_C
+translation_of: Archive/B2G_OS/Phone_guide/ZTE_OPEN_C
+---
+<div class="summary">
+ <p><span class="seoSummary">ZTE Open C はよりハイエンドなハードウェアを用いた Firefox OS 端末です。300 万画素のカメラや、4 インチの WVGA ディスプレイを採用し、Firefox OS 1.3 がインストールされています。この文書では端末の情報と、アップデート方法、トラブルシュートについて解説します。</span></p>
+</div>
+<div class="note">
+ <p><strong>Note</strong>: The instructions are <strong>not</strong> valid for the ZTE Open device. If you have a ZTE Open device you should go to our <a href="/en-US/Firefox_OS/Developer_phone_guide/ZTE_OPEN">ZTE Open</a> page instead.</p>
+</div>
+<div class="note">
+ <p><strong>Note</strong>: The upgrade tool that you need to unlock the phone (see below) is only available for Windows at this time. Don't purchase this phone if you don't have a Windows system and want to manually install your own builds of Firefox OS.</p>
+</div>
+<p>The ZTE Open C is the first phone with <a href="http://blog.mozilla.org/futurereleases/2014/05/08/firefox-os-update-adds-new-features-including-dual-sim-support-and-enhancements-for-music-lovers-and-gamers">the latest update to Firefox OS</a>, offering many new features including direct music player access from the lock screen or notifications bar and advanced Bluetooth sharing, allowing multiple files to be transferred simultaneously. Users can now navigate the phone quicker with smart folders which automatically arrange apps or app searches into categories, enhanced scrolling performance and faster system app (e.g. calendar, address book, camera) startup times.</p>
+<h2 id="購入方法">購入方法</h2>
+<p>eBay にて 米ドル $99.99 で販売中。</p>
+<ul>
+ <li><a href="http://item.ebay.com/291125433026">ZTE eBay US store</a> (日本のキャリアが使用している周波数帯には対応していません)</li>
+ <li><a href="http://item.ebay.co.uk/171301269724">ZTE eBay UK store</a> (フランスや、近隣のヨーロッパ諸国にお住まいの方はこちらをご利用ください)</li>
+ <li><a href="http://cgi.ebay.de/ws/eBayISAPI.dll?ViewItem&amp;item=131151681046&amp;ssPageName=STRK:MESE:IT">ZTE eBay DE store</a></li>
+ <li><a href="http://www.ebay.com/itm/111326263156">ZTE eBay RU and EU stores</a></li>
+</ul>
+<div class="note">
+ <p><strong>注意</strong>: 販売される ZTE Open C は各ストアで同一ではありません。特に日本国内で使用する場合は対応する 3G (WCDMA) の対応周波数帯の違いが重要で、WCDMA 2100 に対応するものでなければ国内のキャリアネットワークに接続することは出来ません。2014/07 現在 eBay US store のものは対応していませんのでご注意ください。また、この端末は技適など国内の認証は通過していないため、日本国内で使用には制限があります。</p>
+</div>
+<div class="note">
+ <p><strong>注意</strong>: The phones won’t come preinstalled with any network specific apps or services and are unlocked global variants targeted at early adopters.</p>
+</div>
+<h2 id="機能と仕様">機能と仕様</h2>
+<p><a href="/en-US/Firefox_OS/Developer_phone_guide/Phone_specs">端末の機能と仕様のページ</a>を参照してください。</p>
+<h2 id="Firefox_OS_のアップグレード">Firefox OS のアップグレード</h2>
+<p>ZTE のウエブサイトに公開されているイメージの利用してアップグレードするのが最も簡単です。 <a href="http://www.ztedevices.com/support/selectproduct.html?type=software">ZTE's Software support page</a> へ行き、左の列から地域を選択し、中央の列で  <em>Smart Phones</em> を選びます。右の列から購入した地域にあわせて Open C(European Standard) もしくは Open C(American Standard) のどちらかを選びます。最後に <em>Selected</em> ボタンを押すと、ダウンロードページへ遷移します。</p>
+<p>ご自身のビルドをお持ちの場合は、ZIP ファイル中の PDF ファイルにインストールする方法が解説されています。</p>
+<h2 id="マニュアルアップデート">マニュアルアップデート</h2>
+<p>Gecko や Gaia を手動でアップデートされる場合は、端末をアンロックし、root アクセスできるように変更する必要があります。<a href="http://en.comebuy.com/developer-firefox-os-open-c.html">comebuy.com で公開されている </a><a href="http://en.comebuy.com/developer-firefox-os-open-c.html">Open_C_upgrade_Tool</a> を使うと端末はアンロックされ、fastboot が有効になり、ご自身でビルドしたコンポーネントを端末に送ることができます。</p>
+<div class="note">
+ <p><strong>注意</strong>: 現在のところ、このツールは Windows でのみ動作します。</p>
+</div>
+<h3 id="Gecko_と_Gaia_のアップグレード">Gecko と Gaia のアップグレード</h3>
+<p>いったん fastboot が有効にれば、 ビルドした Gecko や Gaia の載った <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">新しく Firefox OS/B2G</a> をインストールできます。</p>
+<ol>
+ <li>Start at the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">build prerequisite</a> instructions, and treat the Open C like it is a Flame device for the purposes of configuration: this is because the Flame and Open C are both based on the Android Jellybean basesystem.</li>
+ <li>During the configuration step, you need to reference a custom manifest file for the Open C. <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016867">Download the attachment on this bug</a> and save it somewhere easily referenceable on your local drive, as openc.xml.</li>
+ <li>Clean up the B2G directory, removing the unneeded directories:<br>
+ <pre class="brush: bash" id="comment_text_2">rm -rf objdir-gecko/ out/ backup-flame/</pre>
+ </li>
+ <li>Now configure Firefox OS with the following command:
+ <pre class="brush: bash language-html">./config.sh flame /PATH/TO/openc.xml</pre>
+ </li>
+ <li>You can then build the Gecko component and Flash it to your phone using the following:
+ <pre class="brush: bash language-html">./build.sh gecko
+./flash.sh gecko</pre>
+ </li>
+ <li>You should now upgrade Gaia as well, so the upgraded version of Gecko works with the version of Gaia on the device:
+ <pre class="brush: bash language-html">cd gaia
+make reset-gaia</pre>
+ </li>
+</ol>
+<div class="warning">
+ <p><strong>Warning</strong>: Trying to flash a full Flame image onto the device would brick the phone, so is not recommended.</p>
+</div>
+<h3 id="Gaia_のアップグレード">Gaia のアップグレード</h3>
+<p>To update Gaia only, leaving Gecko alone, you need to fork and clone the Gaia repo from Github, then Flash it onto your device.</p>
+<ol dir="ltr">
+ <li>Make sure you have <a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a> installed.</li>
+ <li>Go to <a href="https://github.com/mozilla-b2g/gaia">https://github.com/mozilla-b2g/gaia</a>, then click the "fork" button in top right corner to fork to your own repository.</li>
+ <li>Clone the code from your forked repository on your dekstop/laptop by executing the following on your Terminal:
+ <pre class="brush: bash language-html">git clone https://github.com/your-github-username/gaia.git</pre>
+ </li>
+ <li><code>cd</code> into the resulting directory.</li>
+ <li>On your phone, <a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">enable remote debugging</a> (choose the ADB and Devtools option).</li>
+ <li>Now connect your phone to your computer via USB; check that it is recognised by entering <code>adb devices</code> into your terminal.</li>
+ <li>Run the following command to reboot your phone and update it with the new Gaia source code:
+ <pre class="brush: bash language-html">make reset-gaia</pre>
+ </li>
+</ol>
+<h2 id="起動しなくなった場合">起動しなくなった場合</h2>
+<p>スマートフォンが起動しなくなった場合、ZTE の Web サイトで公開されているオフィシャルビルドを手順に従って SD Card 経由で端末の書き換えを行うことで復旧できます:</p>
+<ul>
+ <li><a href="http://www.ztedevices.com/support/smart_phone/65229ec9-3165-424e-a7dd-3759356325fd.html?type=software">ZTE Open C (Ebay) - Spain</a></li>
+ <li><a href="http://www.ztedevices.com/support/smart_phone/92f36c98-9cc0-42d6-8f23-8834b4a6849c.html?type=software">ZTE Open C (Ebay) - UK American Standard</a></li>
+ <li><a href="http://www.ztedevices.com/support/smart_phone/46d40c52-bed4-4cdc-9df9-01719cdf0a70.html?type=software">ZTE Open C (Ebay) - UK European Standard</a></li>
+</ul>
+<p>Also <a href="https://support.mozilla.org/en-US/questions/1003136">reference this support entry</a> for more information.</p>
diff --git a/files/ja/archive/b2g_os/porting/index.html b/files/ja/archive/b2g_os/porting/index.html
new file mode 100644
index 0000000000..3f8c40148a
--- /dev/null
+++ b/files/ja/archive/b2g_os/porting/index.html
@@ -0,0 +1,246 @@
+---
+title: B2G OSを移植する
+slug: Archive/B2G_OS/Porting
+tags:
+ - B2G
+ - B2GOS
+ - Mobile
+translation_of: Archive/B2G_OS/Porting_B2G_OS/basics
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p>B2G OS は<a href="http://www.android.com/" title="http://www.android.com/">Android</a>から得られるカーネルを使用し、<a href="/ja/docs/Gecko" title="Gecko">Gecko</a>に基づいたユーザインターフェイスを最上位に持ちます。この記事には新しい端末にOSをポーティング(移植)する方法の基本的なガイドを載せます。</p>
+</div>
+
+<p id=".E3.83.93.E3.83.AB.E3.83.89.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.81.AE.E3.82.BB.E3.83.83.E3.83.88.E3.82.A2.E3.83.83.E3.83.97">このガイドではすでにAndroid端末が動いている新しい端末にポーティングすることを前提とします。そうでない端末にはもっと複雑な仕事になります。</p>
+
+<div class="note">
+<p><strong>注記</strong>: 移植に関するヘルプは、IRCチャンネルの #fxos と <a href="https://discourse.mozilla-community.org/c/firefox-os-participation/porting">Mozilla Discourse</a>で見つけられます。</p>
+</div>
+
+<h2 id="ビルドシステムのセットアップ">ビルドシステムのセットアップ</h2>
+
+<p>最初のステップはビルドシステムを設定することです。<a href="/ja/docs/Mozilla/Boot_to_Gecko/B2G_build_prerequisites" title="en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">B2G OS ビルドの必要条件</a>のガイドにならうことができます。</p>
+
+<h2 id="オリジナルのAndroidシステムをローカルにバックアップする">オリジナルのAndroidシステムをローカルにバックアップする</h2>
+
+<p>次に、B2Gのテストビルドを使ってAndroid 端末を調理する前に、端末をバックアップするべきです。それに加えて、ビルドとインストール処理にちょっとした内容が必要です。端末id名を選ぶ時、 '-'(ハイフン) の代わりに '_'(アンダースコア) を使うのをお勧めします。その背景の根拠は、 <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1243349" title="FIXED: Firefox fails to link against nspr libraries">バグ 1243349</a> を見てください。</p>
+
+<pre>mkdir my_device_backup
+cd my_device_backup
+adb pull /system system</pre>
+
+<h2 id="B2Gリポジトリをクローンする">B2Gリポジトリをクローンする</h2>
+
+<p>最初の手順でB2Gリポジトリをクローンし、マニフェストのリポジトリも同様にします。</p>
+
+<pre>git clone https://github.com/mozilla-b2g/B2G.git
+git clone https://github.com/mozilla-b2g/b2g-manifest.git</pre>
+
+<h2 id="config.shに新しい端末を追加する">config.shに新しい端末を追加する</h2>
+
+<p>次の手順では、B2G リポジトリ内の <a href="https://github.com/mozilla-b2g/B2G/blob/master/config.sh" title="https://github.com/mozilla-b2g/B2G/blob/master/config.sh"><code>config.sh</code></a> に新しい端末を追加します;つまりすでに存在するファイルをテンプレートとして使うことができます。これは基本的にビルドするための正しいファイルを取得する指示を提供することにもなります。</p>
+
+<h2 id="新しい端末用のマニフェストを作成する">新しい端末用のマニフェストを作成する</h2>
+
+<p>今度は新しい端末向けのマニフェストファイルを追加する必要があります。すでにあるマニフェストをテンプレートとして参考にします。<a href="https://github.com/mozilla-b2g/b2g-manifest/blob/master/hamachi.xml" title="https://github.com/mozilla-b2g/b2g-manifest/blob/master/hamachi.xml">hamachi</a> のマニフェストをリファレンスとして使えます。一旦終えたら、ローカルの b2g-manifest リポジトリに、マニフェストファイルを追加・コミットしておきます:</p>
+
+<pre>git add my-new-device.xml
+git commit
+</pre>
+
+<p>次に、<a href="https://github.com/mozilla-b2g/B2G/blob/master/config.sh" title="https://github.com/mozilla-b2g/B2G/blob/master/config.sh"><code>config.sh</code></a> ファイルが、公式リポジトリの代わりにローカルの b2g-manifest リポジトリを使うようにします。このためには、<a href="https://github.com/mozilla-b2g/B2G/blob/master/config.sh" title="https://github.com/mozilla-b2g/B2G/blob/master/config.sh"><code>config.sh</code></a> ファイル内の GITREPO と BRANCH 変数の値を、ローカルのリポジトリの好きなブランチに変更します。例えば:</p>
+
+<pre><span class="nv">GITREPO</span><span class="o">=</span><span class="k">${</span><span class="nv">GITREPO</span><span class="k">:-</span><span class="s2">"file:///home/yourname/b2g-manifest"</span><span class="k">}</span>
+<span class="nv">BRANCH</span><span class="o">=</span><span class="k">${</span><span class="nv">BRANCH</span><span class="k">:-master</span><span class="k">}</span></pre>
+
+<h2 id="新しい端末用のコンフィギュレーションツリーを作成する">新しい端末用のコンフィギュレーションツリーを作成する</h2>
+
+<p>新しい端末用のコンフィギュレーションツリーを作成します。これは <code>device</code><code>/<em>&lt;manufacturer&gt;</em>/<em>&lt;device_id&gt;</em></code>にあります。このツリーは少なくとも、以下を含むべきです:</p>
+
+<ul>
+ <li><code>AndroidBoard.mk</code></li>
+ <li><code>AndroidProducts.mk</code></li>
+ <li><code>BoardConfig.mk</code></li>
+ <li><code>extract-files.sh</code></li>
+ <li><code>full_&lt;device_id&gt;.mk</code></li>
+ <li>idc files for touchscreen</li>
+ <li>init files (<code>init.rc</code>, <code>init.&lt;target&gt;.rc</code>, <code>uevent.rc</code>, ...)</li>
+</ul>
+
+<p>この内容は端末ごとに大変異なっており、特に、BoardConfig.mk と extract-files.sh は目立って異なる可能性があります。この部分はハック、テスト、デバッグを行って、どのバイナリブロブを引き出すべきかを理解していく必要があります。そこに何が入っているべきかの良い考えを得るには、<a href="https://github.com/mozilla-b2g/android-device-hamachi" title="https://github.com/mozilla-b2g/android-device-hamachi">hamachi端末用の設定</a>を見てみましょう。新端末用に作成したマニフェストから、自身の設定へ正しく参照させることを忘れないでください。</p>
+
+<div class="note">
+<p><strong>記:</strong> あなたの端末用の <a href="http://www.cyanogenmod.com/" title="http://www.cyanogenmod.com/">CyanogenMod</a> がすでにある場合、その情報によってポーティング速度は上がります。<a href="http://forum.xda-developers.com/" title="http://forum.xda-developers.com/">XDA Forum</a> (英語)も議論したり、リソースを探すのに良い場所です。</p>
+</div>
+
+<h2 id="boot.imgをリビルドする">boot.imgをリビルドする</h2>
+
+<p>すべてを完了してしまってから、ブートイメージをリビルドする必要があります。通常はカーネル自身は不要ですが、<code>init.rc</code> への変更を拾うことになります。</p>
+
+<h3 id="init.rcを変更する">init.rcを変更する</h3>
+
+<p>init.rc は B2G から提供されるもの<strong>ではなく</strong>; 代わりに端末から抜き出すものです。</p>
+
+<p>修正が必要となる主な箇所は:</p>
+
+<h4 id="init.b2g.rcをインポートする">init.b2g.rcをインポートする</h4>
+
+<p><code>init.b2g.rc</code>をインポートするため、下記の行を追加します:</p>
+
+<pre>on early-init
+ start ueventd
+ import /init.b2g.rc</pre>
+
+<h4 id="パーミッションを修正する">パーミッションを修正する</h4>
+
+<p><code>/<code>system</code>/b2g/b2g</code>、 <code>/<code>system</code>/b2g/updater</code> 、 <code>/<code>system</code>/b2g/plugin-container</code> ファイルのパーミッションを訂正します。つまり、これは ファイルシステムを read/write とマウントする行の後に行います:</p>
+
+<pre>chmod 0755 /<code><code>system</code></code>/b2g/b2g
+chmod 0755 /<code><code>system</code></code>/b2g/updater
+chmod 0755 /<code><code>system</code></code>/b2g/plugin-container</pre>
+
+<p>ビルドシステムによって提供される <code>init.rc</code> を使う代わりに、新しい端末から得た <code>init.rc を修正したい場合もあるでしょう。</code>そうであるなら、<code>BoardConfig.mk</code> 内の <code>TARGET_PROVIDES_INIT_RC</code> をセットし忘れないでおく必要があります。</p>
+
+<h3 id="事前にビルドされたカーネル_vs._ソースからカーネルをビルドする">事前にビルドされたカーネル vs. ソースからカーネルをビルドする</h3>
+
+<p>事前ビルドされたカーネルを使うことも、ソースからカーネルをビルドすることも可能です。ソースからカーネルをビルドするには、AndroidKernel.mk とカーネル設定とを、コンフィギュレーションツリーに追加します。</p>
+
+<p>古いビルドシステム上の <a href="https://github.com/andreasgal/B2G/tree/master/glue/gonk/device/toro/maguro" title="https://github.com/andreasgal/B2G/tree/master/glue/gonk/device/toro/maguro">maguro</a> は、ソースからカーネルをビルドする例です。</p>
+
+<h3 id="既存のブートイメージを引き出し、修正する">既存のブートイメージを引き出し、修正する</h3>
+
+<p>電話機のブートイメージを修復するのに、<code>/dev/mtd/mtd1</code> または <code>/dev/mtd/mtd2</code> 端末の内容をダンプする方法が可能です。生成されるイメージファイルは容易に復元できます:</p>
+
+<pre>adb shell 'cat /dev/mtd/mtd1 &gt; /sdcard/boot.img'
+adb pull /sdcard/boot.img
+</pre>
+
+<p>一旦ブートイメージファイルを入手したら<a href="http://whiteboard.ping.se/Android/Unmkbootimg" title="Unmkbootimg">unmkbootimg</a>のようなヘルパーツールでアンパックできます。このツールはカーネルイメージ (zImage) とRAMディスク (initramfs.cpio.gz) の両方を展開し、オリジナルと同一のパラメータでイメージをリビルドするコマンドを出力します。例えば:</p>
+
+<pre>$ unmkbootimg boot.img
+Kernel size 3872576
+Kernel address 0x208000
+Ramdisk size 265102
+Ramdisk address 0x1500000
+Secondary size 0
+Secondary address 0x1100000
+Kernel tags address 0x200100
+Flash page size 2048
+Board name is ""
+Command line "androidboot.hardware=aphone"
+Extracting kernel to file zImage ...
+Extracting root filesystem to file initramfs.cpio.gz ...
+All done.
+---------------
+To recompile this image, use:
+ mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x200000 --cmdline 'androidboot.hardware=aphone' -o new_boot.img
+---------------
+</pre>
+
+<p>RAMディスクのファイルを修正するには、出力ディレクトリを作成してそこへ展開します:</p>
+
+<pre>mkdir initramfs_dir
+cd initramfs_dir
+gunzip -c ../initramfs.cpio.gz | cpio -i
+</pre>
+
+<p>必要な変更 (例えば init.rc の修正)を完了して、<code>mkbootfs </code>を使ってRAMディスクを再パックします。他のB2Gホストツールによってビルドされているのと同じバージョンを使っていることを確認します。:</p>
+
+<pre>/path/to/your/B2G/out/host/linux-x86/bin/mkbootfs . | gzip &gt; ../newinitramfs.cpio.gz
+</pre>
+
+<p>最後に、最上位ディレクトリに戻り、 <code>mkbootimg</code> を使ってブートイメージを再パックします。同様に他のB2Gホストツールによってビルドされているのと同じバージョンを使っていることを確認します。:</p>
+
+<pre>/path/to/your/B2G/out/host/linux-x86/bin/mkbootimg --kernel zImage --ramdisk newinitramfs.cpio.gz --base 0x200000 --cmdline 'androidboot.hardware=aphone' -o newboot.img
+</pre>
+
+<p>ここで新しいブートイメージを、 <code>out/target/product/$device/boot.img</code> ($<code>deviceは</code>端末名)の下にコピーすると、 <code>flash.sh を実行した時に自動的に書き込まれます。あるいは手動で下記のコマンドを用いて書き込むこともできます</code>:</p>
+
+<pre>adb reboot bootloader
+fastboot flash boot newboot.img
+fastboot reboot
+</pre>
+
+<h2 id="flash.shに新しい端末を追加する">flash.shに新しい端末を追加する</h2>
+
+<p>新しい端末を<code> flash.sh </code>に追加します。すなわち、どうやってやるかという詳細は、新しい端末に書き込むのにどのツールが必要となるかに依存します。</p>
+
+<h2 id="新しい端末をConfigure_build_and_flashする(設定し、ビルドし、焼く)">新しい端末をConfigure, build, and flashする(設定し、ビルドし、焼く)</h2>
+
+<p>今や新しい端末のビルド、書き込みを試すことができます:</p>
+
+<pre>ANDROIDFS_DIR=my_device_backup ./config.sh &lt;device_id&gt; '../b2g-manifest/default.xml'
+./build.sh
+./flash.sh</pre>
+
+<h2 id="テストとデバッグ">テストとデバッグ</h2>
+
+<p>詳細情報をここに追加する必要がある; 実際の所、この記事全体が何らかの助けとなりうる。</p>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS" title="en-US/docs/Mozilla/Firefox_OS">B2G OS</a></li>
+ <li><a href="https://github.com/mozilla-b2g/B2G" title="https://github.com/mozilla-b2g/B2G">B2G source code on Github</a></li>
+ <li><a href="http://www.android.com/" title="http://www.android.com/">Android web site</a></li>
+ <li>
+ <p>いくつかの端末にB2G OSを移植した<a href="https://autonome.wordpress.com/2013/01/15/firefox-os-devices-and-dark-matter/" title="https://autonome.wordpress.com/2013/01/15/firefox-os-devices-and-dark-matter/">Dietrich Ayalaのブログの既存プロジェクト一覧(英語)</a></p>
+ </li>
+</ul>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/porting_b2g_os/index.html b/files/ja/archive/b2g_os/porting_b2g_os/index.html
new file mode 100644
index 0000000000..fb23f2d06c
--- /dev/null
+++ b/files/ja/archive/b2g_os/porting_b2g_os/index.html
@@ -0,0 +1,17 @@
+---
+title: B2G OS の移植
+slug: Archive/B2G_OS/Porting_B2G_OS
+tags:
+ - B2G OS
+ - Firefox OS
+ - porting
+translation_of: Archive/B2G_OS/Porting_B2G_OS
+---
+<p class="summary">このページは B2G OS の移植に利用できるリソースを並べています。</p>
+
+<dl>
+ <dt><a href="/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">ポーティングの基本</a></dt>
+ <dd>B2G OS を新しい端末に移植する方法についての基本情報。</dd>
+ <dt><a href="/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">CyanogenMod への移植</a></dt>
+ <dd>CyanogenMod を使用して B2G を移植する方法を説明します。</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/preparing_for_your_first_b2g_build/index.html b/files/ja/archive/b2g_os/preparing_for_your_first_b2g_build/index.html
new file mode 100644
index 0000000000..5d5c9c92c7
--- /dev/null
+++ b/files/ja/archive/b2g_os/preparing_for_your_first_b2g_build/index.html
@@ -0,0 +1,273 @@
+---
+title: 初回 B2G ビルドの準備
+slug: Archive/B2G_OS/Preparing_for_your_first_B2G_build
+tags:
+ - B2G OS
+ - Build documentation
+ - building b2g os
+translation_of: Archive/B2G_OS/Preparing_for_your_first_B2G_build
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p>B2G をビルド可能にするには、リポジトリの複製とビルドツリーの構成(configure)が必要です。この記事ではその方法を説明します。</p>
+</div>
+
+<p>インターネットの接続によっては、構成作業では、B2G OSのビルドに必要となるファイルをダウンロードするのに何時間もかかる事があります。待つことは楽しくないので、このページを通して読んで構成スクリプトを開始した後に、<a class="vt-p" href="/ja/docs/Tools/Firefox_OS_Simulator" title="/en-US/docs/Mozilla/Firefox_OS/Using_Firefox_OS_Simulator">B2G OS simulator</a>をセットアップして試してみることや、<a class="vt-p" href="/ja/docs/Web/Apps" title="/en-US/docs/Apps">アプリ開発者向け文書</a>(アプリの設計、作成が含まれています)を読んで慣れたり、以降のビルド手順に慣れておくことを検討してください。</p>
+
+<div class="note">
+<p>OS X を使って Flame 用の B2G OS をビルドする場合、<a href="/ja/Firefox_OS/Building_and_installing_Firefox_OS/Building_Firefox_OS_for_flame_on_OSX">OS Xで flame 用の B2G OS をビルドする</a> のMDNページを見て下さい。</p>
+</div>
+
+<h2 id="B2G_リポジトリの複製">B2G リポジトリの複製</h2>
+
+<p>B2G OSをビルドするのにいくつか便利なツールがあり、全てが1つのリポジトリに入っています。最初のステップはgitでこれらのツールを作業ディレクトリにダウンロードする事です:</p>
+
+<pre><code>git clone git://github.com/mozilla-b2g/B2G.git &amp;&amp; cd B2G
+</code></pre>
+
+<ul>
+ <li>Checkout the pine branch of Gecko</li>
+</ul>
+
+<pre class="line-numbers language-html"><code class="language-html">$ hg clone https://hg.mozilla.org/projects/pine/ pine</code></pre>
+
+<p>If you run in to a UnicodeEncodeError: ascii codec error here try to set your git user with</p>
+
+<pre> <code>vim ~/.gitconfig</code>
+</pre>
+
+<p>(type "i" for inserting) and this lines:</p>
+
+<pre><code>$ [user]
+$ name = yourname
+$ email = youremailaddress@url.tld</code>
+$ [color]
+$ ui = auto</pre>
+
+<p>hit the "esc" button and quit with ":wq"</p>
+
+<ul>
+ <li>Configure B2G for the device :</li>
+</ul>
+
+<pre class="line-numbers language-html"><code class="language-html">$ ./config.sh <span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>device</span><span class="punctuation token">&gt;</span></span></code></pre>
+
+<p>ie device = flame-kk or aries</p>
+
+<ul>
+ <li>Configure B2G to use the kanikani branch of Gaia</li>
+</ul>
+
+<pre class="line-numbers language-html"><code class="language-html">$ vim .repo/manifests/base.xml
+<span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>project</span> <span class="attr-name token">name</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>gaia<span class="punctuation token">"</span></span> <span class="attr-name token">path</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>gaia<span class="punctuation token">"</span></span> <span class="attr-name token">remote</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>mozillaorg<span class="punctuation token">"</span></span> <span class="attr-name token">revision</span><span class="attr-value token"><span class="punctuation token">=</span><span class="punctuation token">"</span>kanikani<span class="punctuation token">"</span></span> <span class="punctuation token">/&gt;</span></span>
+$ cd gaia
+$ git reset --hard mozillaorg/kanikani
+$ cd ..</code></pre>
+
+<ul>
+ <li>Configure B2G to use the pine branch of Gecko</li>
+</ul>
+
+<pre class="line-numbers language-html"><code class="language-html">$ vim .userconfig</code></pre>
+
+<pre class="line-numbers language-html"><code class="language-html">export B2G_DIR=${B2G_DIR:-$(cd $(dirname $0); pwd)}
+echo "B2G_DIR = ${B2G_DIR}"
+export GECKO_PATH=${B2G_DIR}/pine
+echo "GECKO_PATH = ${GECKO_PATH}"</code></pre>
+
+<ul>
+ <li>Configure, build and flash B2G</li>
+ <li>plug in your device that has the android base or firefox os base build</li>
+</ul>
+
+<pre class="line-numbers language-html"><code class="language-html">$ ./build.sh
+$ ./flash.sh</code></pre>
+
+<p><strong>Notes:</strong></p>
+
+<ul>
+ <li>If you get an error about a mismatched base build at the build step you don't have the required existing version of Android/B2G on your device. You'll need to flash the version of Android specified by the build script or get hold of a backup-aries folder.</li>
+</ul>
+
+<div class="note"><strong>Note:</strong> This is not the full list of build targets, see <code>config.sh</code> or refer to the <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/Compatible_Devices">Compatible Devices</a> page.</div>
+
+<p>If your build target isn't listed, you should stop right now and help <a href="https://developer.mozilla.org/en-US/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">port B2G OS!</a></p>
+
+<h2 id="Configuring_B2G_for_your_device" name="Configuring_B2G_for_your_device">端末に合わせて B2G を構成する</h2>
+
+<div class="warning"><strong>重要</strong>: <strong>Android 4.3以降 (Jelly Bean, KitKat, Lollipop)</strong>とそれをべースにしたプラットフォームが動作している端末のみが (今のFirefox OS端末では) サポート対象です。あなたのスマートフォンが本当にこれらのバージョンで動作しているか確認してください。そうでなければ、次のステップはおそらく失敗するでしょう。より詳しくは <a href="https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS/Compatible_Devices">互換性のある端末</a> ページを見てください。</div>
+
+<h3 id="エミュレータ用ビルドを構築する">エミュレータ用ビルドを構築する</h3>
+
+<p>もし実機でなくエミュレータをビルドするのであれば、ARM デバイスエミュレータを取得する “emulator*”、もしくは x86 エミュレータをビルドする “emulator-x86*″ のいずれかを指定できます。後者はより速いですが、実際のモバイル端末ほど正確には表示せず、よくサポートされていません。つまり x86エミュレータ を使うのは勧められません。</p>
+
+<p>ARM のJellybeanエミュレータをビルドするには、下記コマンドを使用します :</p>
+
+<pre>./<code class="language-html">config.sh emulator-jb</code>
+</pre>
+
+<p>エミュレータ用ビルドは64-bit Linuxで失敗がちなのに気をつけて下さい。</p>
+
+<h3 id="プロプライエタリ_Blob">プロプライエタリ Blob</h3>
+
+<p>端末に B2G OS をインストールする時、 プロプライエタリBlobを一通り含める必要があるでしょう。これらは初回ビルド実行時に端末から抜き出されますが、将来参照できるようにフル・バックアップを取ることもお勧めします。いったん B2G OS がインストールされると、これらをリカバーする方法はありません!</p>
+
+<p><a href="https://developer.mozilla.org/Firefox_OS/Debugging/Developer_settings">開発者設定</a>で、端末の <a href="https://developer.mozilla.org/Firefox_OS/Debugging/Developer_settings#Remote_debugging">リモートデバッグ</a> が有効になっているのを確かめます。<code>adb devices</code> コマンドで端末が見えるのを確認すると、これ似たものが見えるでしょう:</p>
+
+<pre class="line-numbers language-html" style="font-size: 14px;"><code class="language-html">$ adb devices
+List of devices attached
+ABCXXXXXXX device</code></pre>
+
+<p>端末がリストにない場合、UDEV ルールを確認します。</p>
+
+<div class="note">
+<p><strong>Note</strong>: If you have permission issues, check that your screen is unlocked and that you have authorized access to your phone. You see a message on your device for that. If the issue persists used <code>adb root </code>and <code>adb remount.</code></p>
+</div>
+
+<p><code>adb pull</code> コマンドで、電話機のパーティションをバックアップします:</p>
+
+<pre class="line-numbers language-html"><code class="language-html">adb pull /system <span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>backup</span> <span class="attr-name token">target</span> <span class="attr-name token">dir</span><span class="punctuation token">&gt;</span></span>/system</code></pre>
+
+<p>電話機によりますが、<code>/data</code> と <code>/vendor</code> ディレクトリを取得しないといけない事もあります:</p>
+
+<pre class="line-numbers language-html"><code class="language-html">adb pull /data <span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>backup</span> <span class="attr-name token">target</span> <span class="attr-name token">dir</span><span class="punctuation token">&gt;</span></span>/data
+adb pull /vendor <span class="tag token"><span class="tag token"><span class="punctuation token">&lt;</span>backup</span> <span class="attr-name token">target</span> <span class="attr-name token">dir</span><span class="punctuation token">&gt;</span></span>/vendor</code></pre>
+
+<p>pull コマンドが "insufficient permission" メッセージと共に失敗する場合、次を試します:</p>
+
+<ul>
+ <li>カスタムROMのroot権限を与えられているかを確認します (例 CyanogenModでは、<em>Settings &gt; System &gt; Developer Options &gt; Root Access</em> の値を <em>Apps and ADB</em> か <em>ADB only</em> に変えます)。</li>
+ <li>udev ルールを正しくセットアップしているか検証します (<a href="#For_Linux:_configure_the_udev_rule_for_your_phone">For Linux: configure the udev rule for your phone</a> を見てください)。</li>
+</ul>
+
+<h2 id="次のステップへ">次のステップへ</h2>
+
+<p>この時点で、<a href="https://developer.mozilla.org/ja/Firefox_OS/Building">B2G OSのビルド</a>の準備ができているでしょう。</p>
+
+<h2 id="高度な構成オプション">高度な構成オプション</h2>
+
+<h3 id="システムバックアップを用いてビルドを構成する">システムバックアップを用いてビルドを構成する</h3>
+
+<p>もしあなたのスマートフォンが既に Android ではなく、B2G ツリーにバイナリ BLOB がないけど、賢明にも<a class="vt-p" href="/ja/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites##.E3.82.B9.E3.83.9E.E3.83.9B.E3.81.AE.E3.82.B7.E3.82.B9.E3.83.86.E3.83.A0.E3.83.91.E3.83.BC.E3.83.86.E3.82.A3.E3.82.B7.E3.83.A7.E3.83.B3.E3.82.92.E3.83.90.E3.83.83.E3.82.AF.E3.82.A2.E3.83.83.E3.83.97.E3.81.99.E3.82.8B" title="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Backup_the_phone_system_partition"><code>/system</code> パーティションのバックアップを取って</a>いたのであれば、こんな感じにバックアップを元にビルドを実行することができます :</p>
+
+<pre>ANDROIDFS_DIR=&lt;systemディレクトリの親ディレクトリの絶対パス&gt; ./config.sh &lt;target&gt;
+</pre>
+
+<p>ビルドシステムはデフォルトで <code>backup-&lt;target&gt;/system</code> といった既存のバックアップフォルダを調べます。つまりファイルをこの場所に置けば、ディレクトリを指定する必要はありません。</p>
+
+<h3 id="Building_against_a_custom_Gecko" name="Building_against_a_custom_Gecko">カスタム Gecko を対象とするビルド</h3>
+
+<p>(マニフェストで指定された)デフォルト使用の Gecko とは異なるバージョンをベースにして、Boot to Gecko をビルドしたい、もしくはする必要がある場合があるかもしれません。それを可能にするには<code> .userconfig</code> ファイルを編集してください。例として、mozilla-central を対象にしてビルドしたい場合であれば :</p>
+
+<pre>GECKO_PATH=/path/to/mozilla-central
+GECKO_OBJDIR=/path/to/mozilla-central/objdir-gonk
+</pre>
+
+<div class="note">
+<p><strong><strong>記</strong>:</strong> Mac OS X でカスタム Gecko を対象とするビルドを行う場合、mozilla-central ディレクトリは、必ず、大文字と小文字を区別するファイルシステムに作成してください。</p>
+</div>
+
+<p>注意するのは、リポジトリをプルする前 (つまり上記の<code>config.shの前</code>) に行っても、後の時点のどちらでもよいです。複数ビルドを保持することもできます (デバッグオン/オフなど) 。その方法は複数の.userconfigファイル(異なるセッティングで--もちろん、それぞれ別のOBJDIRでないといけない) を用意して .userconfig をその時々のビルドしたいコンフィグへのシンボリックリンクに貼るようにします。</p>
+
+<p>詳細情報は、<a class="vt-p" href="https://developer.mozilla.org/ja/Firefox_OS/Customization_with_the_.userconfig_file#Gecko.E3.81.AE.E3.82.BD.E3.83.BC.E3.82.B9.E3.83.84.E3.83.AA.E3.83.BC.E3.82.92.E5.A4.89.E6.9B.B4.E3.81.99.E3.82.8B" title="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file#Changing_the_Gecko_source_tree">Gecko ソースツリーを変更する</a>を読んでください。</p>
+
+<h3 id="ブランチをビルドする">ブランチをビルドする</h3>
+
+<p>デフォルトブランチ以外をビルドしたい場合 (<strong>記: デフォルトブランチは"master"でないかもしれません!</strong>)、config.shの頭にブランチ名をつけるだけです、このように:</p>
+
+<pre class="language-html">BRANCH=ブランチ名 ./config.sh &lt;端末&gt;</pre>
+
+<p>ブランチ名はとても論理的で、大まかに製品/バージョンに従っており、<code>v1-train</code>, <code>v1.0.0</code>, <code>v1.0.1</code>, <code>v1.1</code>, <code>v1.1.0hd</code>, <code>v1.2, v1.3, v1.4<code>, v2.0</code></code>  などと将来にわたって続きます。例として、ARMエミュレータ用のB2G B2G 1.2では、この様に入力します</p>
+
+<pre class="language-html">BRANCH=v1.2 ./config.sh emulator</pre>
+
+<p>config.sh をすでに実行済みなら、<code>B2G/.repo/manifests <code>に移動し、</code></code>"<code>git branch -a</code>" を実行す<code>ることで</code> (それまでは追加されていません)<code>、ブランチ名を見ることができます。</code><strong>ブランチ名は行の最終トークンです。例えば"<code>v1-train</code>"や"<code>master</code>"</strong>:</p>
+
+<pre class="language-html"> remotes/origin/master
+ remotes/origin/v1-train
+ remotes/origin/v1.0.0
+ remotes/origin/v1.0.1</pre>
+
+<p>さらにカスタマイズするには<a class="vt-p" href="/ja/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">.userconfigのカスタマイズ</a>を見て下さい。</p>
+
+<h3 id="Copying_your_B2G_tree_to_a_new_machine" name="Copying_your_B2G_tree_to_a_new_machine">B2G ツリーを新しいマシンにコピーする</h3>
+
+<p>もしB2Gツリーを整備済みで新しいコンピュータを入手した場合(いいな!)、あるコンピュータから別のコンピュータに単純に移行するだけなら、全てを整備するのに比べ、非常に楽に実行できるようになりました。そうするには、古いコンピュータのドライブを新しいコンピュータにマウントして、こうします :</p>
+
+<pre>rsync -a <em>source</em>/ <em>dest</em>/
+</pre>
+
+<p><code>source</code> はソースツリーのフルパスで(末尾のスラッシュを含みます)、<code>dest</code> は移動先です(末尾のスラッシュは同様に重要です!)。</p>
+
+<div class="note">
+<p><strong><strong>記</strong>:</strong> もし他のプラットフォームのコンピュータからファイルをコピーした場合は、ビルドプロセスを開始する前に、'<code>./build.sh clean</code>' を確実に実行してください。実行しなかった場合、コンパイル時に問題が発生する可能性があります。</p>
+</div>
+
+<p>これを実行したら、この文書の残りの全てをスキップして、このまま<a href="/ja/docs/Mozilla/Boot_to_Gecko/Building_Boot_to_Gecko" title="Mozilla/Boot_to_Gecko/Building_Boot_to_Gecko">ビルド</a>に移動することができます。</p>
+
+<h3 id="B2Gツリーを更新する">B2Gツリーを更新する</h3>
+
+<p>リポジトリがより新しいバージョンの B2G に更新された時、B2Gツリーを更新したくなるでしょう。これを行うには、下記コマンドを実行します:</p>
+
+<pre class="language-html">git fetch origin
+git checkout origin/master</pre>
+
+<p>これらが正しく動いたかをチェックするには、こう実行し:</p>
+
+<pre class="language-html">git show HEAD</pre>
+
+<p>そして表示されたコミットが <a class="vt-p" href="https://github.com/mozilla-b2g/B2G/commits/master" title="https://github.com/mozilla-b2g/B2G/commits/master">https://github.com/mozilla-b2g/B2G/commits/master</a> の最新のコミットと一致するかをチェックします。</p>
diff --git a/files/ja/archive/b2g_os/quickstart/index.html b/files/ja/archive/b2g_os/quickstart/index.html
new file mode 100644
index 0000000000..7688a15ac5
--- /dev/null
+++ b/files/ja/archive/b2g_os/quickstart/index.html
@@ -0,0 +1,49 @@
+---
+title: 開発
+slug: Archive/B2G_OS/Quickstart
+tags:
+ - Apps
+ - Quickstart
+translation_of: Archive/B2G_OS/Quickstart
+---
+<div class="summary">
+ <p><span class="seoSummary">Open Web Apps のコーディングに関するクイックスタート情報です。</span></p>
+</div>
+<dl>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/Intro_to_open_web_apps">Open Web Apps 入門</a></dt>
+ <dd>
+ Open Web Apps とは? 通常の Web ページとどう違うのでしょうか? なぜそれが重要なのでしょうか? この記事はそうした質問などに答えることを目的としています。</dd>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/Your_first_app">初めの一歩</a></dt>
+ <dd>
+ この記事は、インストール可能な Open Web Apps の作成に求められる基本的段階と、通常の Web 開発をベースとした付加的知識について一通りの情報を提供します。</dd>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/Intro_to_Firefox_OS">Firefox OS 入門</a></dt>
+ <dd>
+ Open Web Apps を基盤とした Mozilla の新しいモバイルプラットフォーム、Firefox OS の紹介です。</dd>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/Intro_to_manifests">マニフェスト入門</a></dt>
+ <dd>
+ マニフェスト、アプリのホスティング、配信元、その他関連トピックに関して考えられるあらゆる質問への回答をまとめました。</dd>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/For_Web_developers">Web 開発者のアプリ開発</a></dt>
+ <dd>
+ あなたが Web 開発者なら、これまで開発してきたサイトと Open Web Apps がどう違うのか疑問に思うことでしょう。この記事ではそれについて説明します。</dd>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/For_mobile_developers">モバイル開発者のアプリ開発</a></dt>
+ <dd>
+ あなたがネイティブモバイルアプリケーション開発者なら、Open Web Apps がどんなメリットをもたらすのか、これまで開発してきたアプリとどう違うのか、疑問に思うことでしょう。この記事ではそれについて説明します。</dd>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/Developing_app_functionality">アプリ機能の開発</a></dt>
+ <dd>
+ このページは、あなたがアプリに組み込みたいと思われる様々な機能の種類について、関連情報へのリンクとともに解説します。</dd>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/Payments">決済</a></dt>
+ <dd>
+ ユーザに有料で Open Web Apps をインストールしてもらうための機能を開発するには? ここでそのすべてを解説します。</dd>
+ <dt>
+ <a href="/ja/Apps/Quickstart/Build/App_tools">アプリツール</a></dt>
+ <dd>
+ このセクションの最後では、素晴らしい Open Web Apps の開発に役立つツールに関する詳しい情報へのリンクをいくつ家庭今日します。</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/quickstart/open_web_apps_and_web_standards/index.html b/files/ja/archive/b2g_os/quickstart/open_web_apps_and_web_standards/index.html
new file mode 100644
index 0000000000..34b809813b
--- /dev/null
+++ b/files/ja/archive/b2g_os/quickstart/open_web_apps_and_web_standards/index.html
@@ -0,0 +1,89 @@
+---
+title: Open Web Apps と Web 標準
+slug: Archive/B2G_OS/Quickstart/Open_Web_apps_and_Web_standards
+tags:
+ - Apps
+translation_of: Archive/B2G_OS/Quickstart/Intro_to_open_web_apps
+---
+<div class="note">
+<p><strong>注</strong>: クイックスタートの項目は、<a href="/ja/docs/Web/Apps/Quickstart">新しい、より集中的なクイックスタート記事</a> として更新され、従来のクイックスタート記事をすべて置き換えるものとなりました。この記事がより有益な情報源となり、古い一連の記事よりもより素早い学習体験を提供することを期待しています。</p>
+</div>
+
+<p><img alt="" src="/files/4523/multidevices.png" style="height: 225px; width: 640px;"></p>
+
+<div class="summary">
+<p>この記事は、開発者、プロジェクトマネージャ、その他アプリの開発や配布に関わる役割を担いつつ、Open Web Apps についてより詳しく学びたいというすべての人にとって最適なスタート地点となることを意図して書かれています。Open Web Apps とその背景にある哲学の、簡単で高次元な概要を提供します。</p>
+</div>
+
+<p>Open Web Apps は一般的な Web サイトや Web ページと本質的な違いはありません。いずれも HTML、CSS、JavaScript といった標準的でオープンな Web 技術を用いて開発され、Web ブラウザ経由でアクセスできます。主な違いは、端末にインストールしてオフラインでも動作させられる機能、そして、カメラ、アドレス帳、その他端末機能との相互作用を可能にする高度な API にアクセス可能であること、といった点が上げられるでしょう。さらに、それらはできる限りオープンな技術に基づいて開発されています。プラットフォーム間の技術実装に差異がある場合、各プラットフォーム向けの機能判別と適切なコード、機能が利用不可能な場合の巧みな対応策の組み合わせを通じて、どちらにも対応するよう努力が行われるべきです。</p>
+
+<h2 id="Advantages_of_Open_Web_Apps" name="Advantages_of_Open_Web_Apps">Open Web Apps の利点</h2>
+
+<p>Open Web Apps の利点を少し詳しく見ていきましょう。</p>
+
+<ul>
+ <li><strong>ローカルインストールとオフラインストレージ</strong>: Open Web Apps は端末上にインストール可能で、<a href="/ja/docs/Web/Guide/DOM/Storage">ローカルストレージ</a> や <a href="/ja/docs/IndexedDB">IndexedDB</a> といった API を活用してローカルデータストレージ機能を提供できます。さらに、オープンな Web 技術は、ネイティブアプリよりも格段にフットプリントが小さい傾向があり、更新があるたびに新しい完全なパッケージをインストールするのではなく通常は自動的に更新できます (ここでの例外は、更新時に完全に新しいパッケージが必要となるパッケージ型アプリです)。このためアプリは常時接続への依存度が低く、ネットワークが不安定な場合により利便性を発揮します。</li>
+ <li><strong>ハードウェアアクセス</strong>: Open Web Apps とともに提供されるメタデータは、端末ハードウェア機能の使用を可能にする特権 API へのアプリケーション許可設定を与えるために利用可能となっています。これは Web プラットフォームが従来享受できなかった利点のひとつです。</li>
+ <li><strong>壁に囲まれた庭からの脱出</strong>: モバイルプラットフォームにおけるノルマは、プロプライエタリな技術で書かれた「壁に囲まれた庭」にも例えられ、アプリはそれらのプラットフォーム内に閉じ込められてしまっています。スマートフォンは比較的高価であり、アプリの購入にはクレジットカードが必要となります。Open Web Apps は、文字通り軽量な Linux カーネル上で Firefox が動作しているだけの Firefox OS 端末の場合は特に、格段に安価なハードウェアでも動作させることが可能です。またそれらはオープンな Web 技術を用いて書かれおり、それは最も広く普及しているプラットフォームです。さらに、Firefox OS 端末は、ユーザがアプリの料金を前払いしたり電話料金に上乗せしたりできる課金システムも備えています。</li>
+ <li><strong>Open Web App ストア</strong>: ひとつ前の利点からの続きになりますが、(<a href="https://marketplace.firefox.com/">Firefox Marketplace</a> など) 既存のマーケットプレースでアプリをホストするか、あるいは完全に別の場所でホストするか選ぶことが可能です。これは開発者次第です。Mozilla では、より簡単な開発から、配布、直接的な顧客関係管理に至るまで、アプリ体験のあらゆる面をコントロールする権利を開発者の手に戻したいと考えています。また、アプリは一般的な Web ベースの体験と同じように検索できます。</li>
+</ul>
+
+<p>以下の動画も Open Web Apps の一般的な利点と Firefox OS プラットフォーム向けの開発について取り上げています。</p>
+
+<p></p><div class="intrinsic-wrapper"><div class="intrinsic-container "><iframe src="https://www.youtube.com/embed/RJJkFshnnVc?rel=0&amp;html5=1"></iframe></div></div><p></p>
+
+<h2 id="The_Web_is_the_platform" name="The_Web_is_the_platform">Web はプラットフォーム</h2>
+
+<p>Firefox OS のようなプラットフォームにインストールされた形での Open Web App は単なるブックマークではなく、システムの正式な一部となっています。Open Web Apps はそうした大きな将来性を持っています。私たちはそれを逃すべきではない機会と捉えており、さもなければ Web は再度断片化してしまうかもしれないとも考えています。それを念頭に置けば、Open Web Apps (略して OWA) が標準化と Web の一部になることを意図したものであることが明らかでしょう。OWA は、もし成功すれば、最終的にすべてのブラウザ、OS、端末で動作するはずです。</p>
+
+<p>私たち Mozilla は、オープン Web に完全に支えられたこのアプリプラットフォームの開発に尽力しています。それは「Mozilla プラットフォーム」あるいは「Firefox プラットフォーム」となることを意図したものではありません。<strong>Web こそがプラットフォームなのです</strong>。私たちは一連のオープンな API と実装を開発し、ベンダーロックインなしに移植性のあるアプリがどう Web 上に存在できるかを示そうとしています。Facebook や Google Chrome など他の団体も Web に支えられたアプリプラットフォームに取り組んでいます。<a href="https://developers.facebook.com/docs/guides/canvas/">Facebook アプリ</a> は Facebook に組み込まれることを意図したものであり、また <a href="http://www.google.com/intl/ja/chrome/webstore/apps.html">Chrome アプリ</a> は Chrome OS 端末や Google サーバ向けに設計されています。Chrome アプリは Open Web Apps と最もよく似ています。アプリ標準は進化しており、当然のことながら多くの同じビジョンを共有していることから、私たちは Google Chrome チームと協力を続けていきます。すべての Web ベースのアプリプラットフォームには非常に大きな集結の可能性があり、私たちはあらゆるベンダーに対して適切な Open Web App API を開発する Mozilla の取り組みへの協力を呼びかけています。</p>
+
+<p>今のところ Open Web Apps を使うには Mozilla Firefox ベースのエンジン (「Web ランタイム」) が必要ですが、 これが常態化することは意図したものではありません。Open Web Apps プロジェクトの大部分はまだ計画段階であり、すべての機能をすべてのブラウザへ一度に実装することは不可能です。Open Web Apps の大部分は既に標準化されているものの、その他大部分はまだ流動的です。私たちは、Open Web Apps がすべての主要ブラウザで利用可能な標準機能となることを意図し望んでいます。</p>
+
+<p>そのため、MDN 内の Open Web Apps に関する記事を読むときは、今のところその情報の多くは Firefox 限定であるものの、将来的にうまくいけばすべてのブラウザ向けに Open Web Apps を開発できるようになるということを念頭に置いてください。</p>
+
+<h2 id="Web_standards" name="Web_standards">Web 標準</h2>
+
+<p>OWA の技術はひとつのパーツではなく、様々な技術を集めた傘のようなもので、その一部はまだ初期段階です。現時点で、OWA の一部パーツは標準化されています (HTML5、CSS、JavaScript、IndexedDB など)。その他のパーツはまだ標準化されておらず、そのため Mozilla の実装は Firefox やその他 Mozilla 技術固有のものとなっています。Mozilla のミッションは共有であり、またすべての人を力づけることであるため、この状況は一時的なものに過ぎません。私たちが、OWA のパーツがまだ標準化されていないことを OWA 関連の記事で明記しているのはそのためです。</p>
+
+<p>なお、Mozilla が使用していない OWA 関連の提案や潜在的標準も一部存在する可能性があります。</p>
+
+<h3 id="Intended_eventual_standards" name="Intended_eventual_standards">今後標準となる技術</h3>
+
+<p>様々な Web プラットフォーム上でまだ標準化されておらず、現時点でまだ Firefox 固有となっているパーツは以下の通りです。</p>
+
+<ul>
+ <li>アプリを定義する <a href="/ja/docs/Web/Apps/Manifest">OWA マニフェスト</a></li>
+ <li>アプリと連携する <a href="/ja/docs/Web/Apps/JavaScript_API">完全な OWA API</a></li>
+ <li>電話、位置情報などの機能にアクセスする <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a>。状況報告は <a href="http://arewemobileyet.com/">arewemobileyet.com</a> を参照してください。</li>
+ <li>ユーザデータと連携する <a href="/ja/docs/Mozilla/Persona">個人認証システム (Persona)</a></li>
+ <li>アプリ内課金やあらゆるマーケットプレイスからのアプリの購入を容易にする <a href="https://wiki.mozilla.org/WebAPI/WebPayment">WebPayment API</a></li>
+ <li>あらゆる端末上で有料アプリを検証し、あらゆるマーケットプレイスでアプリを販売できるようにする <a href="https://wiki.mozilla.org/Apps/WebApplicationReceipt">OWA レシート</a></li>
+</ul>
+
+<h3 id="Marketplace" name="Marketplace">Marketplace</h3>
+
+<h4 id="Buy_Once.2C_Run_Everywhere" name="Buy_Once.2C_Run_Everywhere">一度購入すればどこでも動く</h4>
+
+<p>Mozilla は当初から、ユーザが一度購入すればすべての HTML5 対応端末で実行できるようなアプリシステムを開発してきました。Mozilla はまもなく <a href="http://bits.blogs.nytimes.com/2012/09/07/a-firefox-smartphone-for-the-poor/">初の Firefox OS 搭載スマートフォンを展開</a> する予定ですが、それはアプリを実行できる端末のひとつに過ぎません。<a href="https://marketplace.firefox.com/">Firefox Marketplace</a> からアプリを購入した場合、システムは端末上にレシートをインストールします。<a href="https://wiki.mozilla.org/Apps/WebApplicationReceipt">レシート</a> は、Marketplace の公開鍵とその検証サービス URL にリンクしたメタデータを含む JSON Web トークンです。アプリは起動時にレシートを検証できますが、端末上のレシートは Firefox Marketplace に縛られていないという点に注意してください。レシートは単に暗号化技術によって検証可能な購入証明なのです。レシートの仕様に従えば誰でも Open Web Apps を販売できます。<strong>アプリを購入する際、それは Open Web Apps システムに対応しているあらゆる端末間で持ち運び可能であることが想定されています</strong>。</p>
+
+<p>Mozilla はあらゆる HTML5 対応端末で Open Web Apps を実行するのに必要なインフラを開発しています。<a href="http://www.mozilla.jp/firefox/android/features/">Android 版 Firefox</a> ではアプリをインストールして実行できます (<a href="http://nightly.mozilla.org/">Nightly ビルド</a> で今すぐ試せます)。インストールしたアプリのアイコンは、通常の Android アプリのようにホーム画面へ追加されます。Firefox を使えばアプリを Windows、Mac、Linux のデスクトップ上でも実行できます (今のところ <a href="http://nightly.mozilla.org/">Nightly ビルド</a> のみ対応)。現時点では Firefox の特定バージョンが必要ですが、Open Web Apps システムは最終的にすべての主要ブラウザによって一連の標準技術として対応されることを想定したものです。Mozilla は当初からすべての主要な HTML5 対応ブラウザをデモの実行環境に含めてきました。このホストされている JavaScript <a href="https://apps.persona.org/include.js">シム</a> を見てみれば、Firefox 以外のブラウザでアプリプラットフォームに対応する方法の考え方が分かるでしょう。</p>
+
+<p>将来的には Open Web Apps システムは端末を越えた <a href="http://mozilla-services-docs.readthedocs.org/en/latest/aitc/">インストール済みアプリの同期</a> に対応する予定です。レシートは移動可能であることから、必要なら自分自身でそれを同期することもできます。念のために言えば、無料の Open Web Apps は通常の Web サイトと変わらないため、いつでもあらゆるブラウザで実行できます。ただし、アプリによっては、すべてのプラットフォームで実装されていない新しい <a href="https://wiki.mozilla.org/WebAPI/">モバイル固有の WebAPI</a> を使っている可能性もあります。</p>
+
+<p>以下の動画は、オープンなマーケットプレースと、Web を通じたオープンなアプリ発見アプローチの利点について、その概要を分かりやすく解説しています。</p>
+
+<p></p><div class="intrinsic-wrapper"><div class="intrinsic-container "><iframe src="https://www.youtube.com/embed/QCH_ncCrZfE?rel=0&amp;html5=1"></iframe></div></div><p></p>
+
+<h3 id="WebPayment_API" name="WebPayment_API">WebPayment API</h3>
+
+<h4 id="Commerce_For_Apps" name="Commerce_For_Apps">アプリの商取引</h4>
+
+<p>iOS や Android といったモバイルアプリプラットフォームが成功した背景のひとつには、それらがモバイル課金を通じて新しいビジネスモデルを非常に簡単に試せるようにしたという点が挙げられるでしょう。そうしたモデルはまだ成長を続けていますが、商取引は、現時点ではおそらく、デスクトップ Web 上ではぎこちなく、一方モバイル上ではより自然なものに見えるでしょう。具体的には、何かを電話料金と併せて課金することは、既にそれに電話からアクセスしている場合、非常に便利です。Firefox OS の展開に伴い、アプリエコシステムは <a href="https://wiki.mozilla.org/WebAPI/WebPayment">WebPayment API</a> を通じたアプリの購入とアプリ内課金に対応します。商取引への対応はアプリプラットフォームの成長に不可欠です。なお、<strong> 提案されている課金 API の使用は完全に任意です</strong>。Mozilla はアプリが独自のアプリ内課金システムを使うことを妨げるようなことはしません。</p>
+
+<h2 id="See_also" name="See_also">関連記事</h2>
+
+<ul>
+ <li><a href="https://blog.mozilla.org/webdev/2012/09/14/apps-the-web-is-the-platform/">Apps: The Web Is The Platform</a> - Kumar McMillan (この記事の内容の多くを借用したブログ記事)</li>
+ <li><a href="https://plus.google.com/113127438179392830442/posts/fR3iiuN4kEF">See the Web platform succeed for applications</a> - Paul Irish</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/quickstart/初めてのアプリ/index.html b/files/ja/archive/b2g_os/quickstart/初めてのアプリ/index.html
new file mode 100644
index 0000000000..3a873f736f
--- /dev/null
+++ b/files/ja/archive/b2g_os/quickstart/初めてのアプリ/index.html
@@ -0,0 +1,268 @@
+---
+title: 初めてのアプリ
+slug: Archive/B2G_OS/Quickstart/初めてのアプリ
+tags:
+ - Apps
+ - Guide
+translation_of: Archive/B2G_OS/Quickstart/Your_first_app
+---
+<div class="note">
+<p><strong>注記</strong>: Quickstart セクションは新しく、<a href="/ja/Apps/Quickstart">Firefox OS アプリの基礎</a> にフォーカスしたものに更新されていて、以前の Quickstart 記事とは置き換わっています。古い記事よりも使いやすく学びやすくなったドキュメントになっているでしょう。</p>
+</div>
+
+<article class="brush: js">
+<div class="summary">
+<p>Open Web Apps は、Web 開発者が何年も望んでいた HTML / CSS / JavaScript だけで作られたインストール可能なアプリに対応しているクロスプラットフォーム (Open Web Apps のための Firefox OS などの) を提供します。<span class="seoSummary">このガイドは、素晴らしいアプリを作成するために基本アーキテクチャですぐに動作させる方法とビルド手順を紹介します。</span></p>
+</div>
+
+<p>このガイドに沿って作業したい場合、<a href="https://github.com/chrisdavidmills/mdn-app-template">クイックスタートアプリテンプレート</a> をダウンロードしてください。これに含まれているものについての詳細は、<a href="/ja/docs/Project:MDN/Style_guide/Sample_app_coding_guidelines#Apps_template">アプリテンプレート</a> ガイドをご覧ください。</p>
+
+<h2 id="アプリ構造">アプリ構造</h2>
+
+<h3 id="パッケージ型_vs._ホスト型アプリ">パッケージ型 vs. ホスト型アプリ</h3>
+
+<p>パッケージ型とホスト型の 2 つの Open Web Apps のタイプが存在します。パッケージ型アプリは、アプリケーションのすべてのアセット (HTML / CSS / JavaScript / 画像 / マニフェストなど) が含まれる zip ファイルです。ホスト型アプリは、与えられたドメインでサーバー上から起動するアプリです。両方のアプリのタイプはマニフェストを利用します。Firefox Marketplace でアプリが一覧に表示される際に、アプリは zip ファイルとしてアップロードするか、ホスト型アプリとして存在する URL が提供する必要があります。</p>
+
+<div style="width: 480px; margin: 0 auto;">
+<p></p><div class="intrinsic-wrapper"><div class="intrinsic-container "><iframe src="https://www.youtube.com/embed/Q7x-B13y33Q?rel=0&amp;html5=1"></iframe></div></div><p></p>
+
+<div class="video-caption">
+<p>Made in partnership with Treehouse: <a class="button" href="http://teamtreehouse.com/?cid=1154">Check them out!</a></p>
+</div>
+</div>
+
+<p>このガイドの目的は、<code>localhost</code> アドレスに存在するホスト型アプリを作成することです。アプリを Firefox Marketplace に表示する準備ができると、パッケージ型もしくは、ホスト型として起動するかを選択することができます。</p>
+
+<h3 id="アプリマニフェスト">アプリマニフェスト</h3>
+
+<p>すべての Firefox アプリはアプリのルートに配置する manifest.webapp ファイルが必要です。<code><a href="/ja/Apps/Manifest">manifest.webapp</a></code> はアプリのバージョン、名前、説明、アイコン、ロケール、インストールすることのできるドメインなど多くの重要な情報を提供します。必須項目はアプリの名前と説明だけです。アプリテンプレート内にある簡単なマニフェストの例は以下のようなものになります:</p>
+
+<pre class="brush: js">{
+ "version": "0.1",
+ "name": "Open Web App",
+ "description": "Your new awesome Open Web App",
+ "launch_path": "/app-template/index.html",
+ "icons": {
+ "16": "/app-template/app-icons/icon-16.png",
+ "48": "/app-template/app-icons/icon-48.png",
+ "128": "/app-template/app-icons/icon-128.png"
+ },
+ "developer": {
+ "name": "Your Name",
+ "url": "http://yourawesomeapp.com"
+ },
+ "locales": {
+ "es": {
+ "description": "Su nueva aplicación impresionante Open Web",
+ "developer": {
+ "url": "http://yourawesomeapp.com"
+ }
+ },
+ "it": {
+ "description": "La tua nuova fantastica Open Web App",
+ "developer": {
+ "url": "http://yourawesomeapp.com"
+ }
+ }
+ },
+ "default_locale": "en"
+}</pre>
+
+<div style="width: 480px; margin: 0 auto;">
+<p></p><div class="intrinsic-wrapper"><div class="intrinsic-container "><iframe src="https://www.youtube.com/embed/dgAUgHQOm8M?rel=0&amp;html5=1"></iframe></div></div><p></p>
+
+<div class="video-caption">
+<p>Made in partnership with Treehouse: <a class="button" href="http://teamtreehouse.com/?cid=1154">Check them out!</a></p>
+</div>
+</div>
+
+<p> </p>
+
+<p>基本的なマニフェストは整いました。マニフェストに関するもっと詳しい情報は <a href="/ja/Apps/Manifest">App Manifset</a> の記事をご覧ください。</p>
+
+<h2 id="アプリのレイアウトと設計">アプリのレイアウトと設計</h2>
+
+<p>様々な端末上で画面解像度が増えるにつれ、レスポンシブデザインはますます重要になっています。アプリのメインターゲット端末が Firefox OS のようなモバイルプラットフォームでも、他の端末でも同じようにアクセスできます。<a href="/ja/docs/Web/Guide/CSS/Media_queries">CSS メディアクエリ</a> を使用すると、レイアウトを端末に適応することができます。以下に、スケルトン CSS の例を示します:</p>
+
+<pre class="brush: css">/* The following are examples of different CSS media queries */
+
+/* Basic desktop/screen width sniff */
+@media only screen and (min-width : 1224px) {
+ /* styles */
+}
+
+/* Traditional iPhone width */
+@media
+ only screen and (-webkit-min-device-pixel-ratio : 1.5),
+ only screen and (min-device-pixel-ratio : 1.5) {
+ /* styles */
+}
+
+/* Device settings at different orientations */
+@media screen and (orientation:portrait) {
+ /* styles */
+}
+@media screen and (orientation:landscape) {
+ /* styles */
+}</pre>
+
+<p>多くの JavaScript と CSS のフレームワークは、レスポンシブデザインとモバイルアプリ開発に役立ちます(<a href="http://getbootstrap.com/">Bootstrap</a> など)。アプリや開発スタイルに最も適したフレームワークを選んでください。</p>
+
+<h2 id="Web_API">Web API</h2>
+
+<p>JavaScript API は端末と同様に次々と作成され拡張されています。Mozilla の <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> は数十もの標準モバイル機能の JavaScript API へ影響を与えました。<a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> のページで、端末のサポートとステータスの一覧を確認できます。以下に例のような JavaScript の機能検知はまだベストプラクティスです:</p>
+
+<pre class="brush: js">// If this device supports the vibrate API...
+if('vibrate' in navigator) {
+ // ... vibrate for a second
+ navigator.vibrate(1000);
+}</pre>
+
+<p>以下の例では、端末のバッテリ状態の変化に基づいて <code>&lt;div&gt;</code> の表示スタイルが変更されます。</p>
+
+<div>
+<pre class="brush: javascript">// Create the battery indicator listeners
+(function() {
+ var battery = navigator.battery || navigator.mozBattery || navigator.webkitBattery,
+ indicator, indicatorPercentage;
+
+ if(battery) {
+ indicator = document.getElementById('indicator'),
+ indicatorPercentage = document.getElementById('indicator-percentage');
+
+ // Set listeners for changes
+ battery.addEventListener('chargingchange', updateBattery);
+ battery.addEventListener('levelchange', updateBattery);
+
+ // Update immediately
+ updateBattery();
+ }
+
+ function updateBattery() {
+ // Update percentage width and text
+ var level = (battery.level * 100) + '%';
+ indicatorPercentage.style.width = level;
+ indicatorPercentage.innerHTML = 'Battery: ' + level;
+ // Update charging status
+ indicator.className = battery.charging ? 'charging' : '';
+ }
+})();</pre>
+
+<p>上記のコード中では、<a href="/ja/docs/Web/API/window.navigator.battery">Battery API</a> を一度サポートしているか確認してから、<code>chargingchange</code> <code>や</code> <code>levelchange</code> <code>のリスナーを追加して、要素の表示を更新しています。以下のクイックスタートテンプレート追加して、動作しているか確認することが出来ます。</code></p>
+
+<p><a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> のページで、最新のデバイス API のステータスを確認してください。</p>
+
+<h3 id="インストール_API_機能">インストール API 機能</h3>
+
+<p>クイックスタートアプリのテンプレートサンプルでは、アプリを標準的な Web ページとして表示したときに、クリックできるインストールボタンを実装していています。クリックすると Firefox OS にアプリとしてインストールします。ボタンのマークアップに特別なことはしていません:</p>
+
+<pre class="brush: html">&lt;button id="install-btn"&gt;Install app&lt;/button&gt;</pre>
+
+<p>このボタンの機能はインストール API (install.jsをご覧ください) を使用して実装されています:</p>
+
+<pre class="brush: js">var manifest_url = location.href + 'manifest.webapp';
+
+function install(ev) {
+  ev.preventDefault();
+  // define the manifest URL
+  // install the app
+  var installLocFind = navigator.mozApps.install(manifest_url);
+  installLocFind.onsuccess = function(data) {
+    // App is installed, do something
+  };
+  installLocFind.onerror = function() {
+    // App wasn't installed, info is in
+    // installapp.error.name
+    alert(installLocFind.error.name);
+  };
+};
+
+// get a reference to the button and call install() on click if the app isn't already installed. If it is, hide the button.
+var button = document.getElementById('install-btn');
+
+var installCheck = navigator.mozApps.checkInstalled(manifest_url);
+
+installCheck.onsuccess = function() {
+  if(installCheck.result) {
+    button.style.display = "none";
+  } else {
+    button.addEventListener('click', install, false);
+  };
+};
+</pre>
+
+<p>簡単に何をしているのかを見ていきます。</p>
+
+<ol>
+ <li>インストールボタンを参照して、<code>button</code> 変数にそれを格納します。</li>
+ <li><code>navigator.mozApps.checkInstalled</code> を使用して、<code>http://people.mozilla.com/~cmills/location-finder/manifest.webapp</code> <code>の</code>マニフェストファイルに定義されたアプリが既に端末にインストールされているかを確認します。この検証結果は <code>installCheck</code> <code>変数へ格納します。</code></li>
+ <li>確認が成功したら、成功イベントが発火し、<code>installCheck.onsuccess = function() { ... }</code> <code>が実行されます。</code></li>
+ <li><code>installCheck.result</code> <code>が存在するかを</code> <code>if</code> <code>文で確認します。</code>もし存在する場合、アプリはインストール済みを意味するため、ボタンを非表示にします。インストールボタンは既にインストール済みであれば不要です。</li>
+ <li>アプリがインストールされていない場合、ボタンクリック時に <code>install()</code> <code>関数が</code>実行されるように、ボタンにリスナーを追加します。</li>
+ <li>ボタンがクリックされ <code>install()</code> <code>関数が実行されると、</code><code>manifest_url</code> <code>と呼ばれる変数にマニフェストファイルのロケーションを格納し、</code><code>navigator.mozApps.install(manifest_url)</code> <code>を使用してアプリをインストールして、インストールの参照を</code> <code>installLocFind</code> <code>変数へ格納します。</code>インストールも成功 / 失敗のイベントを受け取ることができるので、成功 / 失敗の時のアクションを実行することが出来ます。</li>
+</ol>
+
+<p>最初にインストール可能な Web アプリに遭遇した時、<a href="/ja/Apps/Apps_JavaScript_API">API の実装状況</a> を検証したいでしょう。</p>
+
+<div class="note">
+<p>注記: インストール可能な Open Web Apps は "1つのオリジンに対して1つのアプリ" のセキュリティポリシーがあります。基本的に、1つのオリジンで1つ以上のインストール可能なアプリをホスティングすることはできません。これはちょっとトリッキーなテストになりますが、アプリごとのに異なるサブドメインを作ったり、Firefox OS シミュレータを使ってテストをしたり、デスクトップにインストール可能なWeb Apps をインストールすることになりますが、Firefox Aurora/Nightly のインストール機能を使うなどの回避手段は存在します。<br>
+ オリジンについての更なる情報は<a href="/ja/Apps/FAQs/About_app_manifests">アプリマニフェストについてのFAQ</a> をご覧ください。</p>
+</div>
+
+<h2 id="WebRT_API_(パーミッションベース_API)">WebRT API (パーミッションベース API)</h2>
+
+<p>利用可能な WebAPI は数多くありますが、機能を有効にするためのパーミッションが必要です。アプリは以下のように <code>manifest.webapp</code> <code>ファイルにパーミッションを登録しなくてはなりません。</code></p>
+
+<pre class="brush: js">// New key in the manifest: "permissions"
+// Request access to any number of APIs
+// Here we request permissions to the systemXHR API
+"permissions": {
+ "systemXHR": {}
+}</pre>
+
+<p>パーミッションには、以下のように3つのレベルが存在します。</p>
+
+<ul>
+ <li>Normal — アクセスパーミッションを記載する必要のないAPI群</li>
+ <li>Privileged — アプリ開発者が自身のアプリのためにマニフェストファイルへパーミッションを記載していたり、信頼されたソースを通して配布している場合に利用可能なAPI群</li>
+ <li>Certified — 電話やメッセージサービスなどの端末のクリティカルな機能を制御するAPI群。これらは一般的にサードパーティーが開発する時には利用することが出来ません。</li>
+</ul>
+
+<p>パーミッションレベルの更なる情報については、<a href="/ja/Apps/Packaged_apps#Types_of_packaged_apps">パッケージ型アプリの種類</a>を参照してください。どのAPIがパーミッションが必要で、どのパーミッションが必要なのかは、<a href="/ja/Apps/App_permissions">アプリの許可設定</a>をご覧ください。</p>
+
+<div class="note">
+<p>Firefox OS シミュレータではすべてのWeb API は実装されていない点については注意してください。</p>
+</div>
+
+<h2 id="ツールとテスト">ツールとテスト</h2>
+
+<p>モバイル端末をサポートするときテストは非常に重要になってきます。インストール可能なOpen Web Apps のテストのオプションは多く存在します。</p>
+
+<h3 id="Firefox_OS_シミュレータを含むWebIDE">Firefox OS シミュレータを含むWebIDE</h3>
+
+<p><a href="/en-US/docs/Tools/WebIDE">WebIDE</a> と呼ばれるテストツールの新参者があります。このツールはデスクトップ版Firefox とUSB 経由の互換端末(または、Firefox OS シミュレータ)と接続し、アプリを直接端末へインストールしたり、アプリの検証をしたり、端末上で動作させながらデバッグすることが出来ます。</p>
+
+<h3 id="ユニットテスト">ユニットテスト</h3>
+
+<p>ユニットテストは、異なる端末でのテストするときやビルドするときにとても価値のあるものになります。 jQuery の<a href="http://qunitjs.com/">QUnit </a>はクライアントサイドのテストユーティリティとして人気がありますが、あなたが望むほかのテストツールを使っても構いません。</p>
+
+<h3 id="端末にFirefox_OS_をインストールする">端末にFirefox OS をインストールする</h3>
+
+<p>Firefox OS はオープンなプラットフォームなので、あなたの端末にFirefoxOS をインストールしたり、ビルドするためのコードやツールは入手可能です。ビルドとインストール説明や、同じように端末へインストール可能かどうかの注意書きについては、<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform">MDN</a> から見つけ出すことが出来ます。</p>
+
+<p>Firefox OS 開発者プレビュー専用のデバイスは入手可能です。更なる情報については我々の<a href="https://marketplace.firefox.com/developers/dev_phone">開発端末ページ</a>をご覧ください。</p>
+
+<h2 id="アプリの提出と公開">アプリの提出と公開</h2>
+
+<p>一度アプリが完成すると、標準的なウェブサイトまたはアプリ(更なる情報は、<a href="/ja/Marketplace/Options/Self_publishing">アプリの自主配布</a>をご覧ください)としてホスティングすることが出来ます。または、<a href="https://marketplace.firefox.com">Firefox マーケットプレイス</a>へ<a href="https://marketplace.firefox.com/developers/submit/app/manifest">提出</a>することが出来ます。アプリのマニフェストは検証され、どの端末でアプリをサポートするかを選択することが出来ます(例:Firefox OS、デスクトップ版Firefox、モバイル版Firefox、タブレット版Firefox)<br>
+ 一度検証されると、アプリについての追加情報(スクリーンショット、説明、価格など)を加えることが出来ます。そして、公式に提出されたアプリとしてマーケットプレイスにリスト化されます。一度承認を得ると、アプリは全世界から購入・インストールすることが可能になります。</p>
+
+<h3 id="マーケットプレイスと表示情報についての更なる情報">マーケットプレイスと表示情報についての更なる情報</h3>
+
+<ol>
+ <li><a href="/ja/Apps/Submitting_an_app">Firefox OS マーケットプレイスにアプリを提出する</a></li>
+ <li><a href="/ja/Apps/Marketplace_review_criteria">マーケットプレイスのレビュー基準</a></li>
+ <li><a href="http://s.vid.ly/embeded.html?link=8k2n4w&amp;autoplay=false">アプリ提出までのビデオ</a></li>
+</ol>
+</div>
+</article>
diff --git a/files/ja/archive/b2g_os/releases/1.1/index.html b/files/ja/archive/b2g_os/releases/1.1/index.html
new file mode 100644
index 0000000000..7e768d8ade
--- /dev/null
+++ b/files/ja/archive/b2g_os/releases/1.1/index.html
@@ -0,0 +1,89 @@
+---
+title: 開発者向けFirefox OS 1.1
+slug: Archive/B2G_OS/Releases/1.1
+translation_of: Archive/B2G_OS/Releases/1.1
+---
+<div class="summary">
+ <p><span class="seoSummary">Firefox OS 1.1はプレリリースのバージョンです。 first offered to partners for release on October 21, 2013. Its Gecko component is based on Firefox 18 (see <a href="/en-US/docs/Mozilla/Firefox/Releases/18" title="/en-US/docs/Mozilla/Firefox/Releases/24">Firefox 18 for developers</a>) just like <a href="/en-US/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1</a>, but with some additional bugfixes and APIs added. This page details the developer features newly implemented in Firefox OS 1.1.</span></p>
+</div>
+<h2 id="HTML">HTML</h2>
+<p>Firefox OS-specific:</p>
+<ul>
+ <li><code>&lt;input type="file"&gt;</code> enabled (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=832923" title="FIXED: Implement &lt;input type='file'> on B2G">バグ 832923</a> for details).</li>
+</ul>
+<h2 id="JavaScript">JavaScript</h2>
+<p>Firefox OS-specific:</p>
+<ul>
+ <li>When detecting <code>&lt;video&gt;</code> support for different formats, <code>HTMLMediaElement.prototype.canPlayType</code> now correctly reports <code>false</code> for h.264 video.</li>
+</ul>
+<h2 id="DOMAPI">DOM/API</h2>
+<p>Firefox OS-specific:</p>
+<ul>
+ <li><span id="summary_alias_container"><span id="short_desc_nonedit_display">Device Storage API: When getting a cursor callback from <code>navigator.getDeviceStorage("sdcard").enumerate</code>, <code><span id="summary_alias_container"><span id="short_desc_nonedit_display">this.done</span></span></code> is undefined (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=902565" title='this.done in cursor callback of naviagtor.getDeviceStorage("sdcard").enumerate is undefined'>バグ 902565</a>). This is fixed in Firefox 1.2. The referenced bug discusses possible compatibility checks/workarounds for this issue. </span></span></li>
+ <li>SMS, MMS and MobileMessage-related APIs have landed
+ <ul>
+ <li><a href="/ja/docs/Web/API/Window/navigator/mozMobileMessage" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>window.navigator.mozMobileMessage</code></a></li>
+ <li><a href="/ja/docs/Web/API/Window/navigator/mozSms" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>window.navigator.mozSms</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozMmsEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozMmsEvent</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozMmsMessage" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozMmsMessage</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozMobileMessageManager" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozMobileMessageManager</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozMobileMessageThread" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozMobileMessageThread</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozSmsEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozSmsEvent</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozSmsFilter" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozSmsFilter</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozSmsManager" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozSmsManager</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozSmsMessage" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozSmsMessage</code></a></li>
+ <li><a href="/ja/docs/Web/API/MozSmsSegmentInfo" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozSmsSegmentInfo</code></a></li>
+ <li>nsIMobileMessageCallback (Gecko Internal API)</li>
+ <li>nsIMobileMessageCursorCallback (Gecko Internal API)</li>
+ <li>nsIMobileMessageService (Gecko Internal API)</li>
+ <li>nsIMobileMessageDatabaseService (Gecko Internal API)</li>
+ <li>nsIMmsService (Gecko Internal API)</li>
+ <li>
+ <div>
+ nsISmsService (Gecko Internal API</div>
+ </li>
+ </ul>
+ </li>
+ <li><a href="/en-US/docs/WebAPI/Simple_Push">Simple Push</a> (Push Notifications API) has landed</li>
+ <li><a href="http://help.vodafone.co.nz/app/answers/detail/a_id/3230">WAP Push</a> has landed</li>
+</ul>
+<h2 id="Firefox_OS_HD_サポート">Firefox OS HD サポート</h2>
+<p>Since Firefox OS 1.1, there are HD versions available to provide HD support for high-DPI devices. This is mostly just a visual change, dealt with in the same way that you'd deal with other devices of differing resolution, and you'll encounter nothing much in the way of underlying platform differences.</p>
+<h2 id="Fixed_Firefox_OS_Issues">Fixed Firefox OS Issues</h2>
+<ul>
+ <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=817972">817972</a>: [Bluetooth][File-Transfer] Support multiple files transferring.</li>
+ <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=834672">834672</a>: AppProtocolHandler.js should never throw.</li>
+ <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=839500">839500</a>: Gaia‘s identity.js opens a browser process that‘s stuck in the foreground. Therefore, if you open the marketplace app, you lose ~10% of available app memory until you reboot the phone.</li>
+ <li>Memory fix for Persona logins.</li>
+ <li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=834773">834773</a>: Using the pick activity and confirming an image for the gallery — app gets hung with no perceived perf for 5–10 seconds</li>
+</ul>
+<p><a href="http://mzl.la/1bqXGXS">Resolved crashes</a></p>
+<h2 id="Feature_highlights_for_Firefox_OS_1.1">Feature highlights for Firefox OS 1.1</h2>
+<ul>
+ <li>Multimedia Messaging (MMS) support added to the messaging app so that you can send pictures, video, and audio to contacts, or a text message to multiple people at the same time.</li>
+ <li>Saving images, video, and audio from the browser is now supported.</li>
+ <li>Email account contacts can now be imported from Gmail and Windows Live Mail (Outlook).</li>
+ <li>Email image, audio and video attachment download has been implemented.</li>
+ <li>Attaching and sending Gallery images now supported.</li>
+ <li>Email draft mode has been implemented.</li>
+ <li>Improvements to the dialer and contacts, such as easily adding a dialed number to an existing contact and dialer suggestions to easily find contacts.</li>
+ <li>Cell Broadcast implemented for simultaneous delivery of emergency messages to subscribed users.</li>
+ <li>Major performance improvements around application launch time and scrolling.</li>
+ <li><b>Music</b> search to find music by artist, album or song title.</li>
+ <li>Firefox OS offers <b>Calendar</b> features such as:
+ <ul>
+ <li>Separate detail and edit views.</li>
+ <li>Alarm sound notification selection.</li>
+ <li>Direct event creation at specific date/time.</li>
+ </ul>
+ </li>
+</ul>
+<h2 id="See_also">See also</h2>
+<ul>
+ <li><a href="http://www.mozilla.org/en-US/firefox/os/notes/1.1/" title="http://www.mozilla.org/en-US/firefox/os/notes/1.1/">Firefox OS 1.1 Notes</a></li>
+</ul>
+<h2 id="以前のバージョン">以前のバージョン</h2>
+<p></p><div class="multiColumnList">
+<ul>
+<li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li></ul>
+</div><p></p>
diff --git a/files/ja/archive/b2g_os/releases/1.2/index.html b/files/ja/archive/b2g_os/releases/1.2/index.html
new file mode 100644
index 0000000000..8fe5012536
--- /dev/null
+++ b/files/ja/archive/b2g_os/releases/1.2/index.html
@@ -0,0 +1,466 @@
+---
+title: Firefox OS 1.2 for developers
+slug: Archive/B2G_OS/Releases/1.2
+translation_of: Archive/B2G_OS/Releases/1.2
+---
+<div class="summary">
+<p><span class="seoSummary">Firefox OS 1.2 は現在プレスリリース段階です。その Gecko コンポーネントは Firefox 26 ベース(Firefox 19 と Firefox 26 の間のGeckoの全ての追加を含みます; 最新の <a href="/en-US/docs/Mozilla/Firefox/Releases/26">開発者向けFirefox 26 リリースノート</a>を見て下さい。) このページは Firefox OS 1.2 で新たに実装された開発機能を詳解します。.</span></p>
+</div>
+
+<h2 id="開発者ツール">開発者ツール</h2>
+
+<ul>
+ <li>Firefox OS versions 1.2 and above are compatible with the <a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_App_Manager">Firefox App Manager</a>.</li>
+</ul>
+
+<h2 id="HTML">HTML</h2>
+
+<p>General Gecko:</p>
+
+<ul>
+ <li>The <code><a href="/ja/docs/Web/HTML/Element/iframe#attr-srcdoc">srcdoc</a></code> attribute of <a href="/ja/docs/Web/HTML/Element/iframe" title="HTML の &lt;iframe> 要素は、ブラウジングコンテキスト (browsing context) の入れ子を表現し、事実上現在のページに他の HTML ページを埋め込むことができます。HTML 4.01 では、文書は head および body、または head および frameset を持つことができ、body と frameset の両方は持ちません。しかし、&lt;iframe> は通常の文書 body 内で使用できます。ブラウジングコンテキストはそれぞれ、セッション履歴とアクティブな文書を持ちます。埋め込みコンテンツを含む側のブラウジングコンテキストを、親ブラウジングコンテキストと呼びます。トップレベルのブラウジングコンテキスト (親を持ちません) は通常ブラウザーウィンドウです。"><code>&lt;iframe&gt;</code></a>, allowing the inline specification of the content of an <a href="/ja/docs/Web/HTML/Element/iframe" title="HTML の &lt;iframe> 要素は、ブラウジングコンテキスト (browsing context) の入れ子を表現し、事実上現在のページに他の HTML ページを埋め込むことができます。HTML 4.01 では、文書は head および body、または head および frameset を持つことができ、body と frameset の両方は持ちません。しかし、&lt;iframe> は通常の文書 body 内で使用できます。ブラウジングコンテキストはそれぞれ、セッション履歴とアクティブな文書を持ちます。埋め込みコンテンツを含む側のブラウジングコンテキストを、親ブラウジングコンテキストと呼びます。トップレベルのブラウジングコンテキスト (親を持ちません) は通常ブラウザーウィンドウです。"><code>&lt;iframe&gt;</code></a>, is now supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=802895" title="FIXED: implement &lt;iframe srcdoc=''> to allow document content in iframe to be specified inline">バグ 802895</a>).</li>
+ <li>When used with a <code>"image/jpeg"</code> type, the method <code>HTMLCanvasElement.toBlob</code> now accepts a third attribute defining the quality of the image (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=891884" title="FIXED: toBlob should support the quality parameter as toDataURL does">バグ 891884</a>).</li>
+ <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track" title="The track element is used as a child of the media elements—&lt;audio> and &lt;video>—and does not represent anything on its own. It lets you specify timed text tracks (or time-based data)."><code>&lt;track&gt;</code></a> element has been implemented behind the <code>media.webvtt.enabled</code> property (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=833385" title="FIXED: [webvtt] Implement Track element and TextTrack* DOM classes">バグ 833385</a>).</li>
+ <li>The <a href="/ja/docs/Web/HTML/Element/blink" title="HTML Blink 要素 (&lt;blink>) は内包するテキストを点滅させるための、非標準の要素です。"><code>&lt;blink&gt;</code></a> element support is now completely dropped. The <code>&lt;blink&gt;</code> tag now implements the <a href="/ja/docs/Web/API/HTMLUnknownElement" title="HTMLUnknownElement インタフェースは不正な HTML 要素である事を表します。固有メソッドや固有プロパティはありません。 HTMLElement インタフェースを継承しており、そちらのメソッドやプロパティを利用可能です。"><code>HTMLUnknownElement</code></a> interface (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=857820" title="FIXED: Drop only blink effect from text-decoration: blink; and completely remove &lt;blink> element">バグ 857820</a>).</li>
+ <li>The <code>range</code> state of the <a href="/ja/docs/Web/HTML/Element/input" title="HTML &lt;input> 要素は、ユーザーからデータを受け取るための、ウェブベースのフォーム用のインタラクティブなコントロールを作成するために使用します。"><code>&lt;input&gt;</code></a> element (<code>&lt;input type="range"&gt;</code>) has been switched on by default (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=841950" title="FIXED: Flip the pref to enable &lt;input type=range> for release builds">バグ 841950</a>).</li>
+ <li>The HTML5 <a href="/ja/docs/Web/HTML/Element/data" title="data要素は機械可読な形式で提供します。もし内容がtime-かdate-relatedの場合、&lt;time>要素を利用します。"><code>&lt;data&gt;</code></a> element has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=839371" title="FIXED: Implement HTML5 &lt;data> element">バグ 839371</a>).</li>
+ <li>The HTML5 <a href="/ja/docs/Web/HTML/Element/time" title="HTML &lt;time> 要素は、24 時間制の時刻または グレゴリオ暦 の正確な日付 (時刻やタイムゾーンを伴うことも可能) を表します。"><code>&lt;time&gt;</code></a> element has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=629801" title="FIXED: Implement HTML5 &lt;time> element">バグ 629801</a>).</li>
+ <li>The <code>range</code> state of the <a href="/ja/docs/Web/HTML/Element/input" title="HTML &lt;input> 要素は、ユーザーからデータを受け取るための、ウェブベースのフォーム用のインタラクティブなコントロールを作成するために使用します。"><code>&lt;input&gt;</code></a> element (<code>&lt;input type="range"&gt;</code>) has been implemented, behind the preference <code>dom.experimental_forms_range</code>, only enabled by default on Nightly and Aurora channel (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=841948" title="FIXED: Flip the pref to enable &lt;input type=range> on Nightly and Aurora">バグ 841948</a>).</li>
+ <li>The support for the <a href="/ja/docs/Web/HTML/Element/template" title="HTML template 要素 &lt;template> は、ページの読み込み時に描画されず、後で JavaScript を使用してインスタンス生成できるクライアントサイドのコンテンツを保持するメカニズムです。"><code>&lt;template&gt;</code></a> element, part of the Web component specification has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=818976" title="FIXED: Implement web components template.">バグ 818976</a>).</li>
+ <li>The <code><a href="/ja/docs/Web/HTML/Element/style#attr-scoped">scoped</a></code> attribute has been added to the <a href="/ja/docs/Web/HTML/Element/style" title="HTML &lt;style> 要素は、文書あるいは文書の一部分のスタイル情報を含みます。デフォルトでは、この要素内に記述するスタイルが CSS であると想定されています。"><code>&lt;style&gt;</code></a> element. It allows to include styles that are isolated from the rest of the document. Such styles can be selected using the <a href="/ja/docs/Web/CSS/:scope" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>:scope</code></a> CSS pseudo-element introduced in Firefox 20. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=508725" title="FIXED: Implement HTML 5 scoped attribute on STYLE tag">バグ 508725</a>).</li>
+ <li>The new HTML <a href="/ja/docs/Web/HTML/Element/main" title="main 要素()は、ドキュメントやアプリケーションの body 要素 (&lt;body>) の主な内容を表します。主な内容は中心的なトピックの主なコンテンツやアプリケーションの中心的な機能に直接関連する内容で構成されます。"><code>&lt;main&gt;</code></a> element has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=820508" title="FIXED: Add support for &lt;main> element">バグ 820508</a>).</li>
+ <li>Support for the <code><a href="/ja/docs/Web/HTML/Element/a#attr-download">download</a></code> attribute on the <a href="/ja/docs/Web/HTML/Element/a" title="HTML &lt;a> 要素 (アンカー要素) は、別のウェブページ、ファイル、同一ページ内の場所、電子メールアドレス、または他の URL へのハイパーリンクを作成します。"><code>&lt;a&gt;</code></a> and <a href="/ja/docs/Web/HTML/Element/area" title="HTML &lt;area> 要素は画像のホットスポット領域の定義、また任意で領域と ハイパーテキストリンク の関連づけを行います。この要素は &lt;map> 要素内だけで使用します。"><code>&lt;area&gt;</code></a> element has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=676619" title="FIXED: Implement proposed download attribute">バグ 676619</a>).</li>
+ <li>The value <code>auto </code>for the <a href="/en-US/docs/HTML/Global_attributes" title="HTML/Global_attributes">global attribute</a> <a href="/en-US/docs/HTML/Global_attributes#attr-dir" title="HTML/Global_attributes"><code>dir</code></a> has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=548206" title="FIXED: Implement the auto value for the HTML dir attribute">バグ 548206</a>).</li>
+</ul>
+
+<h2 id="CSS">CSS</h2>
+
+<p>General Gecko:</p>
+
+<ul>
+ <li>@font-feature-values rule support (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=549861" title="FIXED: implement parsing of font feature properties">バグ 549861</a>)</li>
+ <li>StyleRule{Added,Removed,Changed}, StyleSheetApplicableStateChange, StyleSheetChange events (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=839103" title="FIXED: Provide notifications for style sheet added and removed to chrome JS">バグ 839103</a>)</li>
+ <li>The <a href="/ja/docs/Web/CSS/text-decoration-line" title="text-decoration-line CSS プロパティは、要素に対してどのような種類の線による装飾を追加するかを設定します。"><code>text-decoration-line</code></a> property, still prefixed, now considers <code>'blink'</code> as a valid value, though it doesn't blink the content at all (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=812995" title="FIXED: add 'blink' to -moz-text-decoration-line and drop -moz-text-blink">バグ 812995</a>).</li>
+ <li>The non-standard<code> </code><a href="/ja/docs/Web/CSS/-moz-text-blink" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>-moz-text-blink</code></a> property has been removed (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=812995" title="FIXED: add 'blink' to -moz-text-decoration-line and drop -moz-text-blink">バグ 812995</a>).</li>
+ <li>Support for the <a href="/ja/docs/Web/CSS/image-orientation" title="CSS の image-orientation プロパティは、デフォルトの画像の向きをどのように補正するかを指定します。"><code>image-orientation</code></a> property, in its CSS Images &amp; Values Level 4 version, that is with the <code>from-image</code> keyword and EXIF support, has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=825771" title="FIXED: [css3-images] implement 'image-orientation' property">バグ 825771</a>).</li>
+ <li>Support for <code>position: sticky</code> can be enabled by pref <code>layout.css.sticky.enabled</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=886646" title="FIXED: implement position:sticky">バグ 886646</a>).</li>
+ <li>The support for the keyword <code>local</code> as a value of the <a href="/ja/docs/Web/CSS/background-attachment" title="background-image が指定されている場合、background-attachment CSS プロパティは、画像の位置をビューポートの範囲に固定するか、または画像を含むブロックとともにスクロールするかどうかを決定します。"><code>background-attachment</code></a> CSS property has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=483446" title="FIXED: CSS3 background-attachment: local support">バグ 483446</a>).</li>
+ <li>Support of a non-standard Mozilla-only media query to determine the operating system version has been added: <code><a href="/en-US/docs/Web/Guide/CSS/Media_queries#-moz-os-version" title="/en-US/docs/Web/Guide/CSS/Media_queries#-moz-os-version">-moz-os-version</a></code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=810399" title="FIXED: Add a CSS Media Query for Windows 8 Desktop theme">バグ 810399</a>). The property is currently only implemented on Windows.</li>
+ <li>The <a href="/ja/docs/Web/CSS/-moz-osx-font-smoothing" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>-moz-osx-font-smoothing</code></a> CSS property has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=857142" title="FIXED: Add CSS property for author control over antialiasing on Mac OS X, for cases where fonts appear too heavy">バグ 857142</a>)</li>
+ <li>The two values <code>-moz-zoom-in</code> and <code>-moz-zoom-out</code> of the <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/cursor" title=""><code>cursor</code></a> property have been unprefixed to <code>zoom-in</code> and <code>zoom-out</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=772153" title="FIXED: unprefix CSS cursor: -moz-zoom-in | -moz-zoom-out">バグ 772153</a>)).</li>
+ <li>The blink effect for <code><a href="/en-US/docs/CSS/text-decoration" title="/en-US/docs/CSS/text-decoration">text-decoration</a>: blink;</code> has no more effect, but is still a valid value (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=857820" title="FIXED: Drop only blink effect from text-decoration: blink; and completely remove &lt;blink> element">バグ 857820</a>).</li>
+ <li>In-flow <a href="/ja/docs/Web/CSS/::after" title="CSS の :after 擬似要素 は、選択した要素の仮想的な最後の子要素にマッチします。典型的な用途は、CSS の content プロパティを使って、ある要素に装飾的なコンテンツを追加するものです。この要素はデフォルトではインラインです。"><code>::after</code></a> and <a href="/ja/docs/Web/CSS/::before" title="::before はマッチした要素の最初の子要素となる擬似要素を生成します。content プロパティを使って、装飾的なコンテンツを要素に追加するのによく使われます。この要素はデフォルトではインラインです。"><code>::before</code></a> pseudo-elements are now flex items (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867454" title="FIXED: Support ::before, ::after as flex items">バグ 867454</a>).</li>
+ <li>Following a spec change, the initial value for <a href="/ja/docs/Web/CSS/min-width" title="min-width プロパティは、要素の最小幅を指定する CSS プロパティです。width プロパティの使用値が、min-width で指定した値を下回らないようにします。"><code>min-width</code></a> and <a href="/ja/docs/Web/CSS/min-height" title="CSS の min-height プロパティは要素の最小の高さを設定するのに使われます。height プロパティの使用値は、min-height に指定した値よりも小さくなりません。"><code>min-height</code></a> has been changed back to <code>0</code>, even on flex items (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=848539" title="FIXED: Remove support for &quot;min-width: auto&quot; and &quot;min-height: auto&quot;, since they're being dropped from flexbox spec">バグ 848539</a>).</li>
+ <li>Support for CSS Conditionals (<a href="/ja/docs/Web/CSS/@supports" title="@supports CSS @-規則は、波括弧でくくられた CSS ブロックへ入れ子にした文のセットと、プロパティと値のペアを任意で論理積・論理和・否定と組み合わせた検査対象の CSS 宣言で構成される条件文を関連付けます。このような条件を supports condition と呼びます。"><code>@supports</code></a> and <a href="/ja/docs/Web/API/CSS/supports" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CSS.supports</code></a>) has been enabled by default (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=855455" title="FIXED: enable @supports rule in all builds">バグ 855455</a>).</li>
+ <li>Support for <a href="/ja/docs/Web/CSS/background-clip" title="background-clip プロパティは、要素の背景色と背景画像の描画領域を、「ボーダーの裏側まで拡張する(デフォルト)」、「余白の領域までとする」、「コンテンツエリアのみとする」のいずれかに指定します。"><code>background-clip</code></a> and <a href="/ja/docs/Web/CSS/background-origin" title="CSS の background-origin プロパティは背景配置領域を決めます。背景配置領域は CSS の background-image プロパティで指定された画像の原点の位置です。"><code>background-origin</code></a> properties in the <a href="/ja/docs/Web/CSS/background" title="background CSS プロパティは個々の背景関連プロパティの値を、スタイルシートの単一の場所で設定するショートハンドプロパティです。background は次のプロパティのうち一つ以上に対する値を設定するのに使うことができます: background-clip、background-color、background-image、background-origin、background-position、background-repeat、background-size、および background-attachment。"><code>background</code></a> shorthand has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=570896" title="FIXED: add support for different background-origin and background-clip in background shorthand (css3-background)">バグ 570896</a>).</li>
+ <li>The <code>none</code> value of <a href="/ja/docs/Web/CSS/user-select" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>-moz-user-select</code></a> has now the same behavior than the <code>-moz-none</code> value, aligning Gecko on WebKit (Chrome, Safari), Presto (Opera) and Trident (Internet Explorer) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816298" title='FIXED: Change "-moz-user-select:none" to behave like WebKit, IE, and Opera (and "-moz-user-select:-moz-none")'>バグ 816298</a>).</li>
+ <li>On XHTML content, the <code>auto</code> value of <a href="/ja/docs/Web/CSS/hyphens" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>-moz-hyphens</code></a> incorrectly applied hyphenation rules when the language was not explicitly declared. This is fixed by (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=702121" title="FIXED: Incorrect hyphenation patterns used by CSS moz-hyphens in XHTML content (en-US patterns used, regardless of lang declaration)">バグ 702121</a>).</li>
+ <li>An <code>auto</code> value has been added to the CSS <a href="/ja/docs/Web/CSS/-moz-orient" title="Mozilla の CSS 拡張プロパティの -moz-orient は要素の 水平垂直の向き (orientation) を指定します。"><code>-moz-orient</code></a> property. The <code>auto</code> value is equivalent to <code>horizontal</code> when applied to <a href="/ja/docs/Web/HTML/Element/meter" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>&lt;meter&gt;</code></a> and <a href="/ja/docs/Web/HTML/Element/progress" title="HTML &lt;progress> 要素は、タスクの進捗状況の表示に使われます。通常はプログレスバーとして表示されます。"><code>&lt;progress&gt;</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=835883" title="FIXED: Give the -moz-orient property an 'auto' value, and make that its initial value">バグ 835883</a>).</li>
+ <li>The media query <a href="/en-US/docs/Web/Guide/CSS/Media_queries#-moz-windows-glass" title="/en-US/docs/Web/Guide/CSS/Media_queries#-moz-windows-glass"><code>-moz-windows-glass</code></a> has been added on Windows 7 and earlier Windows system (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816803" title="FIXED: Need a way to detect existence of Aero Glass via CSS">バグ 816803</a>).</li>
+ <li><a href="/en-US/docs/CSS/Using_CSS_flexible_boxes" title="CSS/Using_CSS_flexible_boxes">CSS Flexbox</a> has been unprefixed, and is now enabled by default (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=841876" title="FIXED: Re-enable flexbox pref (by default) in release builds">バグ 841876</a>).</li>
+ <li>The <code>mask-type</code> property from the <a href="https://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html" title="https://dvcs.w3.org/hg/FXTF/raw-file/tip/masking/index.html">CSS Masking specification</a> has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=793617" title="FIXED: implement mask-type property from CSS Masking">バグ 793617</a>).</li>
+ <li>Experimental support for the <a href="/ja/docs/Web/CSS/:scope" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>:scope</code></a> pseudo-class has been added. Enabled by default in Aurora and Nightly, it can be enabled in release and beta version by setting the <code>layout.css.scope-pseudo.enabled</code> about:config preference to <code>true</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=648722" title="FIXED: Add support for :scope as :-moz-scope">バグ 648722</a>).</li>
+ <li>Support for the viewport-relative <a href="/ja/docs/Web/CSS/length" title="CSS の &lt;length> データ型は、距離の長さを表します。&lt;length> の構文規則は、&lt;number> の直後にその単位 (px、em、pc、in、mm など) を記述するというものです。ほかの CSS の寸法と同様に、数値と単位の間の空白文字は許容されません。&lt;number> 0 の後ろの単位は省略可能です。"><code>&lt;length&gt;</code></a> units, <code>vh</code>, <code>vw</code>, <code>vmin</code>, and <code>vmax</code>, has landed (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=503720" title="FIXED: Implement vw/vh/vmin/vmax (viewport sizes) from CSS 3 Values and Units">バグ 503720</a>).</li>
+ <li>The <code>-moz-initial</code> value has been unprefixed (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=806068" title="FIXED: Unprefix -moz-initial">バグ 806068</a>). <code>-moz-initial</code> will be kept for a while as an alias; however, authors are strongly encouraged to switch over to <code>initial</code>.</li>
+ <li>The CSS <a href="/ja/docs/Web/CSS/text-transform" title="CSS の text-transform プロパティは、要素のテキストを大文字表記する方法を指定します。テキストをすべて大文字またはすべて小文字で表記する、あるいは各単語を大文字で書き始めるために使用できます。"><code>text-transform</code></a> property now supports the <code>full-width</code> keyword, which allows a more seamless inclusion of Latin characters in text using ideographic fixed-width characters, like Chinese or Japanese (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=774560" title="FIXED: Implement text-transform: full-width">バグ 774560</a>).</li>
+ <li>The CSS <a href="/ja/docs/Web/CSS/page-break-inside" title="page-break-inside CSS プロパティは、現在の要素の内側で 改ページが行われるように調整します。"><code>page-break-inside</code></a> has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=685012" title="FIXED: Implement page-break-inside: avoid">バグ 685012</a>).</li>
+ <li>The CSS <a href="/ja/docs/Web/CSS/calc" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>calc()</code></a> function can now be used on <code>&lt;color-stop&gt;</code> (on <a href="/ja/docs/Web/CSS/gradient" title="CSS の &lt;gradient> データ型は、2 色かそれ以上の色間を色が連続変化するような CSS の &lt;image> を表します。CSS グラデーションは CSS の &lt;color> ではなく、固有のサイズを持たない画像です。これは、画像本来のサイズや、優先されるサイズを持たないということです(アスペクト比についても同様です)。実際のサイズは、グラデーションの用いられる要素にマッチしたものになるでしょう。"><code>&lt;gradient&gt;</code></a>).</li>
+ <li>The CSS <a href="/ja/docs/Web/CSS/@page" title="CSS の @page @-規則は、文書の印刷するときの CSS プロパティの編集に使います。@page で変更できる CSS プロパティは限られます。変更できるのは、margin、orphans、widowsと、文書のページ区切りだけです。これ以外の CSS プロパティを変えようとしても、無視されます。"><code>@page</code></a> at-rule is now supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=115199" title="FIXED: @page in CSS2 not implemented">バグ 115199</a>). Note that the pseudo-classes <a href="/ja/docs/Web/CSS/:first" title="CSS の :first ページ 擬似クラスは、文書の印刷するときの最初のページのスタイルを表現します。"><code>:first</code></a>, <a href="/ja/docs/Web/CSS/:right" title="CSS の :right ページ 擬似クラス は、ページを印刷したとき、右側のページすべてにマッチします。これを使って、右側のページのスタイルを決められます。"><code>:right</code></a>, and <a href="/ja/docs/Web/CSS/:left" title="CSS の :left ページ 擬似クラス は、ページを印刷したとき、左側のページすべてにマッチします。これを使って、左側のページのスタイルを決められます。"><code>:left</code></a> are not yet implemented.</li>
+ <li>The <a href="/ja/docs/Web/CSS/:-moz-placeholder" title=":-moz-placeholder はプレースホルダを表示するフォーム要素にマッチします。この擬似クラスにより、Web 開発者やテーマデザイナーがプレースホルダの表示 (デフォルトは薄い灰色) をカスタマイズすることができます。"><code>:-moz-placeholder</code></a> pseudo-class is replaced by the <a href="/ja/docs/Web/CSS/::-moz-placeholder" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>::-moz-placeholder</code></a> pseudo-<em>element</em> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=737786" title="FIXED: Switch from :-moz-placeholder to ::-moz-placeholder (pseudo-class to pseudo-element)">バグ 737786</a>).</li>
+</ul>
+
+<h2 id="JavaScript">JavaScript</h2>
+
+<p>General Gecko:</p>
+
+<p><a href="/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla" title="/en-US/docs/Web/JavaScript/ECMAScript_6_support_in_Mozilla">EcmaScript 6</a> (Harmony) implementation continues!</p>
+
+<ul>
+ <li>New mathematical methods have been implemented on <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math"><code>Math</code></a>: <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Math/fround" title="/en-US/docs/JavaScript/Reference/Global_Objects/Math/fround"><code>Math.fround()</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=900125" title="FIXED: Float32: add Math.fround to the interpreter">バグ 900125</a>).</li>
+ <li>The method <code>Array.of()</code> is now implemented on <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array">Array</a></code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=866849" title="FIXED: Implement ES6 Array.of">バグ 866849</a>).</li>
+ <li>The methods <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/parseInt" title="Editorial review completed."><code>Number.parseInt()</code></a> and <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/parseFloat" title="Number.parseFloat() メソッドは、文字列引数をパースし浮動小数点数を返します。このメソッドはグローバル関数 parseFloat() と同様に振る舞い、ECMAScript 第 6 版の一部となっています(目的はグローバル関数のモジュール化です)。"><code>Number.parseFloat()</code></a> have been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=886949" title="FIXED: Add Number.parseInt and Number.parseFloat">バグ 886949</a>)</li>
+ <li>The methods <code>Map.prototype.forEach()</code> and <code>Set.prototype.forEach()</code> are now implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=866847" title="FIXED: Implement Map#forEach and Set#forEach">バグ 866847</a>)</li>
+ <li>New mathematical methods have been implemented on <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math"><code>Math</code></a>: <code>Math.log10()</code>, <code>Math.log2()</code>, <code>Math.log1p()</code>, <code>Math.expm1()</code>, <code>Math.cosh()</code>, <code>Math.sinh()</code>, <code>Math.tanh()</code>, <code>Math.acosh()</code>, <code>Math.asinh()</code>, <code>Math.atanh()</code>, <code>Math.trunc()</code>, <code>Math.sign()</code> and <code>Math.cbrt()</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=717379" title="FIXED: Implement the new ES6 math functions">バグ 717379</a>).</li>
+ <li>Support for binary and octal integer literals has been added: <code>0b10101010</code>, <code>0B1010</code>, <code>0o777</code>, <code>0O237</code> are now valid (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=894026" title="FIXED: Implement BinaryIntegerLiteral and OctalIntegerLiteral">バグ 894026</a>).</li>
+ <li>The machine epsilon constant, that is <font>the smallest representible number that added to 1 will not be 1,</font> is now available as <a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON" title="Number.EPSILON プロパティは、1 と、Number として表現できる 1 より大きい最小の値の差を表します。"><code>Number.EPSILON</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=885798" title="FIXED: Add new ES6 Number constants: EPSILON, MAX_SAFE_INTEGER, MIN_SAFE_INTEGER">バグ 885798</a>).</li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/arrow_functions" title="/en-US/docs/Web/JavaScript/Reference/arrow_functions">Arrow functions</a> are no longer automatically in strict mode unless explicitly requested with <code>"use strict"</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=852762" title="FIXED: Arrow functions are not automatically strict after all">バグ 852762</a>)).</li>
+ <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat"><code>String.prototype.repeat</code></a> JS method has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=815431" title="FIXED: implement String.prototype.repeat">バグ 815431</a>).</li>
+ <li>The <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty"><code>Object.defineProperty</code></a> method can now be used to redefine the <code>length</code> property of an <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array"><code>Array</code></a> object.</li>
+ <li>The option to disable JavaScript, including the options to allow moving windows/replace context menu, have been removed. You may still disable JavaScript by double clicking the "javascript.enabled" option in about:config.</li>
+ <li><a href="http://asmjs.org/spec/latest/" title="http://asmjs.org/spec/latest/">Asm.js </a>optimizations are enabled, making it possible to compile C/C++ applications to a subset of Javascript for better performance.</li>
+ <li>ES6 <a href="/en-US/docs/JavaScript/Reference/arrow_functions" title="/en-US/docs/JavaScript/Reference/arrow_functions">Arrow Function</a> syntax has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=846406" title="FIXED: Implement arrow functions">バグ 846406</a>).</li>
+ <li>The new <a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is">Object.is</a> function has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=839979" title="FIXED: Implement Object.is">バグ 839979</a>).</li>
+ <li><a href="/en-US/docs/E4X" title="E4X">E4X</a>, an ancient JavaScript extension, has been removed. Implemented only in Gecko, it never got significant traction (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=788293" title="FIXED: Remove E4X from SpiderMonkey">バグ 788293</a>).</li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt" title="">parseInt</a> no longer treats strings with leading "0" as octal (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=786135" title='FIXED: Make parseInt("042") === 42, now that other engines are moving that way'>バグ 786135</a>).</li>
+ <li>Support for the <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/WeakMap" title="JavaScript/Reference/Global_Objects/WeakMap">Weakmap</a>.prototype.clear()</code> method, recently added to the Harmony (EcmaScript 6) draft proposal has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=814562" title="FIXED: Implement clear() on WeakMaps">バグ 814562</a>).</li>
+ <li>Support for the <a href="/en-US/docs/JavaScript/Reference/Global_Objects/Math/imul" title="JavaScript/Reference/Global_Objects/Math/imul"><code>Math.imul()</code></a> method, a C-style 32-bit multiplication function. Though proposed for Harmony (EcmaScript 6) it has not yet accepted and still is non-standard (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=808148" title="FIXED: prototype Math.imul">バグ 808148</a>).</li>
+ <li>Web apps using draggable text with Kinetic 3.x are working, even when using the Cairo canvas backend (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=835064" title="Firefox 18 won't drag text on some installations.">バグ 835064</a>).</li>
+ <li>The <a href="/en-US/docs/JavaScript/Reference/Statements/for_each...in" title="JavaScript/Reference/Statements/for_each...in"><code>for each…in</code></a> statement has been deprecated and should not be used. Consider using the new <a href="/en-US/docs/JavaScript/Reference/Statements/for...of" title="JavaScript/Reference/Statements/for...of"><code>for…of</code></a> statement (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=804834" title='FIXED: Hide "for each" from content'>バグ 804834</a>).</li>
+ <li>Support for the <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map">Map</a>.prototype.keys</code>, <code><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map">Map</a></code>.prototype.values</code>, and <code><code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map" title="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map">Map</a></code>.prototype.entries</code> has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=817368" title="FIXED: Map.prototype.{keys,values,entries}">バグ 817368</a>).</li>
+ <li><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Map" title="JavaScript/Reference/Global_Objects/Map">Map</a></code> and <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Set" title="JavaScript/Reference/Global_Objects/Set">Set</a></code> objects have changed from having a <code>size()</code> method to a <code>size</code> property (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=807001" title="FIXED: Map.prototype.size and Set.prototype.size should be accessor properties">バグ 807001</a>).</li>
+ <li><code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Map" title="JavaScript/Reference/Global_Objects/Map">Map</a></code> and <code><a href="/en-US/docs/JavaScript/Reference/Global_Objects/Set" title="JavaScript/Reference/Global_Objects/Set">Set</a></code> objects also have a clear() method now. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=805003" title="FIXED: Implement Map.prototype.clear and Set.prototype.clear methods">バグ 805003</a>).</li>
+</ul>
+
+<h2 id="通信関連の追加_(大半は_API関連)">通信関連の追加 (大半は API関連)</h2>
+
+<ul>
+ <li>Fuzzy matcher API for phone numbers (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=883923" title="FIXED: Provide a Fuzzy Matcher API for phone numbers">バグ 883923</a>)</li>
+ <li>CDMA
+ <ul>
+ <li>Registration info (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=882984" title="FIXED: [B2G] [CDMA] Update nsIDOMMozMobileCellInfo to also report base station id, base station latitude, base station longitude, system id, network id">バグ 882984</a>)
+ <ul>
+ <li>(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=882984" title="FIXED: [B2G] [CDMA] Update nsIDOMMozMobileCellInfo to also report base station id, base station latitude, base station longitude, system id, network id">バグ 882984</a>)</li>
+ <li>multiple new CDMA specific attributes in <code>MozMobileCellInfo</code></li>
+ <li>dom/network/interfaces/nsIDOMMobileConnection.idl</li>
+ </ul>
+ </li>
+ <li>Emergency callback mode support (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=887690" title="FIXED: B2G RIL: Support emergency callback mode">バグ 887690</a>)
+ <ul>
+ <li>new method <code>exitEmergencyCbMode</code> and new event <code>emergencycbmodechange</code> in <code>MozMobileConnection</code></li>
+ <li>dom/network/interfaces/nsIDOMMozEmergencyCbModeEvent.idl</li>
+ </ul>
+ </li>
+ <li>OTASP (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=882983" title="FIXED: B2G RIL: Support for CDMA OTASP - expose ota status">バグ 882983</a>)
+ <ul>
+ <li>new event <code>otastatuschange</code> in <code>MozMobileConnection</code></li>
+ <li>dom/network/interfaces/nsIDOMMozOtaStatusEvent.idl</li>
+ </ul>
+ </li>
+ <li>MDN/MIN (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=869778" title="FIXED: [B2G][CDMA]Get the CDMA subscription information.">バグ 869778</a>)
+ <ul>
+ <li>new interface <code>MozGsmIccInfo</code> &amp; <code>MozCdmaIccInfo</code></li>
+ <li>new attribute <code>iccType</code> in <code>MozIccInfo</code></li>
+ <li>dom/icc/interfaces/nsIDOMIccInfo.idl</li>
+ </ul>
+ </li>
+ <li>Preferred voice mode (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=869769" title="FIXED: [B2G][CDMA] Set and Query the preferred voice mode in CDMA">バグ 869769</a>)
+ <ul>
+ <li>new methods <code>setVoicePrivacyMode</code> and <code>getVoicePrivacyMode</code> in <code>MozMobileConnection</code></li>
+ <li>dom/network/interfaces/nsIDOMMobileConnection.idl</li>
+ </ul>
+ </li>
+ <li>Roaming preference (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=869768" title="FIXED: [B2G][CDMA] Set and Query the roaming preference in CDMA">バグ 869768</a>)
+ <ul>
+ <li>new methods <code>setRoamingPreference</code> and <code>getRoamingPreference</code> in <code>MozMobileConnection</code></li>
+ <li>dom/network/interfaces/nsIDOMMobileConnection.idl</li>
+ </ul>
+ </li>
+ <li>Call Waiting (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=822210" title="FIXED: B2G CDMA: support call waiting">バグ 822210</a>)
+ <ul>
+ <li>new attribute <code>secondNumber</code> in <code>TelephonyCall</code></li>
+ <li>dom/webidl/TelephonyCall.webidl</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>Support Change Call Barring Password (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=905479" title="FIXED: B2G RIL: Support Change Call Barring Password">バグ 905479</a>)
+ <ul>
+ <li>new method <code>changeCallBarringPassword</code> in <code>MozMobileConnection</code></li>
+ <li>dom/network/interfaces/nsIDOMMobileConnection.idl</li>
+ </ul>
+ </li>
+ <li>Move ICC functions out from <code>MobileConnection</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=875721" title="FIXED: B2G RIL: Move iccInfo related attribute/event from mozMobileConnection to mozIccManager">バグ 875721</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=874744" title="FIXED: B2G RIL: Move card state related attribute/event from mozMobileConnection to mozIccManager">バグ 874744</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=860585" title="FIXED: B2G RIL: Move cardLock related API from mozMobileConnection to mozIccManager">バグ 860585</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=859220" title="FIXED: B2G RIL: Separate MozIccManager from MozMobileConnection">バグ 859220</a>)
+ <ul>
+ <li><code>MozIccInfo</code>
+ <ul>
+ <li><code>navigator.mozIccManager.iccInfo</code></li>
+ <li>new interface</li>
+ <li>dom/icc/interfaces/nsIDOMIccInfo.idl</li>
+ </ul>
+ </li>
+ <li><code>MozIccManager</code>
+ <ul>
+ <li><code>navigator.mozIccManager</code></li>
+ <li>new attributes, methods, and events</li>
+ <li>dom/icc/interfaces/nsIDOMIccManager.idl</li>
+ </ul>
+ </li>
+ <li><code>MozMobileConnection</code>
+ <ul>
+ <li><code>navigator.mozMobileConnection</code></li>
+ <li>numerous attributes, methods and events removed</li>
+ <li>dom/network/interfaces/nsIDOMMobileConnection.idl</li>
+ </ul>
+ </li>
+ <li><code>nsIDOMMozMobileICCInfo</code>
+ <ul>
+ <li><code>navigator.mozMobileConnection.iccInfo</code></li>
+ <li>interface removed</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>ICC card lock improvements
+ <ul>
+ <li>Rename <code>ICCCardLockErrorEvent</code> to <code>IccCardLockErrorEvent</code>
+ <ul>
+ <li>dom/webidl/IccCardLockErrorEvent.webidl</li>
+ </ul>
+ </li>
+ <li>Retry count (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=886239" title="FIXED: B2G RIL: Remove retryCount from MobileConnection">バグ 886239</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=875710" title="FIXED: B2G RIL: Get PIN/PUK remaining retry count">バグ 875710</a>)
+ <ul>
+ <li>attribute <code>retryCount</code> removed from <code>MozMobileConnection</code></li>
+ <li>new method <code>getCardLockRetryCount</code> in <code>MozIccManager</code></li>
+ <li>dom/network/interfaces/nsIDOMMobileConnection.idl</li>
+ <li>dom/icc/interfaces/nsIDOMIccManager.idl</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>Import/export SIM Contacts (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=847741" title="FIXED: B2G RIL: Move mozContact.getSimContacts to IccManager">バグ 847741</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=847820" title="FIXED: B2G RIL: Support exporting contacts to SIM card in IccManager">バグ 847820</a>)
+ <ul>
+ <li>new methods <code>readContacts</code>, <code>updateContact</code> in <code>MozIccManager</code></li>
+ <li>dom/icc/interfaces/nsIDOMIccManager.idl</li>
+ </ul>
+ </li>
+ <li>ICC Secure Elements (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=840780" title="FIXED: (webicc) WebICC - Secure Elements">バグ 840780</a>)
+ <ul>
+ <li>new methods <code>iccOpenChannel</code>, <code>iccExchangeAPDU</code>, <code>iccCloseChannel</code> in <code>MozIccManager</code></li>
+ <li>dom/icc/interfaces/nsIDOMIccManager.idl</li>
+ </ul>
+ </li>
+ <li>STK improvements
+ <ul>
+ <li>'duration' for Display Text, Setup Call commands (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=831630" title="FIXED: B2G STK: Add 'duration' property for DISPLAY_TEXT and SET_UP_CALL">バグ 831630</a>)
+ <ul>
+ <li>new attribute <code>duration</code> in both <code>MozStkTextMessage</code> and <code>MozStkSetUpCall</code></li>
+ <li>dom/icc/interfaces/SimToolKit.idl</li>
+ </ul>
+ </li>
+ <li>support "Language Selection Event" (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=831627" title='FIXED: B2G STK: Support "Language Selection Event" Envelope command.'>バグ 831627</a>)
+ <ul>
+ <li>new dictionary <code>MozStkLanguageSelectionEvent</code></li>
+ <li>dom/icc/interfaces/SimToolKit.idl</li>
+ </ul>
+ </li>
+ <li>support "Idle Screen Available Event" (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=831628" title='FIXED: B2G STK: Support "Idle Screen Available Event" Envelope command'>バグ 831628</a>)
+ <ul>
+ <li>new dictionary <code>MozStkGeneralEvent</code></li>
+ <li>dom/icc/interfaces/SimToolKit.idl</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>MobileMessage
+ <ul>
+ <li>Turn <code>getSegmentInfoForText</code> into an async call (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=903403" title="FIXED: [sms][mms] Make getSegmentInfoForText() Asynchronous to Improve Typing Performance">バグ 903403</a>)
+ <ul>
+ <li>dom/mobilemessage/interfaces/nsIDOMMobileMessageManager.idl</li>
+ </ul>
+ </li>
+ <li>Remove navigator.mozSms (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=891235" title="FIXED: WebSMS: remove navigator.mozSms">バグ 891235</a>)</li>
+ </ul>
+ </li>
+ <li>Telephony
+ <ul>
+ <li>support "Conference Call" (certified only) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=772765" title="FIXED: B2G telephony: support conference calls">バグ 772765</a>)
+ <ul>
+ <li><code>navigator.mozTelephony.conferenceGroup</code></li>
+ <li>new interface</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+</ul>
+
+<h2 id="DOMAPI">DOM/API</h2>
+
+<p>Firefox OS-specific:</p>
+
+<ul>
+ <li><span id="summary_alias_container"><span id="short_desc_nonedit_display">Device Storage API: When getting a cursor callback from <code>navigator.getDeviceStorage("sdcard").enumerate</code>, <code><span id="summary_alias_container"><span id="short_desc_nonedit_display">this.done</span></span></code> was undefined in Firefox &lt;1.2 (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=902565" title='this.done in cursor callback of naviagtor.getDeviceStorage("sdcard").enumerate is undefined'>バグ 902565</a>). This is now fixed. The referenced bug discusses possible compatibility checks/workarounds for this issue. </span></span></li>
+ <li>The <a href="/ja/docs/Web/API/RTCPeerConnection" title="RTCPeerConnection インタフェースはローカルコンピュータとリモートピア間のWebRTC コネクションを表現します。二つのピア間の効果的なデータストリーミングに用いられれます。"><code>RTCPeerConnection</code></a> Interface from WebRTC is implemented, but currently disabled by default in B2G, as it is not yet functional on Firefox OS devices (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=942343" title="FIXED: Pref off media.peerconnection.enabled on Firefox OS">バグ 942343</a>.)</li>
+ <li><a href="/ja/docs/Web/API/Notification" title="Notifications APIのNotificationインターフェイスは、ユーザーへのデスクトップ通知の設定や表示のために使われます。"><code>Web notifications</code></a> are supported in Firefox 1.2, therefore the <code>Notification</code> object should be used in preference to the old deprecated <a href="/ja/docs/Web/API/Window/navigator/mozNotification" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>mozNotification</code></a> object (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=899574" title="FIXED: Notification API follow-up: provide a way to get current Notification objects">バグ 899574</a> .)</li>
+ <li><a href="/ja/docs/Web/API/Window/navigator/mozInputMethod" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>mozInputMethod</code></a> has been added to allow for people to write 3rd party keyboards. See the test application in gaia/test_apps for a reference implementation.</li>
+ <li>The Media Recording API has been implemented (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=803414" title="FIXED: Media Recording - Web API &amp; Implementation">バグ 803414</a>, <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=889720" title="FIXED: Media Recording - implement Pause/Resume DOM API">バグ 889720</a>)</li>
+ <li>KeyboardEvent.repeat now supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=600117" title="FIXED: Implement DOM3 KeyboardEvent.repeat">バグ 600117</a>)</li>
+ <li>3rd party keyboards now supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816869" title="FIXED: [Meta] Enable third-party keyboards">バグ 816869</a>)</li>
+</ul>
+
+<div id="magicdomid15">New WebGL 1 extensions supported in Firefox OS 1.2:</div>
+
+<ul>
+ <li><a href="http://www.khronos.org/registry/webgl/extensions/OES_element_index_uint/">OES_element_index_uint</a></li>
+ <li><a href="http://www.khronos.org/registry/webgl/extensions/OES_texture_float_linear/">OES_texture_float_linear</a></li>
+ <li><a href="http://www.khronos.org/registry/webgl/extensions/OES_vertex_array_object/">OES_vertex_array_object</a></li>
+ <li><a href="http://www.khronos.org/registry/webgl/extensions/WEBGL_draw_buffers/">WEBGL_draw_buffers</a></li>
+ <li id="magicdomid26"><a href="http://www.khronos.org/registry/webgl/extensions/ANGLE_instanced_arrays/">ANGLE_instanced_arrays</a></li>
+</ul>
+
+<div class="note">
+<div><strong>Note</strong>: availability of these extensions depends on device capabilities; not all extensions will be available on all devices.</div>
+</div>
+
+<p>General Gecko:</p>
+
+<ul>
+ <li>A <code>.default</code> attribute has now been added to the DeviceStorage API (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=874213" title="FIXED: DeviceStorage: Add a .default attribute to the device storage object.">バグ 874213</a>)</li>
+ <li>The TCP Socket API has landed (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=797561" title="FIXED: Expose a server tcp socket API to web applications">バグ 797561</a>)</li>
+ <li>Make the last argument (doctype) to <a href="/ja/docs/Web/API/DOMImplementation/createDocument" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>DOMImplementation.createDocument</code></a> optional (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=909859" title="FIXED: Make the doctype argument of createDocument optional">バグ 909859</a>).</li>
+ <li>Implement the new <a href="/ja/docs/Web/API/Element/classList" title="classList は、要素の class 属性のトークンリストを返します。"><code>element.classList</code></a> specification which permits adding/removing several classes with one call (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=814014" title="FIXED: implement the new classList specification which permits adding/removing several classes with one call">バグ 814014</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/URL/URL" title="URL() コンストラクターは、引数によって定義された URL を表す新しく生成された URL オブジェクトを返します。"><code>URL()</code></a> constructor have been implemented on the <a href="/ja/docs/Web/API/URL" title="URL インターフェースは、URL オブジェクトを生成するための静的なメソッドを提供するオブジェクトを表します。"><code>URL</code></a> interface (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=887364" title="FIXED: Implement URL API">バグ 887364</a>).</li>
+ <li>The properties <a href="/ja/docs/Web/API/URLUtils/origin" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>URLUtils.origin</code></a>, <a href="/ja/docs/Web/API/URLUtils/password" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>URLUtils.password</code></a>, and <a href="/ja/docs/Web/API/URLUtils/username" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>URLUtils.username</code></a> are now available to all interfaces implementing <a href="/ja/docs/Web/API/URLUtils" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>URLUtils</code></a>: <a href="/ja/docs/Web/API/URL" title="URL インターフェースは、URL オブジェクトを生成するための静的なメソッドを提供するオブジェクトを表します。"><code>URL</code></a>, <a href="/ja/docs/Web/API/Location" title="Location インターフェイスは、リンク先オブジェクトの場所 (URL) を表します。Location の変更点は、関係するオブジェクトに反映されます。Document インターフェイスおよび Window インターフェイスにはこのようなリンクされた Location があり、それぞれ Document.location および Window.location でアクセスできます。"><code>Location</code></a>, <a href="/ja/docs/Web/API/HTMLAnchorElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>HTMLAnchorElement</code></a>, and <a href="/ja/docs/Web/API/HTMLAreaElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>HTMLAreaElement</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=887364" title="FIXED: Implement URL API">バグ 887364</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/URL" title="URL インターフェースは、URL オブジェクトを生成するための静的なメソッドを提供するオブジェクトを表します。"><code>URL</code></a> interface is now accessible from Web Workers (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=887364" title="FIXED: Implement URL API">バグ 887364</a>).</li>
+ <li>IndexedDB can now be used as a "optimistic" storage area so it doesn't require any prompts and data is stored in a pool with LRU eviction policy, in short temporary storage (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=785884" title="FIXED: Implement support for temporary storage (aka shared pool)">バグ 785884</a>).</li>
+ <li>Path of the persistent storage has been changed from &lt;profile&gt;/indexedDB to &lt;profile&gt;/storage/persistent (on b2g from /data/local/indexedDB to /data/local/storage/persistent).</li>
+ <li>The <a href="/en-US/docs/Web_Audio_API" title="/en-US/docs/Web_Audio_API">Web Audio API</a> is now supported. An incomplete implementation was previously available behind a preference (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=779297" title="FIXED: Implement and ship Web Audio">バグ 779297</a>).</li>
+ <li>Some IME related keys on Windows are supported by <code>KeyboardEvent.key</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=865565" title="FIXED: D3E KeyboardEvent.key values of IME related keys should be considered with keyboard layout locale">バグ 865565</a>), see <a href="/en-US/docs/Web/API/KeyboardEvent#keyname_table_win" title="/en-US/docs/Web/API/KeyboardEvent#keyname_table_win">the key name table</a> for the detail.</li>
+ <li>Firefox for Metro now dispatches key events in the same way as the desktop version (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=843236" title="FIXED: Defect - Send the correct DOM keycodes in keyboard events from metro widget for US and non-US keyboards">バグ 843236</a>).</li>
+ <li><code>keypress</code> event is no longer dispatched if <code>preventDefault()</code> of preceding <code>keydown</code> event is called (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=501496" title="FIXED: preventDefault on keydown does not cancel following keypress">バグ 501496</a>), see <a href="/en-US/docs/Web/Reference/Events/keydown#preventDefault()_of_keydown_event" title="/en-US/docs/Web/Reference/Events/keydown#preventDefault()_of_keydown_event">the document of <code>keydown</code> event</a> for the detail.</li>
+ <li>Renamed the <code>Future</code> interface to <code>Promise</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=884279" title="FIXED: renaming future to promise">バグ 884279</a>).</li>
+ <li>The <code>srcDoc</code> property on the <a href="/ja/docs/Web/API/HTMLIFrameElement" title="The HTMLIFrameElement interface provides special properties and methods (beyond those of the HTMLElement interface it also has available to it by inheritance) for manipulating the layout and presentation of inline frame elements."><code>HTMLIFrameElement</code></a> interface, allowing the inline specification of the content of an <a href="/ja/docs/Web/HTML/Element/iframe" title="HTML の &lt;iframe> 要素は、ブラウジングコンテキスト (browsing context) の入れ子を表現し、事実上現在のページに他の HTML ページを埋め込むことができます。HTML 4.01 では、文書は head および body、または head および frameset を持つことができ、body と frameset の両方は持ちません。しかし、&lt;iframe> は通常の文書 body 内で使用できます。ブラウジングコンテキストはそれぞれ、セッション履歴とアクティブな文書を持ちます。埋め込みコンテンツを含む側のブラウジングコンテキストを、親ブラウジングコンテキストと呼びます。トップレベルのブラウジングコンテキスト (親を持ちません) は通常ブラウザーウィンドウです。"><code>&lt;iframe&gt;</code></a>, is now supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=802895" title="FIXED: implement &lt;iframe srcdoc=''> to allow document content in iframe to be specified inline">バグ 802895</a>).</li>
+ <li>The <code>createTBody()</code> method on the <a href="/ja/docs/Web/API/HTMLTableElement" title="table オブジェクトは、 HTML の table 要素のレイアウトやプレゼンテーションを操作する為の特別なプロパティとメソッドを提供する HTMLTableElement インタフェースを公開します。
+ 係るプロパティとメソッドは、Element オブジェクトインタフェースからも継承により操作可能となっています。"><code>HTMLTableElement</code></a> interface, allowing to get its <a href="/ja/docs/Web/HTML/Element/tbody" title="HTML &lt;tbody> 要素は &lt;table> 要素を親として、内部に表の本体を表す &lt;tr> 要素を定義します ( 要素を table 要素直下の子要素として配置しない場合に限る)。"><code>&lt;tbody&gt;</code></a>, is now supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=813034" title="FIXED: Implement table.createTBody">バグ 813034</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/Range/collapse" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Range.collapse()</code></a> method <code>toStart</code> parameter is now optional and default to <code>false</code>, like defined in the spec (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=891340" title="FIXED: Make Range.collapse optional and default to false">バグ 891340</a>).</li>
+ <li>Support of <a href="/ja/docs/Web/API/ParentNode" title="ParentNode インターフェースは、子を持つことができる Node オブジェクトに特有のメソッドを含みます。"><code>ParentNode</code></a> interface on <a href="/ja/docs/Web/API/Document" title="Document インターフェイスはブラウザーに読み込まれたウェブページを表し、DOM ツリー であるウェブページのコンテンツへのエントリーポイントとして働きます。"><code>Document</code></a> and <a href="/ja/docs/Web/API/DocumentFragment" title="DocumentFragment インタフェースは、親ノードの無い最小限度の文書オブジェクトを表します。整形式の、または潜在的に整形式でない XML の 断片を保持するために Document の軽量版として使われます。"><code>DocumentFragment</code></a> has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=895974" title="FIXED: document.firstElementChild is not defined">バグ 895974</a>).</li>
+ <li>The <code>previousElementSibling</code> and <code>nextElementSibling</code> have been moved to <a href="/ja/docs/Web/API/ChildNode" title="ChildNode インターフェースは、親を持つことができる Node オブジェクトに特有のメソッドを含みます。"><code>ChildNode</code></a> allowing them to be called not only on a <a href="/ja/docs/Web/API/Element" title="Element インターフェイスは Document の一部分を表現します。このインターフェイスは個々の種類の要素に共通するメソッドとプロパティを記述するものです。特異な挙動は Element から継承した特異なインターフェイスで記述します。"><code>Element</code></a> object but also on a <a href="/ja/docs/Web/API/CharacterData" title="CharacterData 抽象インターフェイスは、文字を包含する Node オブジェクトを表します。これは抽象インターフェイスであり、CharacterData 型のオブジェクトは存在しません。抽象化されていない Text、Comment、ProcessingInstruction といったインターフェイスによって実装されています。"><code>CharacterData</code></a> or <a href="/ja/docs/Web/API/DocumentType" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>DocumentType</code></a> object (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=895974" title="FIXED: document.firstElementChild is not defined">バグ 895974</a>).</li>
+ <li>The <code>navigator.geolocation</code> property has been updated to match the spec. It never returns <code>null</code>. When the preference <code>geo.enabled</code> is set to <code>false</code>, it now returns <code>undefined</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=884921" title="FIXED: Align navigator.geolocation with spec">バグ 884921</a>).</li>
+ <li>The <code>videoPlaybackQuality</code> attribute on the <a href="/ja/docs/Web/API/HTMLVideoElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>HTMLVideoElement</code></a> interface has been changed to the <code>getVideoPlaybackQuality</code> method. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=889205" title="FIXED: Make HTMLVideoElement.videoPlaybackQuality a method">バグ 889205</a>)</li>
+ <li>Support for the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Range.Range" title="The Range() constructor returns a newly created Range object whose start and end is the global Document object."><code>Range()</code></a> constructor has been added (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=868999" title="FIXED: Range should be constructable">bug 868999</a>).</li>
+ <li>Support for the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Text.Text" title="The Text() constructor returns a newly created Text object with the optional DOMString given in parameter as its textual content."><code>Text()</code></a> constructor has been added (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=869000" title="FIXED: Text should be constructable">bug 869000</a>).</li>
+ <li>Support for the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Comment.Comment" title="The Comment() constructor returns a newly created Comment object with the optional DOMString given in parameter as its textual content."><code>Comment()</code></a> constructor has been added (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=869006" title="FIXED: Comment should be constructable">bug 869006</a>).</li>
+ <li>Support for the <a href="https://developer.mozilla.org/en-US/docs/Web/API/DocumentFragment.DocumentFragment" title="The DocumentFragment() constructor returns an empty newly created DocumentFragment object ."><code>DocumentFragment()</code></a> constructor has been added (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=869002" title="FIXED: DocumentFragment should be constructable">bug 869002</a>).</li>
+ <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent" title="The FocusEvent interface represents focus-related events like focus, blur, focusin, or focusout."><code>FocusEvent</code></a> interface has been implemented (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=855741" title="FIXED: FocusEvent interface is missing">bug 855741</a>).</li>
+ <li>Support for the <a href="https://developer.mozilla.org/en-US/docs/Web/API/ChildNode.remove" title="The ChildNode.remove method removes the object from the tree it belongs to."><code>ChildNode.remove()</code></a> method has been added (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=856629" title="FIXED: Implement ChildNode.remove()">bug 856629</a>).</li>
+ <li>The interfaces related to the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/track" title="The track element is used as a child of the media elements—&lt;audio> and &lt;video>—and does not represent anything on its own. It lets you specify timed text tracks (or time-based data)."><code>&lt;track&gt;</code></a> element, <a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLTrackElement" title="The HTMLTrackElement interface provides access to the properties of &lt;track> elements, as well as methods to manipulate them."><code>HTMLTrackElement</code></a>, <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/TextTrack" title="The documentation about this has not yet been written; please consider contributing!"><code>TextTrack</code></a>, <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCue" title="The documentation about this has not yet been written; please consider contributing!"><code>TextTrackCue</code></a>, <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/TextTrackList" title="The documentation about this has not yet been written; please consider contributing!"><code>TextTrackList</code></a>, and <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/TextTrackCueList" title="The documentation about this has not yet been written; please consider contributing!"><code>TextTrackCueList</code></a> have been implemented behind the <code>media.webvtt.enabled</code> property, defaulting to <code>false</code> (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=833385" title="FIXED: [webvtt] Implement Track element and TextTrack* DOM classes">bug 833385</a>).</li>
+ <li>The <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/Gamepad" title="The documentation about this has not yet been written; please consider contributing!"><code>Gamepad</code></a> interface, and <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getGamepads" title="The documentation about this has not yet been written; please consider contributing!"><code>Navigator.getGamepads</code></a> have been implemented behind the <code>dom.gamepad.enabled</code> property, defaulting to <code>false</code> (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=690935" title="FIXED: Implement navigator.getGamepads() method">bug 690935</a>).</li>
+ <li>On desktop Firefox only, <code>HTMLCanvasElement.getContext()</code> can now take the <code>webgl</code> value, in addition to <code>experimental-webgl</code> (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=870232" title='FIXED: Implement getContext("webgl") for Desktop FF'>bug 870232</a>).</li>
+ <li>The non-standard method <code>mozLoadFrom()</code> of <a href="https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement" title="The HTMLMediaElement interface has special properties and methods (beyond the properties and methods available for all children of HTMLElement), that are common to all media-related objects."><code>HTMLMediaElement</code></a> has been removed (<a class="external" href="https://bugzilla.mozilla.org/show_bug.cgi?id=877135" title="FIXED: Remove mozLoadFrom">bug 877135</a>).</li>
+ <li>D3E <a href="/en-US/docs/DOM/KeyboardEvent#Key_names_and_Char_values" title="/en-US/docs/DOM/KeyboardEvent#Key_names_and_Char_values"><code>KeyboardEvent.key</code></a> is now supported, but only for non-printable keys (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=842927" title="FIXED: Implement DOM3 KeyboardEvent.key only for non-printable key, first">バグ 842927</a>).</li>
+ <li>The <code>title</code> attribute of <a href="/ja/docs/Web/API/DOMImplementation/createHTMLDocument" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>DOMImplementation.createHTMLDocument</code></a> is now optional as per updated DOM specification.</li>
+ <li>The ability to add a sidebar panel (<code>window.sidebar.addPanel</code>) has been dropped (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=691647" title="FIXED: clean up nsISidebar (remove window.sidebar.addPanel/addPersistentPanel)">バグ 691647</a>).</li>
+ <li>The unprefixed <a href="/ja/docs/Web/API/Window/requestAnimationFrame" title="window.requestAnimationFrame() メソッドは、ブラウザにアニメーションを行いたいことを知らせ、指定した関数を呼び出して次の再描画の前にアニメーションを更新することを要求します。このメソッドは、再描画の前に呼び出されるコールバック 1 個を引数として取ります。"><code>Window.requestAnimationFrame</code></a> and <a href="/ja/docs/Web/API/Window/cancelAnimationFrame" title="window.requestAnimationFrame() の呼び出しによりスケジュールされたフレームアニメーションのリクエストをキャンセルします。"><code>Window.cancelAnimationFrame</code></a> methods has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=704063" title="FIXED: Add unprefixed requestAnimationFrame">バグ 704063</a>).</li>
+ <li>The callback for <a href="/ja/docs/Web/API/Window/requestAnimationFrame" title="window.requestAnimationFrame() メソッドは、ブラウザにアニメーションを行いたいことを知らせ、指定した関数を呼び出して次の再描画の前にアニメーションを更新することを要求します。このメソッドは、再描画の前に呼び出されるコールバック 1 個を引数として取ります。"><code>Window.requestAnimationFrame</code></a> now receives a <a href="/ja/docs/Web/API/DOMHighResTimeStamp" title="DOMHighResTimeStamp 型は double であり、時間の値を保存するために使用します。この値は別々の時点や、2 つの別々の時点の間の時間を表すことができます。単位はミリ秒であり、精度は 5 µs (マイクロ秒) であるべきです。ただし、ブラウザーが 5 マイクロ秒精度の時間の値を提供できない場合 (例えば、ハードウェアやソフトウェアの制約により) は、1 ミリ秒精度の時間として表すことができます。"><code>DOMHighResTimeStamp</code></a> as argument instead of the less precise <a href="/ja/docs/Web/API/DOMTimeStamp" title="DOMTimeStamp 型は、これが記述された仕様に依存し、ミリ秒単位の絶対値または相対値を表します。"><code>DOMTimeStamp</code></a> used in the unprefixed version (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=753453" title="FIXED: requestAnimationFrame callback should return DOMHighResTimeStamp">バグ 753453</a>).</li>
+ <li>The text argument for <a href="/ja/docs/Web/API/Window/alert" title="指定したテキストと OK ボタンを持つ警告ダイアログを表示します。"><code>window.alert</code></a> and <a href="/ja/docs/Web/API/Window/confirm" title="メッセージと、OK と キャンセルの 2 つのボタンを持つモーダルダイアログを表示します。"><code>window.confirm</code></a> is now optional (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=861605" title="FIXED: Make the arguments to Window.alert, Window.confirm optional">バグ 861605</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/HTMLMediaElement/initialTime" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>HTMLMediaElement.initialTime</code></a> property, removed from the spec, is no more supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=742537" title="FIXED: Remove HTMLMediaElement.initialTime">バグ 742537</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/AnimationEvent/AnimationEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>AnimationEvent()</code></a> constructor has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=848293" title="FIXED: Update AnimationEvent to be compatible with the spec">バグ 848293</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/AnimationEvent/pseudoElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>AnimationEvent.pseudoElement</code></a> property has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=848293" title="FIXED: Update AnimationEvent to be compatible with the spec">バグ 848293</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/TransitionEvent/TransitionEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TransitionEvent()</code></a> constructor has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=848291" title="FIXED: Update TransitionEvent to be compatible with the spec">バグ 848291</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/TransitionEvent/pseudoElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TransitionEvent.pseudoElement</code></a> property has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=848291" title="FIXED: Update TransitionEvent to be compatible with the spec">バグ 848291</a>).</li>
+ <li>The non-standard <a href="/ja/docs/Web/API/TransitionEvent/initTransitionEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TransitionEvent.initTransitionEvent()</code></a> and <a href="/ja/docs/Web/API/AnimationEvent/initAnimationEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>AnimationEvent.initAnimationEvent()</code></a> have been removed (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=868751" title='FIXED: Remove support for document.createEvent("AnimationEvent"), document.createEvent("TransitionEvent"), AnimationEvent.initAnimationEvent, and TransitionEvent.initTransitionEvent'>バグ 868751</a>).</li>
+ <li>Support for the <code>multipart</code> property on <code>XMLHttpRequest</code> and <code>multipart/x-mixed-replace</code> responses in <code>XMLHttpRequest</code> has been removed. This was a Gecko-only feature that was never standardized. <a href="/en-US/docs/Server-sent_events" title="Server-sent_events">Server-Sent Events</a>, <a href="/en-US/docs/WebSockets" title="WebSockets">Web Sockets</a> or inspecting <code>responseText</code> from progress events can be used instead.</li>
+ <li>Support for <a href="/en-US/docs/WebAPI/Using_Web_Notifications" title="/en-US/docs/WebAPI/Using_Web_Notifications">Web Notifications</a> has been landed (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=782211" title="FIXED: Implement notification API spec">バグ 782211</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/FormData" title='FormData インターフェイスは、XMLHttpRequest.send() メソッドを用いることで簡単に送信が可能な、フォームフィールドおよびそれらの値から表現されるキーと値のペアのセットを簡単に構築する手段を提供します。これは、エンコーディングタイプを "multipart/form-data" に設定した場合にフォームが使用するものと同じ形式を使用します。'><code>FormData</code></a>  <code>append</code> method now accepts a third optional <code>filename</code> parameter (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=690659" title="FIXED: filename parameter in the FormData.append method">バグ 690659</a>).</li>
+ <li><a href="/ja/docs/Web/API/Node/isSupported" title="指定された機能が DOM 実装に含まれており、このノードでサポートされているかどうかをテストします。"><code>Node.isSupported</code></a> has been removed (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=801562" title="FIXED: Remove Node.isSupported">バグ 801562</a>).</li>
+ <li><a href="/ja/docs/Web/API/Node/setUserData" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Node.setUserData</code></a> and <a href="/ja/docs/Web/API/Node/getUserData" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Node.getUserData</code></a> has been removed for web content and are deprecated for chrome content (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=842372" title="FIXED: Make getUserData and setUserData ChromeOnly">バグ 842372</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/Element/attributes" title="概要"><code>Element.attributes</code></a> property has been moved there from <a href="/ja/docs/Web/API/Node" title="Node はいくつもの DOM API オブジェクトタイプが継承しているインターフェイスで、それらのさまざまなタイプを同じように扱える (同じメソッドのセットを継承する、または同じ方法でテストできる) ようにします。"><code>Node</code></a> as required by the spec (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=844134" title="FIXED: attributes should be defined on Element and not Node">バグ 844134</a>).</li>
+ <li>The Mac OS X backend for <a href="/ja/docs/Web/API/DeviceLightEvent" title="DeviceLightEventは、デバイス付近の環境光のレベルについての情報を、写真センサーやそれと類似した検知機を通してWeb開発者に提供します。たとえば、このイベントは、エネルギーを節約したり、より良い視認性を提供したりするために、現在の環境光のレベルに応じてスクリーンの明るさを調節するのに役立ちます。"><code>Ambient Light Events</code></a> has been implemented.</li>
+ <li>Elements in the HTML namespace with local names <a href="/ja/docs/Web/HTML/Element/bgsound" title="Background Sound 要素()は Internet Explorer に実装されている、バックグラウンド音声を実現する為の要素です。"><code>&lt;bgsound&gt;</code></a>, <a href="/ja/docs/Web/HTML/Element/multicol" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>&lt;multicol&gt;</code></a>, and <a href="/ja/docs/Web/HTML/Element/image" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>&lt;image&gt;</code></a> no longer implement the <a href="/ja/docs/Web/API/HTMLSpanElement" title="&lt;span> 要素には、HTMLElement インタフェースを継承元とする HTMLSpanElement インタフェースが実装されています。HTMLElement から継承されるもの以外に、プロパティやメソッドは実装されていません。"><code>HTMLSpanElement</code></a> interface.  <a href="/ja/docs/Web/HTML/Element/bgsound" title="Background Sound 要素()は Internet Explorer に実装されている、バックグラウンド音声を実現する為の要素です。"><code>&lt;bgsound&gt;</code></a> and <a href="/ja/docs/Web/HTML/Element/bgsound" title="Background Sound 要素()は Internet Explorer に実装されている、バックグラウンド音声を実現する為の要素です。"><code>&lt;bgsound&gt;</code></a> implement <a href="/ja/docs/Web/API/HTMLUnknownElement" title="HTMLUnknownElement インタフェースは不正な HTML 要素である事を表します。固有メソッドや固有プロパティはありません。 HTMLElement インタフェースを継承しており、そちらのメソッドやプロパティを利用可能です。"><code>HTMLUnknownElement</code></a> and <a href="/ja/docs/Web/HTML/Element/image" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>&lt;image&gt;</code></a> implements <a href="/ja/docs/Web/API/HTMLElement" title="HTMLElement インターフェイスは、任意の HTML 要素を表します。いくつかの要素は直接このインターフェイスを実装し、他のものは HTMLElement を継承したインターフェイス経由で実装されています。"><code>HTMLElement</code></a>.</li>
+ <li>The <a href="/ja/docs/Web/API/NodeIterator/detach" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>NodeIterator.detach</code></a> method has been changed to do nothing (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=823549" title="FIXED: Make NodeIterator.detach() a no-op">バグ 823549</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/BlobEvent" title='{{APIRef("Media Capture and Streams")}}{{SeeCompatTable}}'><code>BlobEvent</code></a> interface has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=834165" title="FIXED: Implement BlobEvent">バグ 834165</a>).</li>
+ <li>The properties <code>HTMLMediaElement.crossorigin</code> and <code>HTMLInputElement.inputmode</code> has been removed to match the spec in <a href="/ja/docs/Web/API/HTMLMediaElement/crossOrigin" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>HTMLMediaElement.crossOrigin</code></a> and <code>HTMLInputElement.inputMode</code>, respectively (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=847370" title="FIXED: HTMLMediaElement - crossOrigin vs crossorigin">バグ 847370</a> and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=850346" title="FIXED: inputmode vs inputMode for nsHTMLInputElement">バグ 850346</a>).</li>
+ <li>WebRTC: the Media Stream API and Peer Connection API are now supported by default.</li>
+ <li>Web Components: the <a href="/ja/docs/Web/API/Document/register" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Document.register</code></a> method has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=783129" title="FIXED: Implement the document.register interface method">バグ 783129</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/ProgressEvent/initProgressEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>ProgressEvent.initProgressEvent()</code></a> constructor method has been removed. Uses the standard constructor, <a href="/ja/docs/Web/API/ProgressEvent/ProgressEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>ProgressEvent()</code></a> to construc and initialize <a href="/ja/docs/Web/API/ProgressEvent" title="The ProgressEvent インターフェースは (XMLHttpRequest、または &lt;img>, &lt;audio>, &lt;video>, &lt;style> ,&lt;link>のような基本的なリソースのロードなどの)のようなHTTPリクエストイベントの基本的なプロセスの進捗の進み具合を表示します。"><code>ProgressEvent</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=843489" title='FIXED: [Progress Events] Remove support for ProgressEvent.initProgressEvent() and Document.createEvent("ProgressEvent")'>バグ 843489</a>).</li>
+ <li>Manipulated data associated with a <code><a href="/ja/docs/Web/Reference/Events/cut" title="/ja/docs/Web/Reference/Events/cut">cut</a></code>, <code><a href="/ja/docs/Web/Reference/Events/copy" title="/ja/docs/Web/Reference/Events/copy">copy</a></code>, or <code><a href="/ja/docs/Web/Reference/Events/paste" title="/ja/docs/Web/Reference/Events/paste">paste</a></code> event can now be accessed via the <a href="/ja/docs/Web/API/ClipboardEvent/clipboardData" title="ClipboardEvent.clipboardData プロパティは、DataTransfer オブジェクトを保持し、次のように使用します:"><code>ClipboardEvent.clipboardData</code></a> property (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=407983" title="FIXED: Add support clipboardData object for the onpaste, oncopy, oncut events">バグ 407983</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/HTMLTimeElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>HTMLTimeElement</code></a> interface has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=629801" title="FIXED: Implement HTML5 &lt;time> element">バグ 629801</a>).</li>
+ <li>When a <a href="/ja/docs/Web/API/Worker" title="Web Workers API のWorkerインターフェースはバックグラウンドで行われるタスクを実行することができ、そのタスクは簡単に生成され、かつ作成元にメッセージを送り返すことができます。Worker()コンストラクタを呼び出しワーカスレッドを走らせるスクリプトを特定してあげるだけでワーカオブジェクトを作成することができます。"><code>Worker</code></a> constructor is passed an invalid URL, it now throws <a href="/ja/docs/Web/API/DOMException" title="DOMException 例外は、メソッドやプロパティを使用したときに異常なイベントが発生したことを表します。"><code>DOMException</code></a> of type <code>SECURITY_ERR</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=587251" title="FIXED: new Worker(badURL) should throw a SECURITY_ERR">バグ 587251</a>).</li>
+ <li>The <code>origin</code> property has been added to the <a href="/ja/docs/Web/API/Window/location" title="Window.location 読み取り専用プロパティは、document の現在位置についての情報を持つ Location オブジェクトを返します。"><code>window.location</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=828261" title="FIXED: Implement `window.location.origin`.">バグ 828261</a>).</li>
+ <li>The <code>valueAsDate</code> and <code>valueAsNumber</code> methods have been added for <code>&lt;input type="time"&gt;</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=781570" title="FIXED: implement valueAsNumber and valueAsDate for input &lt;input type=time>">バグ 781570</a>).</li>
+ <li>The <code>min</code> and <code>max</code> attributes now apply to <code>&lt;input type="time"&gt;</code> too (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=781572" title="FIXED: implement the min and max attribute for &lt;input type=time>">バグ 781572</a>).</li>
+ <li>Some new keyCodes for volume control are supported (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=674739" title="FIXED: Implement DOM3 KeyboardEvent types for audio">バグ 674739</a>).</li>
+ <li>Some new keyCodes for ancient keyboard layout such as AS/400 are now supported on Windows and Linux (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=833719" title="FIXED: Some function keys are not working since Firefox Version 15">バグ 833719</a>).</li>
+ <li>Various keyCode values for OEM sepecific keys on Windows are now supported again (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=833719" title="FIXED: Some function keys are not working since Firefox Version 15">バグ 833719</a>).</li>
+ <li>The function <a href="/en-US/docs/DOM/window.crypto.getRandomValues" title="DOM/window.crypto.getRandomValues"><code>window.crypto.getRandomValues</code></a> has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=440046" title="FIXED: expose secure PRNG in the DOM (window.crypto.getRandomValues)">バグ 440046</a>).</li>
+ <li>The methods <a href="/ja/docs/Web/API/NodeIterator/expandEntityReferences" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>NodeIterator.expandEntityReferences()</code></a> and <a href="/ja/docs/Web/API/TreeWalker/expandEntityReferences" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TreeWalker.expandEntityReferences()</code></a>, no more in the latest DOM spec, has been removed (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=672190" title="FIXED: consider removing expandEntityReferences from NodeIterator and TreeWalker">バグ 672190</a>).</li>
+ <li>CSSOM: the method <a href="/ja/docs/Web/API/CSSKeyframesRule" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CSSKeyframesRule</code></a><code>.insertRule</code> has been removed to <a href="/ja/docs/Web/API/CSSKeyframesRule" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CSSKeyframesRule</code></a><code>.appendRule</code> to match a spec change (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=841896" title="FIXED: CSSKeyframesRule should have a `appendRule` method, not `insertRule`">バグ 841896</a>).</li>
+ <li>CSSOM If the given parameter given to <a href="/ja/docs/Web/API/CSSStyleSheet/insertRule" title="CSSStyleSheet.insertRule() メソッドは、新しい CSS 規則を現在のスタイルシートに挿入します。(いくつかの 制限 があります。)"><code>CSSStyleSheet.insertRule</code></a> contains more than one rule, a <a href="/ja/docs/Web/API/DOMException" title="DOMException 例外は、メソッドやプロパティを使用したときに異常なイベントが発生したことを表します。"><code>DOMException</code></a> with a <code>SYNTAX_ERR</code> is now thrown (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=765599" title="FIXED: CSSStyleSheet.insertRule should throw when there are more than one rule">バグ 765599</a>).</li>
+ <li>Until now, when the same headers were repeatedly set with <a href="https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#setRequestHeader" title="/en-US/docs/Web/API/XMLHttpRequest#setRequestHeader"><code>XMLHttpRequest.setRequestHeader</code></a>, the last-specified value was used. This behavior has been changed to comply with the spec, so those values will be properly combined (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=819051" title="FIXED: XMLHttpRequest.setRequestHeader() overwrites instead of combines values for the same header.">バグ 819051</a>).</li>
+ <li><a href="/ja/docs/Web/API/HTMLMediaElement" title="HTMLMediaElement は HTMLElement に音声や動画といったメディア関連機能の属性とメソッドを追加します。HTMLVideoElement と HTMLAudioElement はこのインタフェースを継承しています。"><code>HTMLMediaElement</code></a> supports now <code>playbackRate</code> (both read and write), with pitch correction. Pitch correction can be controlled using the property <code>mozPreservesPitch</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=495040" title="FIXED: Implement playbackRate and related bits">バグ 495040</a>).</li>
+ <li>CSSOM: Support for the new <a href="/ja/docs/Web/API/CSSGroupingRule" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CSSGroupingRule</code></a> and <a href="/ja/docs/Web/API/CSSConditionRule" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CSSConditionRule</code></a> has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=814907" title="FIXED: implement CSSGroupingRule and CSSConditionRule">バグ 814907</a>).</li>
+ <li>CSSOM: On <a href="/ja/docs/Web/API/CSSRule" title="CSSRule インターフェイスは、1 つの CSS 規則を表します。いくつかある規則の種類は、下記の 型定数 セクションのリストを見てください。"><code>CSSRule</code></a> the constant CSSRule.MOZ_KEYFRAME_RULE and CSSRule.MOZ_KEYFRAMES_RULE have been unprefixed to CSSRule.KEYFRAME_RULE and CSSRule.KEYFRAMES_RULE. The prefixed version are temporarily kept for helping Web author to transition their code <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816431" title="FIXED: unprefix CSSRule.MOZ_KEYFRAME{,S}_RULE constants">バグ 816431</a>).</li>
+ <li>CSSOM: It is now possible to set the value of <code>conditionText</code> for <a href="/ja/docs/Web/API/CSSMediaRule" title="CSSMediaRule は、1 個の CSS @media 規則を表すインターフェイスです。これは、CSSConditionRule インターフェイス、さらに CSSGroupingRule インターフェイスと型定数の値が 4 (CSSRule.MEDIA_RULE) の CSSRule インターフェイスを実装します。"><code>CSSMediaRule</code></a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=815021" title="FIXED: implement CSSMediaRule.conditionText assignment">バグ 815021</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/DOMParser" title="DOMParser を用いると、文字列で格納された XML / HTML のソースを document DOM オブジェクトにパースすることができます。 DOMParser は DOM Parsing and Serialization で定義されています。"><code>DOMParser</code></a> <code>parseFromStream</code> and <code>parseFromBuffer</code> methods are no longer available from web content (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816410" title="FIXED: Convert XMLSerializer and DOMParser to WebIDL bindings">バグ 816410</a>).</li>
+ <li>The <code><a href="/en-US/docs/XMLSerializer">XMLSerializer</a></code> <code>serializeToStream</code> method is no longer available from web content (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816410" title="FIXED: Convert XMLSerializer and DOMParser to WebIDL bindings">バグ 816410</a>).</li>
+ <li><a href="/ja/docs/Web/API/TextDecoder" title="TextDecoder インターフェイスは utf-8、iso-8859-2、koi8、cp1261、gbk など特定の文字エンコーディング方式向けのデコーダを表します。デコーダはバイトストリームを入力として受け取り、連続したコードポイントを出力します。よりスケーラブルな非ネイティブのライブラリについて、StringView – typed array による、C ライクな文字列の表現をご覧ください。"><code>TextDecoder</code></a> and <a href="/ja/docs/Web/API/TextEncoder" title="TextEncoder インターフェイスは utf-8、iso-8859-2、koi8、cp1261、gbk など特定の文字エンコーディング方式向けのエンコーダを表します。エンコーダは連続したコードポイントを入力として受け取り、バイトストリームを出力します。よりスケーラブルな非ネイティブのライブラリについて、StringView – typed array による、C ライクな文字列の表現をご覧ください。"><code>TextEncoder</code></a> interfaces have been updated to match the latest spec (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=801487" title="FIXED: Update StringEncoding API per the latest spec and fix some bugs">バグ 801487</a>) and are now available in Workers (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=795542" title="FIXED: Implement StringEncoding API in Workers">バグ 795542</a>).</li>
+ <li>Support for the <code>CSS.supports()</code> method has been added, behind the <code><code>layout.css.supports-rule.enabled</code></code> pref (off by default) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=779917" title="FIXED: Implement CSS.supports()">バグ 779917</a>).</li>
+ <li>Support for UndoManager has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=617532" title='FIXED: implement the HTML5 "undo history" feature (UndoManager interface)'>バグ 617532</a>).</li>
+ <li>The CSSOM <a href="/ja/docs/Web/API/Document/caretPositionFromPoint" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>document.caretPositionFromPoint</code></a> method, which returns a <a href="/ja/docs/Web/API/CaretPosition" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CaretPosition</code></a> has been implemented.</li>
+ <li>The index argument of the <a href="/ja/docs/Web/API/TableRow/insertCell" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>tableRow.insertCell</code></a> and <a href="/ja/docs/Web/API/Table/insertRow" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>table.insertRow</code></a> methods has been made optional as per HTML specification.</li>
+ <li><a href="/ja/docs/Web/API/Navigator/getUserMedia" title="Navigator.getUserMedia() メソッドは、カメラや共有画面、マイクなど、0 または 1 系統の動画入力デバイスおよび 0 または 1 系統の音声入力デバイスの使用許可をユーザーに求めます。ユーザーが許可を与えると、許可された MediaStream オブジェクトを引数に与える successCallback が呼び出されます。ユーザーが拒否するかメディアが使用できない場合、PermissionDeniedError または NotFoundError エラーを伴う errorCallback が呼び出されます。ただし、ユーザーが選択する必要がない場合など、コールバックの呼び出しが完了しない可能性があることに注意してください。"><code>Navigator.getUserMedia</code></a>, still prefixed as <code>Navigator.mozGetUserMedia</code> is now activated by default.</li>
+ <li>The third, optional, <code>transfer</code> argument of <a href="/ja/docs/Web/API/Window/postMessage" title="window.postMessage が呼び出されたとき、MessageEvent を対象ウィンドウに伝達し、そのとき、実行されなければならない任意の保留中のスクリプトが完了します(例えば、window.postMessage がイベントハンドラから呼ばれた場合イベントハンドラの存続、以前に設定された保留中のタイムアウト、など)。 MessageEvent には message という型、window.postMessage に与えられる第一引数の文字列の値に設定される data プロパティ、 window.postMessage が呼び出されたとき、window.postMessage を呼び出しているウィンドウ内のメインドキュメントの生成元に対応する origin プロパティ、window.postMessage を呼び出したウィンドウである source プロパティがあります。(他のイベントの標準プロパティがそれらの期待される値で存在します)"><code>Window.postMessage</code></a> is now supported. It allows to transfer a sequence of <a href="/ja/docs/Web/API/Transferable" title="Technical review completed."><code>Transferable</code></a> objects to the destination (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=822094" title="FIXED: Implement transfer parameter of window.postMessage">バグ 822094</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/Element/getElementsByTagName" title="指定された タグ名 による要素のリストを返します。指定された要素以下のサブツリーが検索対象となり、その要素自体は除外されます。"><code>element.getElementsByTagName</code></a> method will now return <code>HTMLCollection</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=799464" title="FIXED: Make Element.getElementsBy* return HTMLCollection">バグ 799464</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/File" title="File インターフェイスはファイルの情報を提供したり、Web ページ内の JavaScript がコンテンツにアクセスすることを許可したりします。"><code>File</code></a> <code>mozLastModifiedDate</code> property has been implemented. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=793955" title="FIXED: [DeviceStorage] files returned by DeviceStorage.get() don't always have lastModifiedDate">バグ 793955</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/File" title="File インターフェイスはファイルの情報を提供したり、Web ページ内の JavaScript がコンテンツにアクセスすることを許可したりします。"><code>File</code></a> <code>lastModifiedDate</code> property returns the current date, when the date of the last modification is unknown. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=793459" title="FIXED: Update File.lastModifiedDate to latest spec">バグ 793459</a>.</li>
+ <li>The <a href="/ja/docs/Web/API/CanvasRenderingContext2D" title='このインターフェイスのオブジェクトを取得するには、以下のようにのgetContext()の引数に"2d"を指定して呼び出します。'><code>CanvasRenderingContext2D</code></a> <code>isPointInStroke</code> method has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=803124" title="FIXED: Implement isPointInStroke">バグ 803124</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/HTMLCanvasElement" title="HTMLCanvasElementインタフェースはcanvas要素のレイアウトや表現の操作のための属性やメソッドを提供します。HTMLCanvasElementはHTMLElementインタフェースのプロパティやメソッドも利用可能です。"><code>HTMLCanvasElement</code></a> <code>toBlob</code> method has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=648610" title="FIXED: Implement &lt;canvas>.toBlob">バグ 648610</a>).</li>
+ <li>The <a href="/ja/docs/Web/API/Node/isSupported" title="指定された機能が DOM 実装に含まれており、このノードでサポートされているかどうかをテストします。"><code>Node.isSupported</code></a> and the <a href="/ja/docs/Web/API/Document/implementation" title="現在のドキュメントに関連付けられた DOMImplementation オブジェクトを返します。"><code>document.implementation.hasFeature()</code></a> methods have been changed to always return <code>true</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=801425" title="FIXED: Make hasFeature() and isSupported() always return true">バグ 801425</a>).</li>
+ <li>When calling <code>document.createElement(null)</code>, <code>null</code> will now be stringified and works like <code>document.createElement("null")</code>.</li>
+</ul>
+
+<h2 id="SVG">SVG</h2>
+
+<p>General Gecko:</p>
+
+<ul>
+ <li>Inconsistent renderings of <code><a href="/ja/docs/Web/MathML/Element/mmultiscripts" title="&lt;mmultiscripts>">&lt;mmultiscripts&gt;</a></code>,  <code><a href="/ja/docs/Web/MathML/Element/msub" title="&lt;msub>">&lt;msub&gt;</a></code>, <code><a href="/ja/docs/Web/MathML/Element/msup" title="&lt;msup>">&lt;msup&gt;</a></code> and <code><a href="/ja/docs/Web/MathML/Element/msubsup" title="&lt;msubsup>">&lt;msubsup&gt;</a></code> have been unified and the error handling of these elements has been improved (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=827713" title="FIXED: Inconsistent rendering of mub / mup / msubsup / mmultiscripts">バグ 827713</a>).</li>
+ <li>The <a href="/en-US/docs/Web/SVG/Attribute/paint-order" title="/en-US/docs/Web/SVG/Attribute/paint-order">paint-order</a> attribute has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=828805" title="FIXED: implement paint-order property from SVG 2">バグ 828805</a>).</li>
+ <li>The implementation of the <code>contentScriptType</code> and <code>contentStyleType</code> properties has been removed from <a href="https://developer.mozilla.org/en-US/docs/Web/API/SVGSVGElement" title="/en-US/docs/Web/API/SVGSVGElement"><code>SVGSVGElement</code></a> along with the removal from SVG2 (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=819731" title="FIXED: remove contentStyleType and contentScriptType from SVGSVGElement">バグ 819731</a>).</li>
+</ul>
+
+<h2 id="MathML">MathML</h2>
+
+<p>General Gecko:</p>
+
+<ul>
+ <li>The <code>dir</code> attribute for controlling directionality of formulas on e.g. <code><a href="https://developer.mozilla.org/en-US/docs/Web/MathML/Element/math" title="&lt;math>">&lt;math&gt;</a></code> or <code><a href="https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mrow" title="&lt;mrow>">&lt;mrow&gt;</a></code> elements is now equivalent to using the <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/direction" title=""><code>direction</code></a> CSS property.</li>
+ <li>The equal sign ("=") is now <a href="https://developer.mozilla.org/en-US/docs/Web/MathML/Element/mo#attr-stretchy">stretchable</a>.</li>
+ <li>The "<code>updiagonalarrow</code>" value for the <code>notation</code> attribute on <code><a href="https://developer.mozilla.org/en-US/docs/Web/MathML/Element/menclose" title="&lt;menclose>">&lt;menclose&gt;</a></code> elements has been added.</li>
+ <li>Negative widths for the <code><a href="/ja/docs/Web/MathML/Element/mspace" title="&lt;mspace>">&lt;mspace&gt;</a></code> element has been implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=717546" title="FIXED: Implement mspace with negative width">バグ 717546</a>).</li>
+ <li>The <code><a href="/ja/docs/Web/MathML/Element/semantics" title="&lt;semantics>">&lt;semantics&gt;</a></code> element now determines the visible child as described in the MathML3 specification.</li>
+ <li>To help MathML authors debugging "invalid-markup" errors in their documents, MathML parsing errors (such as having too many / too few child elements) and warnings about deprecated attributes or wrong attribute values are now reported to the <a href="/en-US/docs/Error_Console" title="Error_Console">Error Console</a>.</li>
+ <li>The <code>scriptminsize</code> attribute now accepts unitless values and percent values. They are interpreted as multiples of the default value ("<code>8pt</code>").</li>
+ <li>Unitless values are now also allowed for the <code>mathsize</code> and <code>fontsize</code> attributes; they multiply the default value.</li>
+</ul>
+
+<h2 id="ネットワーク">ネットワーク</h2>
+
+<p>General Gecko:</p>
+
+<ul>
+ <li>We continue to update our CSP implementation to match the CSP 1.0 spec, which reached Candidate Recommendation:
+ <ul>
+ <li>Support for the spec-compliant <code>Content-Security-Policy</code> HTTP header (in addition to the experimental <code>X-Content-Security-Policy</code>) has been added (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=783049" title="FIXED: CSP : use existing/old parser for X-Content-Security-Policy header, new/CSP 1.0 spec compliant parser for Content-Security-Policy header">バグ 783049</a>). <strong>Note</strong>: the patch for this new header landed in Firefox 21, it is disabled on builds (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=842657" title="FIXED: Flip the pref to enable the CSP 1.0 parser for Firefox">バグ 842657</a>).</li>
+ </ul>
+ </li>
+</ul>
+
+<h2 id="Worker">Worker</h2>
+
+<p>General Gecko:</p>
+
+<ul>
+ <li>The functions <a href="/ja/docs/Web/API/Window/URL/createObjectURL" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>URL.createObjectURL</code></a> and <a href="/ja/docs/Web/API/Window/URL/revokeObjectURL" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>URL.revokeObjectURL</code></a> are now included in the set of <a href="/en-US/docs/DOM/Worker/Functions_available_to_workers" title="DOM/Worker/Functions_available_to_workers">functions available to workers</a>.</li>
+</ul>
+
+<h2 id="セキュリティ">セキュリティ</h2>
+
+<p>General Gecko:</p>
+
+<ul>
+ <li>Mixed content blocking. Firefox will no longer load non-secure (http) resources on secure (https) pages (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=834836" title="FIXED: Turn on pref to block mixed active content">バグ 834836</a>).</li>
+ <li>The standard syntax of <a href="/en-US/docs/Security/CSP" title="/en-US/docs/Security/CSP">CSP</a> 1.0 policies are now implemented and enforced by default.</li>
+</ul>
+
+<h2 id="XForms">XForms</h2>
+
+<p>General Gecko:</p>
+
+<p>Support for <a href="/en-US/docs/XForms" title="XForms">XForms</a> has been <a href="http://www.philipp-wagner.com/blog/2011/07/the-future-of-mozilla-xforms/" title="http://www.philipp-wagner.com/blog/2011/07/the-future-of-mozilla-xforms/"><strong>removed</strong></a> in Firefox 19.</p>
+
+<h2 id="参考情報">参考情報</h2>
+
+<ul>
+ <li><a href="http://www.mozilla.org/en-US/firefox/os/notes/1.2/" title="http://www.mozilla.org/en-US/firefox/os/notes/1.2/">Firefox OS 1.2 Notes</a></li>
+</ul>
+
+<h2 id="以前のバージョン">以前のバージョン</h2>
+
+<p></p><div class="multiColumnList">
+<ul>
+<li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li></ul>
+</div><p></p>
+
+<p> </p>
+
+<p>Share this article: <a href="http://mzl.la/1av9ZRr">http://mzl.la/1av9ZRr</a></p>
diff --git a/files/ja/archive/b2g_os/releases/1.4/index.html b/files/ja/archive/b2g_os/releases/1.4/index.html
new file mode 100644
index 0000000000..38b0de47e7
--- /dev/null
+++ b/files/ja/archive/b2g_os/releases/1.4/index.html
@@ -0,0 +1,96 @@
+---
+title: Firefox OS 1.4 for developers
+slug: Archive/B2G_OS/Releases/1.4
+tags:
+ - B2G
+ - Firefox OS
+ - Release Note
+translation_of: Archive/B2G_OS/Releases/1.4
+---
+<div class="summary">
+<p><span class="seoSummary"><strong>Firefox OS 1.4</strong> は、現在プレリリース段階です。Gecko コンポーネントは <strong>Firefox 30</strong> をベースにしています。(<a href="/ja/docs/Mozilla/Firefox/Releases/30" title="/ja/docs/Mozilla/Firefox/Releases/30">開発者向け Firefox 30 のリリースノート</a> をご覧ください。) このページは、Firefox OS で新しく実装された開発者向け機能について解説します。</span></p>
+</div>
+
+<h2 id="CSS">CSS</h2>
+
+<p>Gecko 全般:</p>
+
+<ul>
+ <li><a href="/ja/docs/Web/CSS/background-blend-mode" title="CSS の background-blend-mode プロパティは、要素の背景画像を互いに、あるいは要素の背景色とどのようにブレンドするかを示します。"><code>background-blend-mode</code></a> プロパティをデフォルトで有効にしました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=970600" title="FIXED: Enable background-blend-mode by default">バグ 970600</a>)。</li>
+ <li>非標準である <a href="/ja/docs/Web/CSS/overflow-clip-box" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>overflow-clip-box</code></a> プロパティが UI スタイルシートでのみ使用できるように実装しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=966992" title="FIXED: Implement overflow-clip-box: content-box">バグ 966992</a>)。</li>
+ <li><a href="/ja/docs/Web/CSS/line-height" title="CSS の line-height プロパティは、ブロックレベル要素に含まれるラインボックスの、最小の高さを定義します。"><code>line-height</code></a> プロパティが、単一行のテキスト入力 (<code>&lt;input type=text|password|email|search|tel|url|unknown&gt;</code> ) に作用します。ただし、行の高さは <code>1.0</code> 以下にはなりません (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=349259" title="FIXED: CSS Property 'line-height' has no effects on input text fields">バグ 349259</a>)。</li>
+ <li><a href="/ja/docs/Web/CSS/line-height" title="CSS の line-height プロパティは、ブロックレベル要素に含まれるラインボックスの、最小の高さを定義します。"><code>line-height</code></a> プロパティは、<code>type=button</code> にも制限なく作用します (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=697451" title='FIXED: Allow use of line-height for &amp;amp;lt;input type="reset|button|submit">'>バグ 697451</a>)。</li>
+ <li>キーフレームの名前の変更は現在の要素に作用しません (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=978648" title="FIXED: Change to keyframes' name does not affect current elements">バグ 978648</a>)。</li>
+</ul>
+
+<h2 id="JavaScript">JavaScript</h2>
+
+<p><a href="/ja/docs/Mozilla/Projects/SpiderMonkey">SpiderMonkey</a> 全般:</p>
+
+<ul>
+ <li>ES6 互換の新たな <a href="/ja/docs/Web/JavaScript/Reference/Operators/Array_comprehensions">内包配列 </a> <code>[for (item of iterable) item]</code> と <a href="/ja/docs/Web/JavaScript/Reference/Operators/Generator_comprehensions">Generator 内包</a> <code>(for (item of iterable) item)</code> を実装しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=979865" title="FIXED: Implement ES6 array and generator comprehensions">バグ 979865</a>)。</li>
+ <li>Typed arrays が拡張可能になり、新たな名前のプロパティをサポートしました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=695438" title="FIXED: TypedArrays don't support new named properties">バグ 695438</a>)。</li>
+ <li><a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Error/stack" title="Error オブジェクトの非標準の stack プロパティは、呼び出された関数のトレース、つまり、その呼び出し順、呼び出したファイルの行番号、呼び出した関数の引数を提供します。スタック文字列は、最後の呼び出しから最初の呼び出しへ進み、元のグローバルスコープの呼び出しまで遡ります。"><code>Error.prototype.stack</code></a> プロパティがカラム番号を含むようになり (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=762556" title="FIXED: Error stack should contain column number">バグ 762556</a>)、<a href="/ja/docs/Web/JavaScript/Reference/Global_Objects/Error/Stack#Stack_of_eval'ed_code"><code>Function()</code> や <code>eval()</code> を呼び出す</a> 際の動作が向上しました。ミニファイされた、あるいは生成された JavaScript コードのデバッグを改善する助けになります。</li>
+</ul>
+
+<h2 id="インターフェイスAPIsDOM">インターフェイス/APIs/DOM</h2>
+
+<p>Firefox OS の仕様:</p>
+
+<ul>
+ <li><span id="summary_alias_container"><span id="short_desc_nonedit_display">Navigator.HasCameraSupport</span></span> が使用できる条件下で、カメラオブジェクトが使用できるようになりました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=983180" title="FIXED: [Camera][Gecko] Make availability of camera object conditional on Navigator.HasCameraSupport">バグ 983180</a>)。</li>
+ <li>顔追跡 API を実装しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=965420" title="FIXED: [Madai][Camera][Gecko] Implement face-tracking API">バグ 965420</a>)。</li>
+ <li><a href="/ja/docs/Web/API/Camera_Control_API">Camera Control API</a> が整理されました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=909542" title="FIXED: Camera Control API clean-up/streamline">バグ 909542</a>)。</li>
+ <li><a href="/ja/docs/Web/API/Network_Information_API">Network Information API</a> を Firefox OS 上でサポートしました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=960426" title="FIXED: Support Network Information API in Firefox OS">バグ 960426</a>)。</li>
+ <li><a href="/ja/docs/Web/API/Wifi_Direct_API">Wifi Direct API</a> を実装しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=811635" title="FIXED: B2G Wifi: Support Wifi Direct">バグ 811635</a>)。</li>
+</ul>
+
+<p>Gecko 全般:</p>
+
+<ul>
+ <li><code>URLSearchParams.size</code> のサポートが Gecko から削除されました。これにより、DOM 使用からイテレータサポートがファイナライズされるまで削除されます (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=959988" title="FIXED: Remove URLSearchParams.prototype.size">バグ 959988</a>)。</li>
+ <li>WebRTC 向け <a href="/ja/docs/Web/API/Identity_Provider_API">Identity Provider API</a> が実装されました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=884573" title="FIXED: PeerConnection.js persona integration">バグ 884573</a>)。</li>
+ <li><a href="/ja/docs/Web/HTML/Element/shadow" title="HTML &lt;shadow> 要素 (Web Components 技術スイートの廃止された部分) は shadow DOM の insertion point として使用するものでした。shadow ホスト配下に複数の shadow ルートを生成する場合に使用します。これは通常の HTML としては役立ちません。"><code>&lt;shadow&gt;</code></a> 要素が実装されました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=887538" title="FIXED: Implement web components shadow element.">バグ 887538</a>)。</li>
+ <li><a href="/ja/docs/Web/API/FileSystem/createFile" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>createFile()</code></a> メソッドが <a href="/ja/docs/Web/API/File_System_API">File System API</a> で実装されました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=934367" title="FIXED: [Filesystem API] Implement createFile method for device storage.">バグ 934367</a>)。</li>
+ <li>デバイスストレージ API で <a href="/ja/docs/Web/API/File_System_API">File System API</a> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=910412" title="FIXED: Change DeviceStorage API to use FileSystem API spec">バグ 910412</a>) を使用するようになりました。前者の API は今後廃止される計画があります。</li>
+ <li>テレメトリーの収集を容易にする <a href="/ja/docs/Web/API/Navigator/sendBeacon" title="navigator.sendBeacon() は HTTP で少量のデータを非同期にサーバに送ることに利用できます。"><code>Navigator.sendBeacon</code></a> を実装しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=936340" title="FIXED: Implement navigator.sendBeacon">バグ 936340</a>)。</li>
+ <li><a href="/ja/docs/Web/API/HTMLLinkElement" title="link オブジェクトは、外部リソースの参照情報、また、外部リソースから文書に対しての関係も含む、HTMLLinkElement インタフェースを公開します。このオブジェクトは HTMLElement のすべてのプロパティとメソッドを継承します。"><code>HTMLLinkElement</code></a>、<a href="/ja/docs/Web/API/HTMLAreaElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>HTMLAreaElement</code></a>、<a href="/ja/docs/Web/API/HTMLAnchorElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>HTMLAnchorElement</code></a> に、<a href="/ja/docs/Web/API/DOMTokenList" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>DOMTokenList</code></a> を返す <code>relList</code> プロパティを追加しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=968637" title="FIXED: add the DOMTokenList relList to HTMLLinkElement, HTMLAreaElement and HTMLAnchorElement">バグ 968637</a>)。</li>
+ <li>最新の仕様により、<a href="/ja/docs/Web/API/OscillatorNode/start" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>OscillatorNode.start</code></a> および <a href="/ja/docs/Web/API/OscillatorNode/stop" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>OscillatorNode.stop</code></a> の第 1 引数は省略可能および既定値が <code>0</code> になりました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=982541" title="FIXED: Update OscillatorNode.{start, stop} to have the first argument optional and default to zero">バグ 982541</a>)。</li>
+ <li><a href="/ja/docs/Web/API/Navigator/requestWakeLock" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Navigator.requestWakeLock()</code></a> メソッドおよび非標準である <a href="/ja/docs/Web/API/MozWakeLock" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozWakeLock</code></a> メソッドは、デスクトップ版 Firefox で使用できなくなりました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=963366" title="FIXED: Hide navigator.requestWakeLock and MozWakeLock from the web except on Firefox OS">バグ 963366</a>)。</li>
+ <li><code>DOM_VK_ENTER</code> 定数を <a href="/ja/docs/Web/API/KeyboardEvent" title="KeyboardEvent オブジェクトとは、キーボードに対するユーザの動作を表すオブジェクトです。 入力を受けたキーは個々のイベントによって表され、動作の種類はイベントの種類(keydown / keypress / keyup)によって表されます。"><code>KeyboardEvent</code></a> から削除しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=969247" title="FIXED: Get rid of related code of NS_VK_ENTER and nsIDOMKeyEvent::DOM_VK_ENTER">バグ 969247</a>)。</li>
+ <li>Web components の <a href="/ja/docs/Web/API/Document/register" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Document.register</code></a> を、最新版の仕様で説明されている動作に従うよう修正しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=856140" title="FIXED: Update document.register to adhere to the latest Custom Element spec">バグ 856140</a>)。</li>
+ <li>Canvas の Hit resion の基本的なサポートを追加: <a href="/ja/docs/Web/API/CanvasRenderingContext2D/addHitRegion" title="Canvas 2D APIのCanvasRenderingContext2D.addHitRegion()メソッドはビットマップにヒット領域を追加します。これにより、ヒット検出が容易になり、イベントをDOM要素にルートでき、ユーザーはcanvasを見なくても操作できるようになります。"><code>CanvasRenderingContext2D.addHitRegion()</code></a> メソッドおよび <a href="/ja/docs/Web/API/CanvasRenderingContext2D/removeHitRegion" title="Canvas 2D APIのCanvasRenderingContext2D.removeHitRegion() メソッドは、canvasから与えられたヒット領域を削除します。"><code>CanvasRenderingContext2D.removeHitRegion()</code></a> メソッドを追加しました。これらはデフォルトで無効です。有効化するには設定項目 <code>canvas.hitregions.enabled</code> を <code>true</code> に変更してください。(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=966591" title="FIXED: Add basic support for Hit regions in Canvas">バグ 966591</a>)</li>
+ <li>非標準であり Firefox 15 から非推奨であった <a href="/ja/docs/Web/API/Blob/mozSlice" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Blob.mozSlice</code></a> を廃止しました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=961804" title="FIXED: Drop support for Blob.mozSlice">バグ 961804</a>)。</li>
+ <li>非標準である <a href="/ja/docs/Web/API/ArchiveReader" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>ArchiveReader</code></a> および <a href="/ja/docs/Web/API/ArchiveRequest" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>ArchiveRequest</code></a> は Web 向けに公開しないようになりました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=968883" title="FIXED: ArchiveReader and ArchiveRequest should not be exposed interfaces">バグ 968883</a>)。</li>
+ <li>コンストラクタを関数として呼び出すことができなくなりました。キーワード <code>new</code> を前につけることが必要です。(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=916644" title="FIXED: Disallow calling WebIDL constructors as functions on the web">バグ 916644</a>)</li>
+ <li><a href="/ja/docs/Web/API/Canvas/getContext" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Canvas.getContext()</code></a> メソッドで、アルファブレンディングを保存しなければならないか否かを定義可能にする、省略可能な第 2 引数 (<code>alpha</code>) をサポートしました。設定しない場合、ピクセルごとのアルファ値は常に <code>1.0</code> になります。これによりバックエンドでファストトラックの実装が可能になります。(<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=982480" title="FIXED: Add support for the alpha option to the canvas context options">バグ 982480</a>)</li>
+</ul>
+
+<h2 id="SVG">SVG</h2>
+
+<p>Gecko 全般:</p>
+
+<ul>
+ <li>Filter Effects Module より、<a href="/ja/docs/Web/SVG/Element/feDropShadow" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>&lt;feDropShadow&gt;</code></a> およびそのインターフェイスである <a href="/ja/docs/Web/API/SVGFEDropShadowElement" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>SVGFEDropShadowElement</code></a> をサポートしました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=964200" title="FIXED: Implement Filter Effects Module feDropShadow filter">バグ 964200</a>)。</li>
+</ul>
+
+<h2 id="マニフェスト">マニフェスト</h2>
+
+<ul>
+ <li><code><a href="/ja/Apps/Build/Manifest#precompile">precompile</a></code> マニフェストフィールドをサポートしました。アプリ内に含まれている asm.js コードをインストール時にコンパイルし、初回起動時にインストールする場合に指定します。</li>
+</ul>
+
+<h2 id="関連情報">関連情報</h2>
+
+<ul>
+ <li><a href="https://www.mozilla.org/en-US/firefox/os/notes/1.4/">Firefox OS 1.4 Notes</a></li>
+</ul>
+
+<h2 id="以前のバージョン">以前のバージョン</h2>
+
+<p></p><div class="multiColumnList">
+<ul>
+<li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.3">Firefox OS 1.3 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.2">Firefox OS 1.2 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li></ul>
+</div><p></p>
+
+<p> </p>
diff --git a/files/ja/archive/b2g_os/releases/2.0/index.html b/files/ja/archive/b2g_os/releases/2.0/index.html
new file mode 100644
index 0000000000..353314c33e
--- /dev/null
+++ b/files/ja/archive/b2g_os/releases/2.0/index.html
@@ -0,0 +1,112 @@
+---
+title: Firefox OS 2.0 for developers
+slug: Archive/B2G_OS/Releases/2.0
+translation_of: Archive/B2G_OS/Releases/2.0
+---
+<div class="summary">
+<p>このページでは、Firefox OS 2.0に固有な Gecko の新規実装すみの開発機能について詳しく述べます。</p>
+</div>
+
+<div class="note">
+<p>Firefox OS 2.0's Gecko component is based on Firefox 31/32.</p>
+</div>
+
+<h2 id="新しい製品機能">新しい製品機能</h2>
+
+<p>This section provides a summary of the new features available in Firefox OS 2.0. For more details on specific platform changes (API additions, etc.), see the <a href="#Platform_additions_in_detail">Platform additions in detail</a> section.</p>
+
+<dl>
+ <dt>NFC</dt>
+ <dd><span class="author-g-x59co88jbi1y2uah b i">This release includes support for device-to-device content sharing support with NFC <span class="author-g-x59co88jbi1y2uah b i">(Near Field Communication)</span>. You can pair your device with another, then <a href="/en-US/docs/Web/API/NFC_API/Using_the_NFC_API#The_P2P_Sharing_UI">swipe to share</a> your contacts, media, or favorite URLs with others.</span></dd>
+ <dt>Telephony</dt>
+ <dd><span class="author-g-x59co88jbi1y2uah b i">Firefox OS now supports both IPv4 and IPv6 addresses</span> in the network manager.</dd>
+ <dt>Find My Device</dt>
+ <dd><span class="author-g-9k649z122zgh819oqmty">If you’ve lost your Firefox OS smartphone, Find My Device can help you find it (see the <span class="author-g-9k649z122zgh819oqmty url"><a href="http://find.firefox.com">http://find.firefox.com</a> website</span>). You can see it on a map, make it play a sound and have it display a message. You can also remotely lock it or delete your personal info.</span><span class="author-g-9k649z122zgh819oqmty"> To get started, create a Firefox Account (<em>Settings &gt; Firefox Accounts</em> on your device) and enable Find My Device (<span class="author-g-9k649z122zgh819oqmty"><em>Settings &gt; Find My Device</em></span>).</span></dd>
+ <dt>Media</dt>
+ <dd><span class="author-g-4iwx7wjdkbf2wjjv b">You can now create your own ringtones using your own music collection, or songs you download from the Web.</span></dd>
+ <dt>Camera</dt>
+ <dd><span class="author-g-4iwx7wjdkbf2wjjv b">The Camera app now supports various focus modes: Touch, Continuous Auto and Face tracking</span>.</dd>
+ <dt>Productivity</dt>
+ <dd>We've done a visual refresh of the Email, Calender, and Clock apps.</dd>
+ <dt>Homescreen</dt>
+ <dd><span class="author-g-4f4wmtjtu8s4fjq7 b i">Firefox OS 2.0 introduces a simpler vertical-scrolling homescreen with larger icons.</span></dd>
+ <dt>Edge-gesture app switching</dt>
+ <dd><span class="author-g-4f4wmtjtu8s4fjq7 b i">Edge gestures are now available for switching between apps (swipe your thumb from the left edge of the screen to the right and vice versa, to switch between multiple open apps.)</span></dd>
+</dl>
+
+<h2 id="新しいパートナー機能">新しいパートナー機能</h2>
+
+<dl>
+ <dt>E.ME integration</dt>
+ <dd>E.ME integration provides direct access to web apps while configurable search providers can search the web at the same time.</dd>
+</dl>
+
+<h2 id="新しい開発ツール機能">新しい開発ツール機能</h2>
+
+<p>The Firefox <a href="/en-US/docs/Tools">Developer Tools</a> have had a large number of features added in Firefox versions 31 and 32; these aren't Firefox OS-specific, but you can take advantage of them when debugging your Firefox OS apps through <a href="/en-US/docs/Tools/WebIDE">WebIDE</a>. To find out more, read:</p>
+
+<ul>
+ <li><a href="https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/">Firefox Developer Tools Episode 31</a></li>
+ <li><a href="https://hacks.mozilla.org/2014/06/toolbox-inspector-scratchpad-improvements-firefox-developer-tools-episode-32/">Firefox Developer Tools Episode 32</a></li>
+</ul>
+
+<h2 id="Platform_additions_in_detail">Platform additions in detail</h2>
+
+<div class="note">
+<p><strong>Note</strong>: Our list here includes features most important to Firefox OS. For an expanded list of general Gecko feature additions (which are generally also present in Firefox OS 2.0), consult the <a href="/en-US/docs/Mozilla/Firefox/Releases/31" title="/en-US/docs/Mozilla/Firefox/Releases/31">Firefox 31 release notes for developers</a> and <a href="/en-US/docs/Mozilla/Firefox/Releases/32" title="/en-US/docs/Mozilla/Firefox/Releases/32">Firefox 32 release notes for developers</a>.</p>
+</div>
+
+<h3 id="Web_API">Web API</h3>
+
+<ul>
+ <li>The parameters of the <a href="/ja/docs/Web/API/MozMobileNetworkInfo" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MozMobileNetworkInfo</code></a> constructor have been made nullable (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1026727" title="FIXED: Unknown state is displayed instead of Connected during manual network selection">バグ 1026727</a>).</li>
+ <li>WebRTC: <span class="author-g-41mtsa1hor7b107c i"><a href="/ja/docs/Web/API/MozGetUserMedia" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>mozGetUserMedia</code></a>, <a href="/ja/docs/Web/API/MozRTCPeerConnection" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>mozRTCPeerConnection</code></a>, and <a href="/ja/docs/Web/API/DataChannels" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>DataChannels</code></a> are supported by default</span>.</li>
+ <li>New constraints for <a href="https://developer.mozilla.org/en-US/docs/Glossary/WebRTC">WebRTC</a>'s <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/NavigatorUserMedia.getUserMedia" title="The documentation about this has not yet been written; please consider contributing!"><code>getUserMedia()</code></a>, <code>width</code>, <code>height</code>, and <code>framerate</code>,  have been added, to limit stream dimensions and frame rate (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=907352" title="FIXED: Implement width/height/framerate gUM constraints">bug 907352</a>):
+ <pre class="brush: json language-json"><code class="language-json"><span class="punctuation token">{</span>
+ mandatory<span class="punctuation token">:</span> <span class="punctuation token">{</span>
+ width<span class="punctuation token">:</span> <span class="punctuation token">{</span> min<span class="punctuation token">:</span> <span class="number token">640</span> <span class="punctuation token">}</span><span class="punctuation token">,</span>
+ height<span class="punctuation token">:</span> <span class="punctuation token">{</span> min<span class="punctuation token">:</span> <span class="number token">480</span> <span class="punctuation token">}</span>
+ <span class="punctuation token">}</span><span class="punctuation token">,</span>
+ optional<span class="punctuation token">:</span> <span class="punctuation token">[</span>
+ <span class="punctuation token">{</span> width<span class="punctuation token">:</span> <span class="number token">650</span> <span class="punctuation token">}</span><span class="punctuation token">,</span>
+ <span class="punctuation token">{</span> width<span class="punctuation token">:</span> <span class="punctuation token">{</span> min<span class="punctuation token">:</span> <span class="number token">650</span> <span class="punctuation token">}</span><span class="punctuation token">}</span><span class="punctuation token">,</span>
+ <span class="punctuation token">{</span> frameRate<span class="punctuation token">:</span> <span class="number token">60</span> <span class="punctuation token">}</span><span class="punctuation token">,</span>
+ <span class="punctuation token">{</span> width<span class="punctuation token">:</span> <span class="punctuation token">{</span> max<span class="punctuation token">:</span> <span class="number token">800</span> <span class="punctuation token">}</span><span class="punctuation token">}</span><span class="punctuation token">,</span>
+ <span class="punctuation token">]</span>
+<span class="punctuation token">}</span></code></pre>
+ </li>
+ <li>RTSP streaming support is now available (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=929372" title="FIXED: [RTSP][User Story]Support basic RTSP streaming function.">バグ 929372</a>).</li>
+ <li>The Resource Statistics API is implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=951976" title="FIXED: API for Resource Statistics">バグ 951976</a>).</li>
+ <li>The Resource Timing API is implemented (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=822480" title="FIXED: Add in the Resource Timing API">バグ 822480</a>).</li>
+ <li>fastSeek API is now available for media elements (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=778077" title="FIXED: Implement fastSeek API on media elements (and switch the built-in controls over to it)">バグ 778077</a>).</li>
+ <li><span class="author-g-41mtsa1hor7b107c i">The <a href="/en-US/docs/Web/API/Network_Information_API">Network Information API</a> is now exposed to Firefox OS (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=960426" title="FIXED: Support Network Information API in Firefox OS">バグ 960426</a>).</span></li>
+ <li><span class="author-g-41mtsa1hor7b107c i"><span class="author-g-41mtsa1hor7b107c i">The Wifi capabilities of the device can now be returned using <code>WifiManager.getCapabilities()</code> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1002314" title="FIXED: [B2G]To have a webapi providing WIFI capabilities of device">バグ 1002314</a>).</span></span></li>
+ <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Navigator.vibrate" title="The Navigator.vibrate() method pulses the vibration hardware on the device, if such hardware exists. If the device doesn't support vibration, this method has no effect. If a vibration pattern is already in progress when this method is called, the previous pattern is halted and the new one begins instead."><code>Navigator.vibrate()</code></a> method behavior has been adapted to the latest specification: too long vibrations are now truncated (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014581" title="FIXED: Update Vibration API to conform to latest W3C spec">bug 1014581</a>).</li>
+ <li><span class="author-g-41mtsa1hor7b107c i">The <a href="/en-US/docs/Web/API/Device_Storage_API">Device Storage API</a> now has mount and unmount capabilities (privileged) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=971612" title='FIXED: Implement "mount", "unmount" API for device storage'>バグ 971612</a>).</span></li>
+ <li><span class="author-g-41mtsa1hor7b107c i"><span class="author-g-41mtsa1hor7b107c i">The Feature Detection API is now available (privileged) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=983502" title="FIXED: Implement and expose the feature detection API to privileged apps">バグ 983502</a>).</span></span></li>
+ <li> The <a class="new" href="https://developer.mozilla.org/en-US/docs/Web/API/MSISDN_Verification_API">MSISDN Verification API</a> has been added (privileged) (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=988469" title="FIXED: MSISDN verification API for privileged apps">bug 988469</a>).</li>
+ <li>A new CameraControl API is now available (privileged) (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=909542" title="FIXED: Camera Control API clean-up/streamline">バグ 909542</a>).</li>
+ <li>The <a href="https://developer.mozilla.org/en-US/docs/Web/API/Data_Store_API">Data Store API</a> has been made available to <a href="https://developer.mozilla.org/en-US/docs/Web/Guide/Performance/Using_web_workers">Web Workers</a> (certified) (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=949325" title="FIXED: C++ wrapper to support DataStore API on the worker">bug 949325</a>).</li>
+ <li>The <a href="/en-US/docs/Web/API/Device_Storage_API">Device Storage API</a> now uses the File System API spec (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=910412" title="FIXED: Change DeviceStorage API to use FileSystem API spec">バグ 910412</a>).</li>
+ <li><span class="author-g-41mtsa1hor7b107c i">The deprecated Audio Data API has been removed</span> (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=927245" title="FIXED: Remove deprecated Audio Data API implementation">バグ 927245</a>).</li>
+</ul>
+
+<h3 id="CSS">CSS</h3>
+
+<ul>
+ <li><code>position:sticky</code> is now supported, and used in Gaia app layout (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=886646" title="FIXED: implement position:sticky">バグ 886646</a>).</li>
+ <li><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow" title="The CSS flex-grow property specifies the flex grow factor of a flex item."><code>flex-grow</code></a> and  <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink" title="The CSS flex-shrink property specifies the flex shrink factor of a flex item."><code>flex-shrink</code></a> can now to transition between zero and non-zero values (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=996945" title="FIXED: Allow flex-grow / flex-shrink to transition between zero and nonzero values">bug 996945</a>).</li>
+</ul>
+
+<h3 id="Technology_support_improvements">Technology support improvements</h3>
+
+<ul>
+ <li>Firefox OS 2.0 now supports H.264 video hardware, allowing you to create and playback video encoded using this codec much more efficiently. See <a href="https://developer.mozilla.org/en-US/Firefox_OS/Media_support">Media support on Firefox OS</a> for details.</li>
+</ul>
+
+<h2 id="Older_versions">Older versions</h2>
+
+<p></p><div class="multiColumnList">
+<ul>
+<li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.4">Firefox OS 1.4 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.3">Firefox OS 1.3 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.2">Firefox OS 1.2 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li></ul>
+</div><p></p>
diff --git a/files/ja/archive/b2g_os/releases/2.1/index.html b/files/ja/archive/b2g_os/releases/2.1/index.html
new file mode 100644
index 0000000000..1621586fb7
--- /dev/null
+++ b/files/ja/archive/b2g_os/releases/2.1/index.html
@@ -0,0 +1,49 @@
+---
+title: Firefox OS 2.1 for developers
+slug: Archive/B2G_OS/Releases/2.1
+tags:
+ - '2.1'
+ - B2G
+ - Firefox OS
+ - Release Notes
+translation_of: Archive/B2G_OS/Releases/2.1
+---
+<div class="summary">
+<p><strong>Firefox OS 2.1</strong> は、現在プレリリース段階です。Gecko コンポーネントは <strong>Firefox 33/34</strong> をベースにしています。<span class="seoSummary">このページは、Firefox OS 2.1 で新しく実装された開発者向け機能について解説します。</span></p>
+</div>
+
+<div class="note">
+<p><strong>注記</strong>: Firefox OS Gecko 内にある Gecko 全般の機能については、<a href="/ja/docs/Mozilla/Firefox/Releases/33" title="/ja/docs/Mozilla/Firefox/Releases/33">Firefox 33 release notes for developers</a> や <a href="/ja/docs/Mozilla/Firefox/Releases/34" title="/ja/docs/Mozilla/Firefox/Releases/34">Firefox 34 release notes for developers</a> を参照してください。</p>
+</div>
+
+<h2 id="プラットフォームの変更">プラットフォームの変更</h2>
+
+<p>Firefox OS は "オリジン毎に単一のアプリ" のセキュリティポリシーを持っていました、しかしFirefox 34/Firefox OS 2.1 では (詳細情報は <a href="https://developer.mozilla.org/en-US/Apps/Build/installable_apps_for_Firefox_OS/App_manifest_FAQ#Can_I_have_more_than_one_app_at_my_origin.3F">この FAQ</a> を見て下さい。) 撤廃されました。古いバージョンをサポートする必要がある場合、別のオリジンでアプリをホストする事を考えて下さい; つまりひとつの戦略はアプリに<a href="https://developer.mozilla.org/en-US/Marketplace/Publishing/Adding_a_subdomain">別のサブドメインを生成する</a>事です。</p>
+
+<h2 id="Web_API_の変更点">Web API の変更点</h2>
+
+<ul>
+ <li><a href="/ja/docs/WebAPI/WebBluetooth">Web Bluetooth API</a> のペアリングイベントハンドラ — <a href="/ja/docs/Web/API/BluetoothAdapter/ondevicepaired" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter.ondevicepaired</code></a> および <a href="/ja/docs/Web/API/BluetoothAdapter/ondeviceunpaired" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter.ondeviceunpaired</code></a> — が追加されました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1036234" title="FIXED: Implement pairing in BluetoothAdapter (event handlers)">バグ 1036234</a> 参照)。</li>
+ <li><a href="/ja/docs/WebAPI/WebBluetooth">Web Bluetooth API</a> のペアリングメソッドが更新されました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1036233" title="FIXED: Implement pairing in BluetoothAdapter (methods)">バグ 1036233</a> 参照):
+ <ul>
+ <li>Promise&lt;void&gt; <a href="/ja/docs/Web/API/BluetoothAdapter/pair" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter.pair</code></a>(DOMString aAddress)</li>
+ <li>Promise&lt;void&gt; <a href="/ja/docs/Web/API/BluetoothAdapter/unpair" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter.unpair</code></a>(DOMString aAddress)</li>
+ <li>sequence&lt;BluetoothDevice&gt; <a href="/ja/docs/Web/API/BluetoothAdapter/getPairedDevices" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>BluetoothAdapter.getPairedDevices</code></a></li>
+ </ul>
+ </li>
+ <li><a href="https://dvcs.w3.org/hg/speech-api/raw-file/tip/speechapi.html">Web Speech API</a> のサポートが保留になりました: パッチは提出されています (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1032964" title="[B2G][SpeechRTC][User Story]: Enabling Voice input in Firefox OS">バグ 1032964</a> 参照)。</li>
+ <li><span class="author-g-41mtsa1hor7b107c i">FileHandle API を MutableFile にリネームし、LockedFile を FileHandle にリネームしました (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1006485" title="FIXED: FileHandle: Rename FileHandle to MutableFile and LockedFile to FileHandle">バグ 1006485</a> 参照)。</span></li>
+</ul>
+
+<h2 id="関連情報">関連情報</h2>
+
+<ul>
+ <li>Firefox OS 2.1 Notes (発行後にリンクされます。)</li>
+</ul>
+
+<h2 id="以前のバージョン">以前のバージョン</h2>
+
+<p></p><div class="multiColumnList">
+<ul>
+<li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/2.0">Firefox OS 2.0 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.4">Firefox OS 1.4 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.3">Firefox OS 1.3 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.2">Firefox OS 1.2 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li><li><a href="/ja/docs/Mozilla/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li></ul>
+</div><p></p>
diff --git a/files/ja/archive/b2g_os/releases/index.html b/files/ja/archive/b2g_os/releases/index.html
new file mode 100644
index 0000000000..69fae71478
--- /dev/null
+++ b/files/ja/archive/b2g_os/releases/index.html
@@ -0,0 +1,32 @@
+---
+title: Firefox OS 開発者向けリリースノート
+slug: Archive/B2G_OS/Releases
+tags:
+ - Firefox OS
+translation_of: Archive/B2G_OS/Releases
+---
+<h2 id="Firefox_OS_release_notes_by_version" name="Firefox_OS_release_notes_by_version">Firefox OS バージョン別リリースノート</h2>
+
+<p>ここでは、Firefox OS 向け Gaia と Gecko のリリースに関する情報を提供し、各バージョンで追加された機能や修正されたバグについて解説します。Firefox OS のバージョン別 API 対応表もあります。</p>
+
+<div class="multiColumnList">
+<ol>
+ <li><a href="/ja/Firefox_OS/Releases/1.0.1">Firefox OS 1.0.1 for developers</a></li>
+ <li><a href="/ja/Firefox_OS/Releases/1.1">Firefox OS 1.1 for developers</a></li>
+ <li><a href="/ja/Firefox_OS/Releases/1.2">Firefox OS 1.2 for developers</a></li>
+ <li><a href="/ja/Firefox_OS/Releases/1.3">Firefox OS 1.3 for developers</a></li>
+ <li><a href="/ja/Firefox_OS/Releases/1.4">Firefox OS 1.4 for developers</a></li>
+ <li><a href="/ja/Firefox_OS/Releases/2.0">Firefox OS 2.0 for developers</a></li>
+ <li><a href="/ja/Firefox_OS/Releases/2.1">Firefox OS 2.1 for developers</a></li>
+ <li><a href="/ja/Firefox_OS/Releases/2.2">Firefox OS 2.2 for developers</a></li>
+</ol>
+</div>
+
+<h2 id="Other_supporting_information" name="Other_supporting_information">その他の関連情報</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/API_support_table">Firefox OS API 対応表</a></dt>
+ <dd>利用可能な API の一覧と、それに対応している Firefox のバージョンを記載しています。</dd>
+ <dt><a href="/ja/docs/Web/Apps/App_permissions">アプリの許可設定</a></dt>
+ <dd>ホスト型、特権、認定 API の一覧に加えて、マニフェストの設定名、対応するアプリの種類、説明、アクセスプロパティ、デフォルト設定といった、インストール型アプリのマニフェストに記載すべき許可設定に関する情報があります。</dd>
+</dl>
diff --git a/files/ja/archive/b2g_os/running_custom_builds_in_the_app_manager/index.html b/files/ja/archive/b2g_os/running_custom_builds_in_the_app_manager/index.html
new file mode 100644
index 0000000000..7e856de7b0
--- /dev/null
+++ b/files/ja/archive/b2g_os/running_custom_builds_in_the_app_manager/index.html
@@ -0,0 +1,57 @@
+---
+title: WebIDEでのFirefox OS/Gaia のカスタマイズビルドの実行方法
+slug: Archive/B2G_OS/Running_custom_builds_in_the_App_Manager
+translation_of: Archive/B2G_OS/Developing_Gaia/Running_custom_builds_in_WebIDE
+---
+<div class="summary">
+ <p><span class="seoSummary">2014年後半、Firefox OSシミュレータは機能追加され、カスタムビルドしたシミュレータを起動できるようになりました。本ドキュメントでは設定方法と</span><a href="/en-US/docs/Tools/WebIDE" style="line-height: 1.5;">WebIDE</a>を使用しての起動方法を記載しています。</p>
+</div>
+<h2 id="準備"><span style="font-size: 2.14285714285714rem;">準備</span></h2>
+<p>まず最初にカスタムビルドしたシミュレータを動かす為の環境を整備しましょう。</p>
+<ol>
+ <li><span style="line-height: 1.5;">Firefox をインストールし </span><a href="/en-US/docs/Tools/WebIDE" style="line-height: 1.5;">WebIDE</a> を有効化します<span style="line-height: 1.5;"> (</span><em>ツール &gt; Web 開発 &gt; WebIDE</em><span style="line-height: 1.5;">)。</span></li>
+ <li>最新の <a href="http://nightly.mozilla.org/">B2G Desktop Nightly</a> をインストールするか <a href="https://developer.mozilla.org/en-US/Firefox_OS/Using_the_B2G_desktop_client#Building_the_desktop_client">自分でビルド</a>して下さい。</li>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">最新の Firefox OS simulator</a> (7.0pre7.20140113以上)のアドオンをインストールしてください。</li>
+ <li>Gaiaを <code>SIMULATOR=1 </code>を付与しビルドします。例として、Gaiaディレクトリ直下で <code>make SIMULATOR=1 PROFILE_FOLDER=profile-b2g</code> としてビルドします( <a href="/en-US/Firefox_OS/Platform/Gaia/Hacking#Make_options">Hacking Gaia</a> に詳しい説明が記載されています)。</li>
+</ol>
+<h2 id="シミュレータの設定">シミュレータの設定</h2>
+<p>カスタムビルドしたGaia, B2G Desktopを使用してシミュレータを動かすための設定を記載します。</p>
+<ol>
+ <li><span style="line-height: 1.5;">アドオンマネージャを表示してください(ツール</span><em> &gt; アドオン</em><span style="line-height: 1.5;">, もしくはURL欄に </span><code style="font-style: normal; line-height: 1.5;">about:addons</code><span style="line-height: 1.5;"> と入力)。</span></li>
+ <li>インストール済みのアドオンを表示するため拡張機能タブを選択します。</li>
+ <li>Firefox OS シミュレータのアドンが表示されているでしょう。例えば、<em>Firefox OS 1.3 Simulator 7.0pre.7.20140113</em>.といった様に表示されているはずです。</li>
+ <li>インストール済みのシミュレータから<em>設定</em>ボタンをクリックします。<br>
+ <img alt="the Firefox OS simulator preferences: Preferences, disable and remove." src="https://mdn.mozillademos.org/files/7241/about-addon.png" style="margin-right: auto; margin-left: auto; height: 63px; width: 1247px; display: block;"></li>
+ <li>WebIDEからカスタムビルドした実行環境(最新のB2G Desktop)を起動したくなるでしょう。<em> <em>Select a custom runtime executable</em> </em>の <em>選択</em>をクリックし選択することができます。Windows/Linuxでは明確かと思います。Macでは<span style="font-family: 'Courier New', 'Andale Mono', monospace;">/Applications/B2G.app/Contents/MacOS/b2g </span>に存在し、<span style="font-family: 'Courier New', 'Andale Mono', monospace;">Applications</span>ディレクトリにインストールされています。</li>
+ <li><em><em>Select a custom Gaia profile directory</em></em> も同様に選択することができ、WebIDEで動作するGaiaを変更することができます。この際、カスタムビルドしたGaiaを選択可能です(<em>gaia/profile-b2g</em>を選択してください)。</li>
+ <li><span style="line-height: 1.5;">カスタマイズしていないシミュレータに戻したい場合、は設定をリセットする必要があります。この際、アドオンを再インストールしたり削除したりするのではなく、新しいタブを開きURL欄に<em> about:config</em> と入力してください。その後、検索欄に fxos や simulator と入力し、"extensions.fxos_2_0_simulator@mozilla.org.customRuntime"  もしくは "extensions.fxos_2_0_simulator@mozilla.org.gaiaProfile" の設定値を見つけてください。これを右クリックし リセットを選択し、シミュレータを再起動することでカスタマイズしていないシミュレータに戻ります。</span></li>
+</ol>
+<h2 id="設定済みのシミュレータの使用方法">設定済みのシミュレータの使用方法</h2>
+<p>最後にカスタマイズしたシミュレータを使用してみましょう。</p>
+<ol>
+ <li> <a href="/en-US/docs/Tools/WebIDE">WebIDE</a> (<em>ツール &gt; Web 開発 &gt; WebIDE</em>) を選択します(また Shift-F8 を押しても同様の結果を得られます )。</li>
+ <li>メニューの一番右上のボタンをクリックします。</li>
+ <li>Firefox OS 1.3 (もしくはインストール済みの最新バージョンなど)をクリックします。これはカスタマイズしたものを設定したシミュレータとなります。</li>
+ <li>シミュレータは起動するでしょう。カスタマイズビルドした B2G Desktop 、Gaiaが起動します。</li>
+</ol>
+<p><img alt="a screenshot of the b2g desktop simulator " src="https://mdn.mozillademos.org/files/7239/b2g-desktop.png" style="width: 434px; height: 616px; display: block; margin: 0px auto;"></p>
+<h2 id="b2gのカスタムバイナリのビルド" style="margin-bottom: 20px; padding-top: 0px; padding-left: 0px; border: 0px; line-height: 30px; font-size: 2.14285714285714rem;"><a name="custom-b2g" style="padding-left: 0px; border: 0px;">b2gのカスタムバイナリのビルド</a></h2>
+<p style="padding-top: 0px; padding-left: 0px; border: 0px;">これは任意の手順となります。もしも自分で作った<a href="https://developer.mozilla.org/en-US/docs/mozilla-central">mozilla-central</a>のパッチをテストするときに有用な方法となります。</p>
+<div class="note" style="padding-top: 10px; padding-left: 15px; border: 5px solid rgba(231, 228, 157, 0.14902);">
+ <p style="padding-top: 0px; padding-left: 0px; border: 0px;"><strong style="line-height: 1.5;">注記</strong><span style="line-height: 1.5;">: ビルドをすることで、どのB2G Desktop プラットフォームであってもビルドディレクトリにアドオンが生成されます。カスタムビルドしたシミュレータを使用するには最も簡単な方法になります。</span></p>
+</div>
+<ol>
+ <li><a href="https://developer.mozilla.org/en-US/docs/mozilla-central">mozilla-central</a>のコードをチェックアウトしてきて下さい</li>
+ <li>あなたがテストしたいパッチを適用して下さい</li>
+ <li>mozconfigに以下の定義が含まれることを確認して下さい:<br>
+ <code>ac_add_options --enable-application=b2g<br>
+ FXOS_SIMULATOR=1<br>
+ GAIADIR=/home/alex/gaia    # 必須(FXOS_SIMULATOR設定時) xpiファイルを作成する場合に指定する<br>
+ MOZTTDIR=/path/to/moztt   # オプション フォントファイル</code></li>
+ <li>
+ <p style="padding-top: 0px; padding-left: 0px; border: 0px;"><code>./mach build &amp;&amp; ./mach package を実行する</code></p>
+ </li>
+ <li>
+ <p style="padding-top: 0px; padding-left: 0px; border: 0px;">GAIADIRを指定していれば、あなたのobdir配下にアドオンであるシミュレータのxpiファイルが生成されています。</p>
+ </li>
+</ol>
diff --git a/files/ja/archive/b2g_os/running_tests_on_firefox_os_for_developers/index.html b/files/ja/archive/b2g_os/running_tests_on_firefox_os_for_developers/index.html
new file mode 100644
index 0000000000..94374b0c24
--- /dev/null
+++ b/files/ja/archive/b2g_os/running_tests_on_firefox_os_for_developers/index.html
@@ -0,0 +1,58 @@
+---
+title: 'Firefox OS上でテストを実行する: 開発者向けガイド'
+slug: Archive/B2G_OS/Running_Tests_on_Firefox_OS_for_Developers
+translation_of: Archive/B2G_OS/Running_Tests_on_Firefox_OS_for_Developers
+---
+<div class="summary">
+ <p>Mozillaの自動化ハーネスチームは自動テストインフラストラクチャを拡張しFirefox OSに適合させるために特に (古いハーネスが特化していた) ブラウザではなく電話向けOSのテストを対象とした新しいハーネスを記述する努力をしました。Firefox OSのアーキテクチャはすべてこれらのテストハーネスを動作させ適用する予定です。しかしそれは開発者がテストを実行し、パッチが動作するか否かを見るのをとても複雑にします。この記事はMozillaで利用可能なすべてのテストリソースの意味を理解することをめざします .</p>
+</div>
+<h2 id="導入">導入</h2>
+<p>もしあなたがGecko開発者なら、すでに親しんでいるテスト自動化についてのFirefox OSに特化したドキュメントを見るべきでしょう: <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Mochitests">mochitest</a>、<a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Reftests">reftest</a>、そして<a href="https://developer.mozilla.org/en-US/Firefox_OS/Platform/Automated_testing/XPCShell">xpcshell</a>.</p>
+<p>もしあなたがGaiaまたはアプリ開発者、あるいはOSの実際の動作をより深く "エンドユーザ" スタイルでテストすることに興味があるGecko開発者なら、Gaiaのテストスイートを見る必要があるでしょう。二つの重要なテストスイートがあります:</p>
+<ul>
+ <li><a href="/en-US/Firefox_OS/Platform/Automated_testing/gaia-ui-tests">Gaia UIテスト</a>:  これらのテストはPythonベースで作られており、デスクトップとデバイスの両方で実行できます。これらのテストはたとえば耐久力テスト (たくさんの連絡先を電話帳アプリに追加したり、繰り返しロックスクリーンアプリのロックを解除したり、たくさんのアラームをアラームアプリに設定したり、等)、機能性テスト (たとえば、FMラジオアプリで放送局を探したり、Cameraアプリで写真を撮ったり) やアクセシビリティテスト (たとえば、スクリーンリーダー機能をONにしたりOFFにしたり) のようにGaia UIの様々な側面をテストします。</li>
+ <li><a href="https://github.com/mozilla-b2g/gaia/#integration-tests">Gaia総合テスト</a>: これらのテストはJavaScriptベースで作られており、<a href="https://github.com/mozilla-b2g/marionette-js-runner">marionette-js-runner</a>を使っています。そしてこの記事を書いている時点ではB2Gデスクトップビルド上でのみ実行可能です (実機のサポートは間近です)。これらのテストは、Gaiaと他のアプリやサービスとの連携、たとえば、カレンダーアプリはCalDAVサーバーを追加することができるか、またはブラウザアプリはサーチエンジンと連携できるかなどの様々な側面をテストします。</li>
+</ul>
+<p>実際には優先するツールチェインとあなたがやりたいと考えているテストに応じてどちらか一つを選んでください。</p>
+<p>移動してこれらのテストが実行されているところを見てみましょう。</p>
+<h2 id="Gaia_UIテストの実行">Gaia UIテストの実行</h2>
+<p><a href="https://github.com/mozilla-b2g/gaia/tree/master/tests/python/gaia-ui-tests">Gaia UIテスト</a>スイートは実機とB2Gデスクトップビルドで実行可能です。しかし我々はこのセクションでは可能な限り常に実機ではベストであるように実機での実行にチームを集中しています。</p>
+<p>このテストは<em><strong>破壊的</strong></em>であることに注意してください。あなたはテストを実行する前に電話の各データをバックアップすべきです。どのテストを実行するかに応じて、それらは電話を掛けることができます。実行と電話のバックアップの仕方、SIMカードを取り除くなどについてとても注意深く行うことを意識してください。あなたがすでにエンジニアリングビルドを行っているならそれらを実行することは本当にたやすいでしょう。ここにあるように。</p>
+<h3 id="ワンタイムセットアップ">ワンタイムセットアップ</h3>
+<p>あなたはGaiaディレクトリの位置を変えないと仮定するならば、以下のステップを一度だけ実行する必要があります。Python virtualenvを作り (すでにインストールしていないなら<a href="https://pypi.python.org/pypi/virtualenv">virtualenvツールをインストール</a>します)、アクティブにし、Gaia UIテストツールをvirtualenvにインストールします。以下のステップで仮想環境を作作って、あなたのGaiaリポジトリにあるGaia UIテストハーネスの実行を確認します (それらは何かをデバッグする場合に有用です)。</p>
+<pre><code class="brush: bash">$ virtualenv gaia_ui_venv # This will create a gaia_ui_venv directory where the virtual environment lives. It can be anywhere on your system.
+$ source gaia_ui_venv/bin/activate # This activates our virtualenv
+(gaia_ui_venv)$ cd &lt;b2groot&gt;/gaia/tests/python/gaia-ui-tests;python setup.py develop # This installs the gaia ui harness into your virtual environment. </code></pre>
+<p>もしGaia UIテストのためにすでに仮想環境を作っているなら、以下だけ行えばよいでしょう:</p>
+<pre><code class="brush: bash">$ source gaia_ui_venv/bin/activate</code></pre>
+<h3 id="テストの実行">テストの実行</h3>
+<p>最初にtestvarsファイルを作る必要があります。これをするには、一つ以上標準をコピーし、<strong>このテストは電話上のコンテンツをすべて破壊するかもしれない</strong>という警告が止める属性を加えます。前後で状態を変えないのはよいテストです。テストが行われる前に電話がバックアップされることを確認する必要があるでしょう。ここにある指示は仮想環境が起動され且つ<code>gaia/tests/python/gaia-ui-tests</code>で行われることを仮定しています。</p>
+<pre><code class="brush: bash">(gaia_ui_venv)$ cp gaiatest/testvars_template.json testvars.json
+# testvars.jsonのコピーを編集して、JSONに次の属性を追加します:
+"acknowledged_risks": true,
+"skip_warning": true,</code></pre>
+<p>テストが実行される前にテストランナーがMarionetteのポートにアクセスでき、電話がUSBで接続されている必要があります。<code>gaiatest/tests</code>にあるテストを一つ選んで実行できます。 たとえば、電話帳のテストがしたいなら以下のようにします:</p>
+<pre><code>(gaia_ui_venv)$ adb forward tcp:2828 tcp:2828
+(gaia_ui_venv)$ gaiatest --testvars=testvars.json --address=localhost:2828 gaiatest/tests/functional/contacts/</code></pre>
+<div class="note">
+ <p><strong>注意</strong>: UIテストが利用可能か調べるには、<a href="https://github.com/mozilla-b2g/gaia/tree/master/tests/python/gaia-ui-tests/gaiatest/tests">Gaiaリポジトリ内のgaiatestディレクトリ</a>を参照します。</p>
+</div>
+<p>Python virtualenvから抜けるためには、virtualenvの特殊コマンド<code>deactivate</code>を使います:</p>
+<pre><code>(gaia_ui_venv)$ deactivate
+$</code></pre>
+<div class="note">
+ <p><strong>注意</strong>: Gaia UIテストについてさらに詳細な情報を学びたいなら、<a href="/en-US/Firefox_OS/Platform/Automated_testing/gaia-ui-tests">Gaia UIテスト</a>のページに移動してください。</p>
+</div>
+<h2 id="Gaia総合テストの実行">Gaia総合テストの実行</h2>
+<p>現在、<a style="line-height: 1.5;" href="https://github.com/mozilla-b2g/gaia/#integration-tests">Gaia総合テスト</a>を実行するにはB2G Desktopビルドを使わなくてはなりません (注釈: 近いうちにデバイス上でも利用可能になります)。ではその方法を見ていきましょう。</p>
+<p>These just require a Gaia tree and NodeJS to be installed on your computer; the following command will do the rest:</p>
+<pre><code>$ cd gaia $ make test-integration </code></pre>
+<p>That's it ? this instruction will download a B2G desktop build, and start running the tests in that build.</p>
+<div class="note">
+ <p><strong>Note</strong>: To learn more about Gaia Integration Tests, read the <a href="https://github.com/mozilla-b2g/gaia/#integration-tests">Gaia Integration Tests</a> Github repo.</p>
+</div>
+<div class="note">
+ <p><strong>Note</strong>: To find out what integration tests are available, look in the <a href="https://github.com/mozilla-b2g/gaia/tree/master/apps">apps directory in the Gaia repo</a>; integration tests can be found in <code>test/marionette/</code> subfolders.</p>
+</div>
+<h2 id="Wrapping_Up">Wrapping Up</h2>
+<p>As always, work is underway to make all our tests easier to run both locally for developers as well as in our automation systems. Feel free to drop into the #ateam channel any time you have questions about test automation for Firefox OS or any of the Mozilla automation tools.</p>
diff --git a/files/ja/archive/b2g_os/security/application_security/index.html b/files/ja/archive/b2g_os/security/application_security/index.html
new file mode 100644
index 0000000000..b0ced3571c
--- /dev/null
+++ b/files/ja/archive/b2g_os/security/application_security/index.html
@@ -0,0 +1,132 @@
+---
+title: アプリケーションセキュリティ
+slug: Archive/B2G_OS/Security/Application_security
+tags:
+ - Apps
+ - Firefox OS
+ - Guide
+ - Mobile
+ - Security
+translation_of: Archive/B2G_OS/Security/Application_security
+---
+<div class="summary">
+ <p>本記事では、Firefox OS のアプリケーションのセキュリティモデルについて、詳しく説明します。</p>
+</div>
+<p>Firefox OS に導入した主要な Web アプリのセキュリティ制御は以下のとおりです:</p>
+<ul>
+ <li>Web アプリはブラウザ内で不用意にナビゲートされるのではなく、明示的にインストールおよび起動されます。アプリは使用する前にインストールしなければならず、またセキュリティコントロールはユーザを保護するために、アプリの更新や削除を管理します。</li>
+ <li>新たな Web API へのアクセスは許可設定システムによって制御され、アプリはインストール前に、そのシステムに対して使用するつもりである許可設定を宣言しなければなりません。より強力な API へのアクセスを得るためには、アプリが一定の要件を満たし、また Marketplace によってレビューを受け、承認され、さらに署名されなければなりません。</li>
+ <li>Web アプリはサンドボックス化されますので、自身のリソース (Cookie、オフラインストレージ、IndexedDB データベースなど) だけを見ることができます。2 つのアプリが同一 URL のページを読み込んだとしても、それら 2 つのページは別々のアプリ内で実行しているため、同一生成元であるとは判断されません。</li>
+</ul>
+<h3 id="App_Types" name="App_Types">アプリの種類</h3>
+<p>Firefox OS は 3 種類の Web アプリをサポートします: "<strong>web</strong>"、"<strong>特権 (<span style="color: green;">privileged</span>)</strong>"、<strong>内部 (<span style="color: green;">internal</span>)</strong> ("<strong>(認定 (<span style="color: green;">certified</span>))</strong>") です。アプリの種類は<a href="/ja/docs/Apps/Manifest" title="Apps/Manifest">マニフェスト</a>で宣言され、また要求してよい許可設定の一覧が決まります。</p>
+<ul>
+ <li><strong>Web アプリ:</strong> ほとんどのサードパーティーアプリは "web" アプリになるでしょう。これは既定の種類であり、すでに Web 向けに公開されているものを上回る許可設定は承諾されません。Web アプリはどの Web サイトからでも、付加的な検証なしにインストールできます。<a href="/ja/docs/Web/Apps/Packaged_apps" title="Web/Apps/Packaged_apps">パッケージ型</a>アプリにすることもできますが、追加の許可設定はまったく認められません。</li>
+ <li><strong>特権アプリ</strong>: これらのアプリは高い許可設定を要求でき、また<em>特権</em>アプリとしての検証や署名を Marketplace から受けなければなりません。</li>
+ <li><strong>内部/認定アプリ: </strong>認定アプリは現在、デバイスへのプリインストールのみ可能です。</li>
+</ul>
+<div class="note">
+ <p><strong>注記</strong>: これら 3 種類について詳しくは、<a href="/ja/docs/Apps/Manifest#type" title="Apps/Manifest#type">アプリマニフェスト</a>のドキュメントをご覧ください。</p>
+</div>
+<h3 id="App_Delivery" name="App_Delivery">アプリの提供</h3>
+<p>Firefox OS で、アプリは 2 種類の仕組みで提供されます: ホスト型 または パッケージ型 です。通常の Web アプリはどちらの仕組みでも提供できるのに対して、特権アプリと認定アプリはパッケージ型であることが必要です。</p>
+<h4 id="Hosted_apps_2" name="Hosted_apps_2"><span class="mw-headline" id="Hosted_apps">ホスト型アプリ</span></h4>
+<p>ホスト型アプリは、開発者の Web サーバに置かれた<a class="external text" href="/ja/docs/Apps/Manifest" rel="nofollow">アプリケーションマニフェスト</a>だけで構成されます。マニフェストには、アプリを起動したときにどのページを表示するかを示す <a href="/ja/Apps/Manifest#launch_path">launch_path</a> が含まれています。セキュリティの視点から、ホスト型アプリは通常の Web サイトにとてもよく似た動作になります。ホスト型アプリで読み込まれたページの URL は、Web サーバ上にある当該ページ、あるいは以前に appcache へ保存されている場合はデバイスから読み込まれたページが持つ、通常の URL になります。</p>
+<h4 id="Packaged_apps_2" name="Packaged_apps_2"><span class="mw-headline" id="Packaged_apps">パッケージ型アプリ</span></h4>
+<p><strong>パッケージ型アプリ</strong>は Web サーバ上にリソースを持つ代わりに、すべてのリソース (HTML、CSS、JavaScript、アプリマニフェストなど) を zip ファイルに収めた Open Web App です。この形式について詳しくは、<a href="/ja/docs/Apps/Packaged_apps" title="Apps/Packaged_apps"> パッケージ型アプリ</a>をご覧ください。</p>
+<h3 id="App_Origin" name="App_Origin">アプリの生成元</h3>
+<p>ホスト型アプリではアプリの生成元が、<a class="external text" href="/ja/docs/Apps/Manifest" rel="nofollow">アプリケーションマニフェスト</a>を置いている場所の生成元になります。</p>
+<p>パッケージ型アプリの生成元はインストール時に割り当てられ、アプリケーションごとに固有です。<a href="/ja/Apps/Publishing/Packaged_Apps#Types_of_packaged_apps">特権アプリと内部アプリ</a>はアプリケーションマニフェストの <a href="/ja/Apps/Manifest#origin">origin</a> パラメータを指定することで、特定の生成元を要求できます。</p>
+<h3 id="App_Installation" name="App_Installation"><strong>アプリのインストール</strong></h3>
+<p>アプリは <a href="/ja/docs/JavaScript_API" title="JavaScript_API">Apps JavaScript API</a> を通してインストールします:</p>
+<ul>
+ <li>ホスト型アプリ: ホスト型アプリは <code>navigator.mozApps.<a href="/ja/docs/Web/API/Apps.install" title="Web/API/Apps.install">install</a>(manifestURL)</code> を呼び出してインストールします。ここで manifestURL は、アプリの場所を示す URL です。詳しくは <a href="/ja/docs/DOM/Apps.install">Installing Apps</a> をご覧ください。</li>
+ <li>パッケージ型アプリ: パッケージ型アプリは <code>navigator.mozApps.<a href="/ja/docs/Web/API/Apps.installPackage" title="Web/API/Apps.installPackage">installPackage</a>(packageURL)</code> を呼び出してインストールします。パッケージ型アプリではメインのアプリケーションマニフェストがパッケージ自体の中に保管されていますので、それは署名されています。インストールプロセスを開始するために使用する、第 2 の "ミニマニフェスト (<span style="color: green;">mini-manifest</span>)" があります。詳しくは <a href="/ja/docs/DOM/Apps.installPackage">Installing Packaged Apps</a> および <a href="/ja/docs/Apps/Packaged_apps" title="Apps/Packaged_apps">パッケージ型アプリ</a>をご覧ください。</li>
+</ul>
+<p>アプリが実際に Web アプリとしてインストールされるよう望んでいることを保証するため、Web サイトがアプリケーションマニフェストを偽ることができないようにしなければなりません。これは、マニフェストを特定の MIME タイプ <code>application/x-web-app-manifest+json</code> での提供するよう求めることで実現します。この制限はマニフェストが示すアプリとアプリのマニフェストが、アプリのインストールを要求したページと同一生成元であるときに緩和されます。</p>
+<h3 id="Updates_2" name="Updates_2"><span class="mw-headline" id="Updates">更新</span></h3>
+<p>アプリの更新プロセスは、<a href="/ja/docs/Apps/Updating_apps" title="Apps/Updating_apps">アプリの更新</a>で説明しています。</p>
+<h2 id="Permissions" name="Permissions">許可設定</h2>
+<p>アプリは、通常の Web サイトに許可されているものより上位の追加権限を許可されることができます。デフォルトで、アプリは通常の Web ページと同じ許可設定を持ちます。追加の許可設定を得るための最初のステップは、アプリで希望する追加設定をアプリケーションマニフェストに列挙することです。</p>
+<h3 id="Manifest_Declaration" name="Manifest_Declaration">マニフェストでの宣言</h3>
+<p>アプリが必要とするそれぞれの追加許可設定のためマニフェスト内に許可設定を、なぜアプリがそれを必要かについて人間が読める説明を伴って列挙しなければなりません。例えばアプリが <a href="/ja/docs/Web/API/window.navigator.geolocation" title="Web/API/window.navigator.geolocation">navigator.geolocation</a> API を使用したい場合は、マニフェストに以下の内容を含めなければなりません:</p>
+<pre class="brush: html">"permissions": {
+ "geolocation":{
+<code class="language-js"><span class="token string"> "description"</span><span class="token punctuation">:</span> <span class="token string">"Required for autocompletion in the share screen"</span><span class="token punctuation">,</span></code>
+ }
+},
+</pre>
+<p>これは Web ページが通常行うのと同じ方法で、アプリが geolocation について問い合わせることを可能にします。マニフェストについて詳しくは、<a href="/ja/docs/Apps/Manifest" title="Apps/Manifest">アプリマニフェスト</a>をご覧ください。</p>
+<div class="note">
+ <p><strong>注記</strong>: 現在、許可設定を使用する意図はユーザに公開されません。<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=823385" title="https://bugzilla.mozilla.org/show_bug.cgi?id=823385">バグ 823385</a> をご覧ください。</p>
+</div>
+<h3 id="Granting_Permissions" name="Granting_Permissions">許可設定の承諾</h3>
+<p>マニフェストで許可設定を要求しているとき、その許可設定は <em>allow</em> または <em>prompt</em> に設定されます。allow 型の許可設定はマニフェストで宣言されていることにより、さらなる同意なしに承諾されます。prompt 型の許可設定では、ユーザは関連する API へ最初にアクセスするときに問い合わせを受け、API が承諾を受ける前に選択しなければなりません。通常、Firefox OS はプライバシーへの影響がある許可設定についてユーザに問い合わせます。これはユーザが何を質問されているかを理解する上で合理的です。例えば連絡先へのアクセスは問い合わせされますが、生の TCP コネクション作成へのアクセスは暗黙的に許可されます。これはその許可設定を許可することについて、セキュリティ面で暗示することをユーザが理解することが合理的ではないためです。allow 型の許可設定の使用は Marketplace のセキュリティレビューのプロセスの一部として、ユーザの保護を確実にするためにレビューされます。</p>
+<h3 id="Revoking_Permissions" name="Revoking_Permissions">許可設定の取り消し</h3>
+<p>ユーザは prompt の許可設定について考えを変えることができ、また Firefox OS の設定アプリでそれらの許可設定を取り消すことが可能です。しかし、ユーザは allow 型の許可設定を変更できません。</p>
+<h2 id="Web_App_Sandbox" name="Web_App_Sandbox">Web アプリのサンドボックス</h2>
+<h3 id="Data_stored_per_app_2" name="Data_stored_per_app_2"><span class="mw-headline" id="Data_stored_per_app">アプリごとのデータ保管</span></h3>
+<p>それぞれのアプリは分離されたサンドボックス内で実行します。これは、アプリによって保存されるすべてのデータが、他のアプリによって保存されるデータから分離されることを意味します。このデータには Cookie のデータ、localStorage のデータ、indexedDB のデータ、サイトの許可設定といったデータも含まれます。</p>
+<p><img alt="A diagram showing three Firefox OS apps all open is separate sandboxes, so none of them can affect each other." src="https://mdn.mozillademos.org/files/7091/sandbox.png" style="width: 1040px; height: 437px; display: block; margin: 0px auto;"></p>
+<p>これはユーザが 2 つのアプリ A と B をインストールしている場合に、それらのアプリは完全に別の Cookie、別のローカルデータ、別の許可設定を持つことを意味します。また、両方のアプリが同一の生成元を指す <a href="/ja/docs/Web/HTML/Element/iframe" title="HTML の &lt;iframe> 要素は、ブラウジングコンテキスト (browsing context) の入れ子を表現し、事実上現在のページに他の HTML ページを埋め込むことができます。HTML 4.01 では、文書は head および body、または head および frameset を持つことができ、body と frameset の両方は持ちません。しかし、&lt;iframe> は通常の文書 body 内で使用できます。ブラウジングコンテキストはそれぞれ、セッション履歴とアクティブな文書を持ちます。埋め込みコンテンツを含む側のブラウジングコンテキストを、親ブラウジングコンテキストと呼びます。トップレベルのブラウジングコンテキスト (親を持ちません) は通常ブラウザーウィンドウです。"><code>&lt;iframe&gt;</code></a> を開いた場合でも適用されます。すなわち、アプリ A とアプリ B の両方が "<a class="external free" href="http://www.mozilla.org" rel="nofollow">http://www.mozilla.org</a>" を指す <code>&lt;iframe&gt;</code> を開いた場合、両方のアプリが Web サイトを表示しますが、その Web サイトは 2 つのアプリで別々の Cookie を使用して読み込みおよび表示されます。</p>
+<p>その結果、例えばユーザがアプリ A を使用して Facebook にログインしても、アプリ B がユーザの Facebook アカウントと対話できるように作用することはありません。ユーザがアプリ A でログインしたときに設定される Facebook のログイン Cookie は、アプリ A だけで使用可能です。アプリ B が Facebook を <code>&lt;iframe&gt;</code> で開いても Cookie がありませんので、ユーザのアカウントページではなく Facebook のログインページを受け取ります。</p>
+<h3 id="Apps_can't_open_each_other" name="Apps_can't_open_each_other"><span class="mw-headline" id="Apps_can.27t_open_each_other">アプリはお互いを開くことができない</span></h3>
+<p>これは、アプリが iframe を使用して他のアプリを開くことができないという意味です。アプリ A が、アプリ B の URL を src に設定した <code>&lt;iframe&gt;</code> を作成した場合でも、実際はアプリ B を <code>&lt;iframe&gt;</code> で開いていません。単に、URL の場所にある Web サイトを開いているだけです。アプリ B の Cookie は使用しませんので、アプリ B がユーザのデバイスにインストールされていない場合と変わらない動作になります。</p>
+<p>これはパッケージ型アプリにも適用します (詳しくは後述します)。アプリ A がパッケージ型アプリ B を、アプリ B の <code>app://</code> URL を指す <code>&lt;iframe&gt;</code> を使用して開こうとしても、読み込みは失敗します。この結果が 404 あるいはまだ決まっていない他の種類のエラーになるとしても、読み込みは確実に失敗します。また、アプリ B がインストールされているかをアプリ A が判別できないようにするため、アプリ B がユーザのデバイスにインストールされていてもいなくても同じように失敗します。</p>
+<p>アプリ A のトップレベルフレームでアプリ B の URL へナビゲートする場合も同じことが発生します。常にアプリを開いているフレームを把握するようにしていますので、アプリ A のフレームでアプリ B の URL を読み込もうとしたときに、これまで説明した 2 つの状況と同じ動作になります。つまり、Cookie や他のローカルデータなどアプリ B のリソースを使用する方法はありません。</p>
+<h3 id="Motivation_2" name="Motivation_2"><span class="mw-headline" id="Motivation">動機</span></h3>
+<p>サンドボックスの手法には、利点と欠点の両方があります。欠点は、ユーザが複数のアプリで同じ Web サイトと対話する場合に、すべてのアプリでログインを行わなければならないことです。同様に、ローカルへのデータ保管を希望する Web サイトとユーザが複数のアプリで対話する場合に、それぞれのアプリでデータが重複することになり、データが大量である場合に問題が発生する可能性があります。</p>
+<p>サンドボックスの手法の主な利点は、より安定的なモデルであるということです。アプリをインストールすることで別のアプリが動作しなくなるといった、複数のアプリが第三者の Web サイトを通して予期せぬ方法で互いに対話できる方法はありません。またアプリをアンインストールするときに、別のアプリ用のデータを削除できる方法や、アンインストールするアプリへの機能的な依存により別のアプリが動作しなくなることもありません。</p>
+<p>セキュリティの大きな利点もあります。ユーザは、SketchGame アプリが Facebook の Web サイトにあるバグや問題点を悪用してユーザの Facebook データを狙う攻撃を始めるかもしれないと悩む必要なしに、Facebook へログインする AwesomeSocial アプリを安全に使用できます。</p>
+<p>また、プライバシーについても利点があります。ユーザは PoliticalPartyPlus アプリを、MegaCorpEmployeeApp アプリがそのアプリがインストールされたことやどのようなデータが作成されたかを検出できるのではと悩む必要なしに、安全にインストールできます。</p>
+<h3 id="Sandboxed_Permissions_2" name="Sandboxed_Permissions_2"><span class="mw-headline" id="Sandboxed_Permissions">許可設定のサンドボックス化</span></h3>
+<p>Web サイトのデータがアプリごとにサンドボックス化されるのと同様に、許可設定の承諾もサンドボックス化されます。アプリ A が <a class="external free" href="http://maps.google.com" rel="nofollow">http://maps.google.com</a> からページを読み込んで、そのページが Geolocation の使用を求めたとします。ユーザが "はい、また常時この決定を記憶してください" とした場合、<a class="external free" href="http://maps.google.com" rel="nofollow">http://maps.google.com</a> はアプリ A で Geolocation にアクセスできることだけを意味します。次にアプリ B が <a class="external free" href="http://maps.google.com" rel="nofollow">http://maps.google.com</a> を開いても、そのページはユーザが再び許可設定を承諾しない限り Geolocation にアクセスできません。</p>
+<p>また通常のブラウザと同様に、許可設定は生成元ごとに分けられます。アプリ A が Geolocation 使用の許可設定を承諾された場合、これはアプリ A で実行するすべての生成元が Geolocation 使用の許可を得たということではありません。アプリ A が <a class="external free" href="http://maps.google.com" rel="nofollow">http://maps.google.com</a> を指す <code>&lt;iframe&gt;</code> を開いていても、<a href="http://docs.google.com"><span class="external free">http://docs.google.com</span></a> は Geolocation へのアクセスを承諾される前に、ユーザへ許可設定について問い合わせなければなりません。</p>
+<h3 id="Browser_API_Sandbox" name="Browser_API_Sandbox">ブラウザ API サンドボックス</h3>
+<p>ブラウザのように多数の URL を開くアプリケーションをより安全にするため、<em>browserContent フラグ</em>を追加しました。browserContent フラグは各アプリにサンドボックスを 1 つではなく 2 つ設けることを可能にします。ひとつはアプリ自身用、もうひとつはアプリが開く "web コンテンツ" 用です。例えば:</p>
+<p>MyBrowser アプリが <a class="external free" href="https://mybrowser.com" rel="nofollow">https://mybrowser.com</a> ドメインから読み込まれるとします。このドメインは、内部でスクリプトやリソースを読み込みます。スクリプトやリソースはこのドメインに<em>属して</em>います。</p>
+<p>ここでアプリ内のページが <code>&lt;iframe mozbrowser&gt;</code> を作成すると、その <code>&lt;iframe&gt;</code> で使用する別のサンドボックスが作成されます。このサンドボックスは、アプリで使用するサンドボックスとは異なります。すなわち、その <code>&lt;iframe&gt;</code> が <a class="external free" href="https://mybrowser.com" rel="nofollow">https://mybrowser.com</a> にナビゲートした場合、<code>&lt;iframe mozbrowser&gt;</code> 内では別の Cookie を使用することになります。同様に、<code>&lt;iframe mozbrowser&gt;</code> 内部のコンテンツはアプリが開いたものとは別の IndexedDB や localStorage のデータベースを参照します。</p>
+<p>またこれは、MyBrowser アプリが位置に基づいたブラウジングを実装するために、例えば Google マップと連携したい場合にも適用されます。アプリが <a class="external free" href="http://maps.google.com" rel="nofollow">http://maps.google.com</a> を指す <code>&lt;iframe&gt;</code> を開いた場合、そこでは <a class="external free" href="http://maps.google.com" rel="nofollow">http://maps.google.com</a> の Web サイト向けの Cookie のセットを受け取ります。そしてユーザが Web コンテンツ領域内、つまり <a class="external free" href="http://maps.google.com" rel="nofollow">http://maps.google.com</a> を指す <code>&lt;iframe mozbrowser&gt;</code> 内で操作したときは、トップレベルのアプリとは別の Cookie や許可設定を使用します。</p>
+<p>この仕組みが有用な別の例として、Yelp のようなアプリがあります。Yelp は、アプリ内で直接レストランの Web サイトを訪問できます。レストランの Web サイトを開くために <code>&lt;iframe mozbrowser&gt;</code> を使用することで、Yelp のアプリは、レストランの Web サイトが逆に Yelp のアプリを指す (<a class="external free" href="http://yelp.com" rel="nofollow">http://yelp.com</a> を指す) <code>&lt;iframe&gt;</code> を含むことができないことが保証されます。それを行うと、Web サイトでは Yelp のアプリではなく Yelp の Web サイトだけを受け取るでしょう。よって、iframe 内にある Yelp の Web サイトは Yelp アプリの許可設定やデータを共有しませんので、レストランの Web サイトはアプリに対して攻撃を行える手段がありません。</p>
+<h2 id="App_Security_Summary" name="App_Security_Summary">アプリセキュリティのまとめ</h2>
+<p>以下の表は、さまざまな種類の Firefox OS アプリのまとめと、Firefox OS で実行する Open Web Apps の形式、インストール、更新プロセスの説明を掲載したものです。</p>
+<table>
+ <caption>
+ Web アプリの種類</caption>
+ <thead>
+ <tr>
+ <th scope="col">型</th>
+ <th scope="col">提供方式</th>
+ <th scope="col">許可設定モデル</th>
+ <th scope="col">インストール</th>
+ <th scope="col">更新</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Web</td>
+ <td>ホスト型またはパッケージ型</td>
+ <td>未検証の Web コンテンツをさらしても危険ではない、注意の必要性が低い許可設定</td>
+ <td>どこからでもインストールできる</td>
+ <td>アプリのインストール元や提供方法に応じて、ユーザから透過的に、または Marketplace で明示的に更新できます。</td>
+ </tr>
+ <tr>
+ <td>Privileged</td>
+ <td>パッケージ型および署名付き</td>
+ <td>アプリの検証や認証を必要とする、特権 API</td>
+ <td>信頼された Marketplace からインストールする</td>
+ <td>信頼された Marketplace で更新を行います。ユーザは更新のダウンロードやインストールを認めるかを問われます。</td>
+ </tr>
+ <tr>
+ <td>Internal</td>
+ <td>パッケージ型</td>
+ <td>サードパーティのアプリが使用できない、強力かつ危険な API</td>
+ <td>デバイスへのプリインストール</td>
+ <td>システムレベルの更新の一部としてのみ更新されます。</td>
+ </tr>
+ </tbody>
+</table>
+<div class="note">
+ <p><strong>注記</strong>: Firefox OS バージョン 1.0 では、Web アプリは Web サイトと Marketplace のどちらからでもインストールできますが、Privileged アプリは Mozilla Marketplace からしかインストールできず、複数の信頼された Marketplace はまだ完全にはサポートしていません。</p>
+</div>
+<p> </p>
diff --git a/files/ja/archive/b2g_os/security/b2g_ipc_internals/index.html b/files/ja/archive/b2g_os/security/b2g_ipc_internals/index.html
new file mode 100644
index 0000000000..46f203dbd2
--- /dev/null
+++ b/files/ja/archive/b2g_os/security/b2g_ipc_internals/index.html
@@ -0,0 +1,254 @@
+---
+title: B2G IPC internals
+slug: Archive/B2G_OS/Security/B2G_IPC_internals
+translation_of: Archive/B2G_OS/Security/B2G_IPC_internals
+---
+<div class="note">
+<p>この記事は Firefox OS (Boot2Gecko) のプロセス間通信(IPC)の内部実装について記載しています。<br>
+ これはまだ開発中で今後変わる可能性があります。この記事の目的はプロセス間通信の内部動作と実装の詳細を知ってもらうことです。<br>
+ IPC のセキュリティ局面を知りたい場合は、これ以外の記事を参考にしてください。(TODO: 記事へのリンクを追加する)。フェードバックや提案を歓迎します。</p>
+</div>
+
+<h2 id="アーキテクチャ">アーキテクチャ</h2>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8103/illu1_arch.png" style="border-style: solid; border-width: 1px; float: right; height: 283px; width: 300px;"><br>
+ In FirefoxOS we have a Multi-process Architecture where the apps on the phone are running in a different process which has the least amount of privileges.<br>
+ Firefo OS では最小限の権限を持った異なる複数のプロセスが端末で動作するように、マルチプロセスのアーキテクチャを持っています。システム上1つの b2g と呼ばれる親プロセスが存在します。b2g は nuwa と呼ばれる子プロセスがいます。このプロセスはアプリプロセスとしてフォークするために利用されます。アプリが起動する際に、b2g は nuwa に新規プロセス起動を通知します。通常、子プロセスは最小の権限で起動します。実行させたい動作(権限が必要なもの)は、親プロセス(b2g)を通す必要があります。これはプロセス間通信(Inter-process Communication : IPC)で実現しています。各子プロセスは IPC チャンネルを利用し、親プロセスと通信しています。プロセスのレイアウトは右図の通りです。</p>
+
+<h2 id="セットアップ">セットアップ</h2>
+
+<p>設計の概要を知るためには、どのように通信しているか詳細を知る必要があります。<br>
+ 実際には Unix socket を利用しており、これはプロセスを超えてメッセージを送信するために <strong>socketpair</strong> システムを使って作成されます。通信の送受信をする際に、<strong>sendmsg</strong> や <strong>recvmsg</strong> を使うことで実現しています。各プロセスはソケット操作を行うための専用のスレッドを持っており、これは <em>IOLoop</em> と呼ばれます。各 <em>IOLoop</em> スレッドは送信メッセージのキューを持っており、これはチャンネルを超えたメッセージを送れるようにメインスレッドを利用しています。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8105/illu2_ioloop.png" style="height: 203px; width: 700px;"></p>
+
+<h3 id="IOLoop">IOLoop</h3>
+
+<p>IOLoop スレッドは b2g 起動時に 親プロセスで作成され、nuwa をフォークした後に各プロセスでも作成されます。</p>
+
+<h4 id="親プロセス"><strong>親プロセス</strong></h4>
+
+<p>親プロセス(b2g) では IOLoop が早い段階で作成されます。もっと詳しく何が怒っているかを知るには <strong><a href="https://github.com/mozilla/gecko-dev/blob/afdf8e01dd69dc75c88acebafd773508f97f91e4/xpcom/build/nsXPComInit.cpp#L451">NS_InitXPCOM2</a></strong> 関数をみてください。以下は実際にスレッドが始まるための初期化のコードの一例です。</p>
+
+<pre>...
+scoped_ptr&lt;BrowserProcessSubThread&gt; ioThread(
+ new BrowserProcessSubThread(BrowserProcessSubThread::IO));
+...
+ioThread-&gt;StartWithOptions(options)
+...</pre>
+
+<p><strong><em>ioThread</em></strong> は <strong><a href="https://github.com/mozilla/gecko-dev/blob/e72ffaed408cab53a4cf4ca152089c9c38d2921c/ipc/chromium/src/base/thread.h">base::Thread</a></strong> を継承した <strong><a href="https://github.com/mozilla/gecko-dev/blob/82ff7027aac0f7578d5c26567d8ac8e4b5d2b647/ipc/glue/BrowserProcessSubThread.h">BrowserProcessSubThread</a></strong> インスタンスです。これは <strong><a href="https://github.com/mozilla/gecko-dev/blob/e2ff646a3cd6d91020d037e633c9776026871b71/ipc/chromium/src/base/platform_thread.h">PlatformThread::Delegate</a></strong> のサブクラスです。</p>
+
+<p><strong>StartWithOptions</strong> は実際に、<strong>base::Thread </strong>で定義されています。<br>
+ The call will lead to a couple of more calls which will eventually end up at <strong>pthread_create</strong>. The function started in the new thread is <strong><a href="https://github.com/mozilla/gecko-dev/blob/e2ff646a3cd6d91020d037e633c9776026871b71/ipc/chromium/src/base/platform_thread_posix.cc#L36">ThreadFunc</a></strong>. <strong><em>ioThread</em></strong> object is passed along the calls and <strong><em>ioThread</em>-&gt;<a href="https://github.com/mozilla/gecko-dev/blob/e2ff646a3cd6d91020d037e633c9776026871b71/ipc/chromium/src/base/thread.cc#L139">ThreadMain()</a></strong> is called in the new thread.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8107/illu3_parent_startup.png" style="height: 469px; width: 900px;"></p>
+
+<p><strong>ThreadMain</strong> is now running in the <em>IOLoop</em> thread, it will call <strong>Init()</strong> of the current instance and also create a <strong>MessageLoop</strong> instance to call the <strong>Run()</strong> method. We will &lt;come any="" back="" is="" it="" later="" not="" of="" p="" part="" since="" startup="" that="" the="" thread="" to=""&gt; &lt;/come&gt;revisit this part later on, since it is not involved further in thread startup.</p>
+
+<pre>...
+// The message loop for this thread.
+MessageLoop message_loop(startup_data_-&gt;options.message_loop_type);
+...
+// Let the thread do extra initialization.
+// Let's do this before signaling we are started.
+Init();
+...
+message_loop.Run();
+...
+</pre>
+
+<h4 id="Child"><strong>Child<a name="section_child"></a></strong></h4>
+
+<p>For the child <em>IOLoop</em> thread spawn, we have to look at the <em>nuwa</em> process as a child of <em>b2g</em> and also at the forked processes of <em>nuwa</em>.</p>
+
+<p>Exactly how <em>b2g</em> spawns <em>nuwa</em> will be covered later; for now we assume that the <em>nuwa</em> process already exists. Once <em>nuwa</em> is created, we eventually reach the <strong><a href="https://github.com/mozilla/gecko-dev/blob/9ce7e9c08958e1c4f059fed6fedf07b49ab7285f/toolkit/xre/nsEmbedFunctions.cpp#L272">XRE_InitChildProcess</a></strong> function. This function is responsible for creating the <em>IOLoop</em> thread at <strong><a href="https://github.com/mozilla/gecko-dev/blob/9ce7e9c08958e1c4f059fed6fedf07b49ab7285f/toolkit/xre/nsEmbedFunctions.cpp#L493">this</a></strong> line:</p>
+
+<pre>process = new ContentProcess(parentHandle);
+</pre>
+
+<p>In the <strong><a href="https://github.com/mozilla/gecko-dev/blob/d768d99a05bb25d2b97bcdd3c08e887ae3a1c98d/dom/ipc/ContentProcess.h#L30">ContentProcess</a></strong> constructor, the <strong><a href="https://github.com/mozilla/gecko-dev/blob/fdbc9a2330b9e9c80aa81ff1bc39b39c04af2c9f/ipc/glue/ProcessChild.cpp#L19">ProcessChild</a></strong> constructor is called, which leads to a call of the <strong><a href="https://github.com/mozilla/gecko-dev/blob/a64afe22b9cae676a20c4d72776922ca6756648c/ipc/chromium/src/chrome/common/child_process.cc#L20">ChildProcess</a></strong> constructor. The important part to note here is that the <strong>ChildProcess</strong> constructor gets passed a new instance of <strong><a href="https://github.com/mozilla/gecko-dev/blob/82ff7027aac0f7578d5c26567d8ac8e4b5d2b647/ipc/glue/IOThreadChild.h#L18">IOThreadChild</a></strong>. Within the constructor, the <strong><a href="https://github.com/mozilla/gecko-dev/blob/f5213d3e6666c532cbcd20837188d3b0fbcc950d/ipc/chromium/src/chrome/common/child_thread.cc#L33">Run()</a></strong> is called on the passed <strong>IOThreadChild</strong> object:</p>
+
+<pre>ChildProcess::ChildProcess(ChildThread* child_thread)
+ : child_thread_(child_thread),
+ ...
+{
+ ...
+ child_thread_-&gt;Run();
+}
+</pre>
+
+<p>From there, the <strong><a href="https://github.com/mozilla/gecko-dev/blob/e72ffaed408cab53a4cf4ca152089c9c38d2921c/ipc/chromium/src/base/thread.cc#L77">StartWithOptions</a></strong> function is called. At this point it follows the same code path as for the main <em>IOLoop</em> startup. The only exception is that it is an <strong>IOThreadChild</strong> instance and not a <strong>BrowserProcessSubThread</strong> (see the b2g process illustration above for reference).</p>
+
+<p>Below is an illustration of the <em>IOLoop</em> thread spawn in the  <em>nuwa</em> process :</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8115/ipc_nuwa_ioloop.png" style="height: 566px; width: 650px;"></p>
+
+<p>This is the case for the original <em>nuwa</em> process. All future children will be forked from <em>nuwa</em>, and since <strong>fork</strong> only copies the thread it was called in to the new process, all threads so far would be lost.</p>
+
+<p>We want to have all threads from <em>nuwa</em> (along with the <em>IOLoop</em>) in the forked process. In order to do that, <strong>pthread_create</strong> is not called directly, instead, the call is routed to <strong><a href="https://github.com/mozilla/gecko-dev/blob/58e49a079d477e5963a4180f674fbbd88534f76c/mozglue/build/Nuwa.cpp#L656">__wrap_pthread_create</a></strong> which wraps the real <strong>pthread_create</strong>. The purpose of the wrapper function is to maintain a static list of startup information for all created threads (<strong><a href="https://github.com/mozilla/gecko-dev/blob/58e49a079d477e5963a4180f674fbbd88534f76c/mozglue/build/Nuwa.cpp#L255">sAllThreads</a></strong>). This list will be copied to the new process, and the new process will then call <strong><a href="https://github.com/mozilla/gecko-dev/blob/58e49a079d477e5963a4180f674fbbd88534f76c/mozglue/build/Nuwa.cpp#L1390">RecreateThreads</a></strong> to restore all threads based on the information maintained in the list.</p>
+
+<h3 id="Channel">Channel<a name="section_channel"></a></h3>
+
+<p>In order to be able to send and receive messages, we have to create a channel between the parent and the child. This section covers the classes used for this - the actual setup between parent and child will be covered once we get to the process spawning part.</p>
+
+<p>Here is a short illustration of the call flow:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8109/ipc_channel_create.png" style="height: 353px; width: 790px;"></p>
+
+<ol>
+ <li> This flow illustrates the creation of an <strong><a href="https://github.com/mozilla/gecko-dev/blob/eacb45e46d4b67a0d309e44af5de1ebede88d27b/ipc/chromium/src/chrome/common/ipc_channel.h#L15">IPC::Channel</a></strong> instance (the process of creating the instance will be covered later on). This class has two important attributes:
+
+ <ul>
+ <li><strong>channel_impl_</strong> which is the actual implementation of the channel (platform specific)</li>
+ <li><strong>listener_</strong> which is used to pass incoming messages to</li>
+ </ul>
+ </li>
+ <li>The posix class for the <strong>channel_impl_</strong> object can be found here (<strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/ipc_channel_posix.h#L24">Channel::ChannelImpl</a></strong>). <strong>Channel::ChannelImpl</strong> has the following important attributes:
+ <ul>
+ <li><strong>pipe_</strong> the file descriptor of the pipe (created by <strong>socketpair</strong>) for the parent side</li>
+ <li><strong>client_pipe_</strong> the client end of the pipe</li>
+ <li><strong>listener_</strong> the object that receives the incoming messages</li>
+ <li><strong>output_queue_</strong> a queue where all outgoing messages are pushed to</li>
+ </ul>
+ </li>
+ <li><strong>Channel::ChannelImpl</strong> has two overloaded constructors which can be used to create an object. One of them takes a file descriptor as the first argument which will be stored in <strong>pipe_</strong>. The more interesting constructor is the one which takes a <strong>channel_id</strong> (which can also be empty). Both of them also take a <strong>Mode</strong> and a <strong>Listener*</strong> pointer as second and third argument. <strong>Mode</strong> just specifies if we are the server or the client. When the constructor with the <strong>channel_id</strong> is called, <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc#L303">CreatePipe</a></strong> will be called from there. We have to distinguish two different cases from here:
+ <ul>
+ <li><code>Mode == MODE_SERVER</code>: In this case, <strong>socketpair</strong> will be called. One end of the pipe will be stored in <strong>pipe_</strong> the other in <strong>client_pipe_</strong>. If <strong>channel_id</strong> is not empty, we insert a new entry in a <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc#L83">PipeMap</a></strong> where we associate <strong>client_pipe_</strong> with the given <strong>channel_id</strong>.</li>
+ <li><code>Mode != MODE_SERVER</code>: In this case, we call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc#L129">ChannelNameToClientFD</a></strong>, which looks inside the <strong>PipeMap</strong> for an entry with the given <strong>channel_id</strong>. The result will be stored in <strong>pipe_</strong>.</li>
+ </ul>
+ </li>
+ <li>After the object creation is completed, the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc#L395">Connect</a></strong> method can be called. This method will tell <em>libevent</em> to notify us whenever something has been written to <strong>pipe_</strong> and is ready to be received.</li>
+ <li><strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc#L818">OnFileCanReadWithoutBlocking</a></strong> is the callback for this event. This function will then call a function to read the message from the file descriptor, and then the message will be passed to the <strong>OnMessageReceived</strong> function inside the <strong>listener_</strong> (this will be covered later).</li>
+</ol>
+
+<h2 id="Spawning">Spawning</h2>
+
+<p>In the previous section, we learned how <em>IOLoop</em> is created and how a channel is created. Throughout the last sections, we made the assumption that a process has already been started. This section will cover how those processes actually get started and how they connect to the IPC::Channel. We will again have to distinguish between the <em>nuwa</em> process and the children of <em>nuwa</em>.</p>
+
+<p>At this point, if you are not already familiar with IPDL consider reading the <a href="https://developer.mozilla.org/en-US/docs/IPDL/Tutorial">IPDL Tutorial</a> because from this point on we will reference some of the classes generated from those IPDL files.</p>
+
+<h3 id="Nuwa">Nuwa</h3>
+
+<h4 id="Creating_the_process"><strong>Creating the process</strong></h4>
+
+<p>Throughout the initialization phase of the <em>b2g</em> process, an instance of the singleton class <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L36">PreallocatedProcessManagerImpl</a></strong> will be created. This instance is mainly accessed through a couple of static functions defined in the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.h#L39">PreallocatedProcessManager</a></strong> class. The purpose of this manager is to keep track of pre-allocated processes. This will be explained in more detail in the <a href="#section_preallocated">#Preallocated </a>section.</p>
+
+<p>The implementation class has two important attributes:</p>
+
+<ul>
+ <li><strong>mSpareProcesses</strong> which is an array that contains the preallocated processes (which will be important later on)</li>
+ <li><strong>mPreallocatedAppProcess</strong> which will be the <em>nuwa</em> process</li>
+</ul>
+
+<p>This initialization happens inside the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentParent.cpp#L602">ContentParent::StartUp</a></strong> function when executing the following code:</p>
+
+<pre>...
+// Try to preallocate a process that we can transform into an app later.
+PreallocatedProcessManager::AllocateAfterDelay();
+...
+</pre>
+
+<p>This call will lead to the creation of the one and only instance of <strong>PreallocatedProcessManagerImpl</strong> (located inside the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L102">PreallocatedProcessManagerImpl::Singleton</a></strong> function). Right after the constructor call, the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L125">Init</a></strong> function is invoked. Following the call flow from there, we will end up in <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L174">Enable</a></strong>. <strong>Enable</strong> will then schedule the <em>nuwa</em> fork, with a 1 second delay (<a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L23">DEFAULT_ALLOCATE_DELAY</a>), by calling <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L237">ScheduleDelayedNuwaFork</a></strong>. This gives the <em>b2g</em> process enough time to finish its initialization.</p>
+
+<p>As soon as the delay time has passed, the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L255">DelayedNuwaFork</a></strong> function is called inside the main thread. Inside the function, we will call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentParent.cpp#L551">ContentParent::RunNuwaProcess</a></strong> which returns a pointer to a <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentParent.h#L66">ContentParent</a></strong> object; this object represents our <em>nuwa</em> process.</p>
+
+<p>Inside the <strong>ContentParent</strong> constructor, a couple of interesting things happen.</p>
+
+<ul>
+ <li>we insert the new <strong>ContentParent</strong> into the global static list, called <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentParent.cpp#L512">sContentParent</a></strong></li>
+ <li>we create a <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/GeckoChildProcessHost.h#L28">GeckoChildProcessHost</a></strong> instance</li>
+ <li>we call the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/GeckoChildProcessHost.cpp#L385">LaunchAndWaitForProcessHandle</a></strong> method of <strong>GeckoChildProcessHost</strong></li>
+</ul>
+
+<p>The <strong>LaunchAndWaitForProcessHandle</strong> method will schedule a task inside the <em>IOLoop</em> thread. In the <em>IOLoop</em> thread, <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/GeckoChildProcessHost.cpp#L479">RunPerformAsyncLaunch</a></strong> is called. After a few calls, we will end up in the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/base/process_util_linux.cc#L191">LaunchApp</a></strong> function. This is where the forking happens. After the <strong>fork</strong>, it will call <strong>execve</strong> in the child to re-execute itself.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8113/ipc_nuwa_fork.png" style="height: 618px; width: 1000px;"></p>
+
+<h4 id="Connecting_to_the_channel"><strong>Connecting to the channel</strong></h4>
+
+<p>We covered the actual spawning. What's left is the part where the parent (<em>b2g</em>) and the child (<em>nuwa</em>) connect to the same IPC channel. We have two important calls for that on the parent side: one is made before the child is spawned and the other after the spawn. The first one is in the <strong>RunPerformAsynchLaunch</strong> function. Before actually calling <strong>PerformAsynchLaunch</strong> (the position is marked with a 'x' in the above diagram), we call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/GeckoChildProcessHost.cpp#L405">InitializeChannel</a></strong>, and this will call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/child_process_host.cc#L77">CreateChannel</a></strong>. At this point a new <strong>IPC::Channel</strong> object is created, so please check out the <a href="#channel_section">#Channel</a> section above.</p>
+
+<p>The <strong>GeckoChildProcessHost</strong> object created inside the <strong>ContentParent</strong> constructor serves as the <strong>listener_</strong> inside the <strong>IPC::Channel</strong> object, thus, <strong>GeckoChildProcessHost</strong> will supply the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/GeckoChildProcessHost.cpp#L895">OnMessageReceived</a></strong> function. There is nothing done there; it just saves all the incoming messages.</p>
+
+<p>At this point we can consider the parent process to be connected to the channel. This was the first important call.</p>
+
+<p>The second one is called as soon as <strong>LaunchAndWaitForProcessHandle</strong> returns (<em>nuwa</em> process is running at this point). Since the current <strong>OnMessageReceived</strong> handler doesn't do any good, we will have to assign a new <strong>listener_</strong>. In order to do that, this is being executed (<strong>mSubprocess</strong> is an instance of <strong>GeckoChildProcessHost</strong> which is created in <strong>ContentParent</strong>):</p>
+
+<pre>Open(mSubprocess-&gt;GetChannel(), mSubprocess-&gt;GetOwnedChildProcessHandle());
+</pre>
+
+<p>What happens now is a little complicated to explain just with text. I will try to illustrate the process in the end, so you might want to follow the process again with the illustration.</p>
+
+<p><strong>ContentParent</strong> actually extends <strong>PContentParent</strong> (this class is generated from the *.ipdl files that, unfortunately, I can't reference to any github or mxr location) which is defined in <em>./objdir-gecko/ipc/ipdl/PContentParent.cpp</em> relative to the root directory of FirefoxOS. <strong>PContentParent</strong> has a member variable which will be important during the <strong>Open</strong> (defined in PContentParent.cpp) call.</p>
+
+<ul>
+ <li><strong>mChannel</strong> instance of <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/MessageChannel.h#L40">MessageChannel</a></strong></li>
+</ul>
+
+<p><strong>MessageChannel</strong> takes a <strong>MessageListener</strong> object as the one and only argument. <strong>mChannel</strong> is created during the <strong>PContentParent</strong> construction and passes <strong>this</strong> as the <strong>MessageListener</strong> object to <strong>MessageChannel</strong> (<strong>ContentParent</strong> extends <strong>MessageListener</strong> shown below).</p>
+
+<p><strong>Open</strong> gets the <strong>IPC::Channel</strong> instance taken from <strong>mSubprocess</strong> (TODO: GetOwnedChildProcessHandle???) and calls <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/MessageChannel.cpp#L299">Open</a></strong> on <strong>mChannel</strong></p>
+
+<pre>auto PContentParent::Open(
+ Channel::Transport* aTransport,
+ ProcessHandle aOtherProcess,
+ MessageLoop* aThread,
+ mozilla::ipc::Side aSide) -&gt; bool
+{
+ mOtherProcess = aOtherProcess;
+ return (mChannel).Open(aTransport, aThread, aSide);
+}
+</pre>
+
+<p>As a side note, <strong>Channel::Transport</strong> is a typedef of <strong>IPC::Channel</strong>. <strong>aThread</strong> and <strong>aSide</strong> are set to 0 and <em>UnknownSide</em> by default if not specified. <strong>Open</strong> inside of the <strong>MessageChannel</strong> class will create a <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/MessageLink.h#L126">ProcessLink</a></strong>. <strong>This</strong> is passed to the constructor which will set <strong>mChan</strong> inside the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/MessageLink.h#L105">MessageLink</a></strong> class which <strong>ProcessLink</strong> inherits from.</p>
+
+<p>After an instance of <strong>ProcessLink</strong> is created, we call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/MessageLink.cpp#L83">Open</a></strong> on it. This sets the member variable <strong>mTransport</strong> (which represents the IPC::Channel). So <strong>mTransport</strong> is the <strong>IPC::Channel</strong> pointer we retrieved from <strong>mSubprocess</strong>.</p>
+
+<p>Since <strong>Connect</strong> has already been called when the <strong>IPC::Channel</strong> was created, we will schedule <strong>IOLoop</strong> to run <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/MessageLink.cpp#L309">OnTakeConnectedChannel</a></strong>. The channel state inside the <strong>MessageChannel</strong> object will be set to <strong>ChannelConnected,</strong> and we also call <strong><a href="https://github.com/mozilla/gecko-dev/blob/eacb45e46d4b67a0d309e44af5de1ebede88d27b/ipc/chromium/src/chrome/common/ipc_channel_posix.cc#L962">set_listener</a></strong> on the <strong>IPC::Channel</strong> instance to let it know that <strong>ProcessLink</strong> will handle incoming messages. That means <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/glue/MessageLink.cpp#L270">OnMessageReceived</a></strong> inside <strong>ProcessLink</strong> is called. Those received messages will be passed to the <strong>MessageChannel</strong> and from there to the <strong>OnMessageReceived</strong> funciton inside the <strong>PContentParent</strong> class.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8117/ipc_parent_channel_connect.png" style="height: 579px; width: 1500px;"></p>
+
+<p>Now everything has been set up on the parent side. Let's get to the <em>nuwa</em> side.</p>
+
+<p>After the <strong>fork</strong>, <em>nuwa</em> inherited all the open file descriptors from the parent <em>b2g</em>, and one of them is its end of the pipe. Every child expects its end of the pipe to be file descriptor 3 (<strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/ipc_channel_posix.cc#L126">kClientChannelFd</a></strong>). In order to guarantee that file descriptor 3 will be the child's end of the pipe, we call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/base/file_descriptor_shuffle.h#L72">ShuffleFileDescriptors</a></strong>. This function will <strong>dup</strong> the child end of the pipe to 3. It also makes sure that in case 3 is a file descriptor needed by the child that it will be remapped to the next available.</p>
+
+<p>After the file descriptors have been remapped, we call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/base/process_util_posix.cc#L107">CloseSuperfluousFds</a></strong> to close all the ones that <em>nuwa</em> doesn't need. When everything is done the child will call <strong>execve</strong> to re-execute itself.</p>
+
+<p>From here please have a look at the <a href="#section_child">#Child</a> section. The actual channel connection will happen inside the <strong>ThreadMain</strong> function inside the <em>IOLoop</em> thread. <strong>ThreadMain</strong> will call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/child_thread.cc#L91">Init</a></strong> defined in <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/ipc/chromium/src/chrome/common/child_thread.h#L15">ChildThread</a></strong>. Inside this function, we will create a new <strong>IPC::Channel</strong> object, and you can refer to the <a href="#section_channel">#Channel</a> section from here. You will have to consider the part Mode != MODE_SERVER, therefore <strong>ChannelNameToClientFD</strong> will be called, which returns our magic file descriptor 3 (remember the child end of the pipe is mapped to this fd).</p>
+
+<p>So now, we have a connection to the channel. What is left is to set the correct listener for the incoming messages. To do so, the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentProcess.cpp#L23">Init</a></strong> funciton inside <strong>ContentProcess</strong> is called. From there it will call <strong>Open</strong> in the <strong>PContentChild</strong> class, and this will lead to the same call flow as for the parent in the above diagram. The only exception we have is that these calls originate from <strong>ContentChild</strong> which inherits from <strong>PContentChild</strong>.</p>
+
+<h3 id="Preallocated">Preallocated<a name="section_preallocated"></a></h3>
+
+<h4 id="Creating_the_process_2"><strong>Creating the process</strong></h4>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8111/ipc_fork_msg.png" style="float: right; height: 219px; width: 350px;">A <em>preallocated process</em> is a process fork()ed from <em>nuwa</em> which <em>b2g</em> keeps around to turn it later into a app process. At some point in time, <em>b2g</em> tells the <em>preallocated process</em> to turn into an app that has been started on the phone. The process will then be assigned to the privileges of the app, and the app will be able to access privleged functionality via API calls to the parent. As soon as a <em>preallocated process</em> has been turned into an app, <em>b2g</em> will tell <em>nuwa</em> to create a new <em>preallocated process</em>. So how exactly does <em>b2g</em> tell <em>nuwa</em> to create a new <em>preallocated process</em>? (NB: at this point we have an active channel connection between <em>b2g</em> and <em>nuwa.</em>)</p>
+
+<p>For initiating the <strong>fork</strong>, <em>b2g</em> sends a message through the IPC channel, and <em>nuwa</em> sends one back once it creates the new process. The message contains the PID of the new process. On the right is a little illustration of the message flow.</p>
+
+<p>Sending the initial message is initiated inside the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L381">NuwaFork</a></strong> function. Rememeber the <strong>mPreallocatedAppProcess</strong> is an instance of <strong>ContentParent</strong> and the invoked <strong>SendNuwaFork</strong> function is actually implemented inside <strong>PContentParent</strong>.</p>
+
+<p>As soon as the child receives this messages, it will call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentChild.cpp#L1876">RecvNuwaFork</a></strong> which is defined in <strong>ContentChild</strong>. Following the calls from there, we will end up in <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/mozglue/build/Nuwa.cpp#L1602">ForkIPCProcess</a></strong>.</p>
+
+<p>From there we call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/mozglue/build/Nuwa.cpp#L1564">PrepareProtoSockets</a></strong> which calls <strong>socketpair</strong> to create a new pipe for the new child and the parent.<br>
+ It is also where <strong>fork</strong> is called and our new process is born. After the <strong>fork</strong> we will call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/mozglue/build/Nuwa.cpp#L1553">AddNewProcess</a></strong> inside <em>nuwa</em>. <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentChild.cpp#L1979">AddNewIPCProcess</a></strong> will then be responsible for initiating the second message. The message contains the parent side file descriptor for the pipe as well as the PID of the new process.</p>
+
+<p>On the <em>b2g</em> side the <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentParent.cpp#L2314">RecvAddNewProcess</a></strong> will handle the message. It will create a new <strong>ContentParent</strong> instance. This time we call the second <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentParent.cpp#L1767">ContentParent</a></strong> constructor. It will create the <strong>ContentParent</strong> instance based on the already existing one and with the information of the new process. This also leads to a new instance in our static <strong>sContentParents</strong> list. This basically means that we have a <strong>ContentParent</strong> instance for each process that is running.</p>
+
+<p>There is also a check in place which makes sure that only the <em>nuwa</em> process actually sends <strong>Msg_AddNewProcess</strong>:</p>
+
+<pre>...
+if (!IsNuwaProcess()) {
+...
+</pre>
+
+<p><strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/ContentParent.cpp#L1962">IsNuwaProcess</a></strong> checks a member variable of <strong>ContentParent</strong> whether or not it is <em>nuwa</em> who sent the message. This member variable can only be set from the parent side, and it does this during the creation of the <strong>ContentParent</strong> for the <em>nuwa</em> process.</p>
+
+<p>After initialization is finished, <strong>RecvAddNewProcess</strong> will then call <strong><a href="https://github.com/mozilla/gecko-dev/blob/6f80c55849c36f46f48941f735c8228b7e2f36d0/dom/ipc/PreallocatedProcessManager.cpp#L299">PublishSpareProcess</a></strong> to add the process to the managers list which will keep track of all existing Preallocated processes. Whenever a Preallocated process will be turned into an app process, it will be removed from that spare processes list. Here an illustration of the process:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/8119/ipc_prealloc_fork.png" style="height: 540px; width: 1500px;"></p>
+
+<h4 id="Connecting_to_the_channel_2"><strong>Connecting to the channel</strong></h4>
+
+<p>TODO: write it</p>
diff --git a/files/ja/archive/b2g_os/security/index.html b/files/ja/archive/b2g_os/security/index.html
new file mode 100644
index 0000000000..5887547f87
--- /dev/null
+++ b/files/ja/archive/b2g_os/security/index.html
@@ -0,0 +1,68 @@
+---
+title: Firefox OS セキュリティ
+slug: Archive/B2G_OS/Security
+tags:
+ - B2G
+ - Firefox OS
+ - Mobile
+ - Security
+translation_of: Archive/B2G_OS/Security
+---
+<p>以下の記事では、Firefox OS のセキュリティに関するトピックを扱います。これには、アプリケーションのセキュリティやインストールのプロセスをセキュアに保つ方法だけでなく、全体的なセキュリティ機能を含みます。</p>
+
+<table class="topicpage-table">
+ <tbody>
+ <tr>
+ <td>
+ <h2 class="Documentation" id="Documentation" name="Documentation">Firefox OS セキュリティのドキュメント</h2>
+
+ <dl>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/Security/Security_model" title="Mozilla/Firefox_OS/Security/Security_model">Firefox OS のセキュリティモデル</a></dt>
+ <dd>Firefox OS のセキュリティモデルを概観します。</dd>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/Security/System_security" title="Mozilla/Firefox_OS/Security/Security_model">システムのセキュリティ</a></dt>
+ <dd>Firefox OS のランタイムに組み込まれている、セキュリティ制御の詳細説明です。</dd>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security" title="Mozilla/Firefox_OS/Security/Application_security">Firefox OS のアプリケーションセキュリティ</a></dt>
+ <dd>Firefox OS でアプリケーションをセキュアにする方法の概説です。</dd>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/Security/Installing_and_updating_applications" title="Mozilla/Firefox_OS/Security/Installing_and_updating_applications">アプリケーションのセキュアなインストールと更新</a></dt>
+ <dd>Firefox OS がセキュアにアプリケーションをインストールや更新する方法です。</dd>
+ <dt><a href="/ja/docs/Mozilla/Firefox_OS/Security/Debugging_and_security_testing" title="Mozilla/Firefox_OS/Security/Debugging_and_security_testing">Firefox OS におけるデバッグとセキュリティテスト</a></dt>
+ <dd>このガイドでは、リモート JavaScript デバッガを開くところからデスクトップ版の Firefox OS を傍受する HTTP(S) プロキシのセットアップまで、基本的なセキュリティテストのステップを説明します。</dd>
+ </dl>
+
+ <p><span class="alllinks"><a href="/ja/docs/tag/B2G" title="tag/B2G">すべて見る...</a></span></p>
+ </td>
+ <td>
+ <h2 class="Community" id="Community" name="Community">コミュニティの支援を受ける</h2>
+
+ <p>もし Firefox OS で作業をしていたり、Firefox OS デバイスで実行したいアプリケーションを開発したりしているなら、あなたを支援するコミュニティリソースがあります!</p>
+
+ <ul>
+ <li>Boot to Gecko プロジェクトフォーラムに相談する (英語): <ul>
+ <li><a href="https://lists.mozilla.org/listinfo/dev-b2g"> メーリングリストとして</a></li>
+
+
+ <li><a href="http://groups.google.com/group/mozilla.dev.b2g"> ニュースグループとして</a></li>
+ <li><a href="http://groups.google.com/group/mozilla.dev.b2g/feeds"> フィードとして</a></li>
+</ul></li>
+ </ul>
+
+ <ul>
+ <li>Mozilla の Boot to Gecko IRC チャンネルで質問する (英語): <a class="link-irc" href="irc://irc.mozilla.org/b2g" title="irc://irc.mozilla.org/b2g">#b2g</a></li>
+ </ul>
+
+ <p><span class="alllinks"><a href="http://www.catb.org/~esr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html"><em>ネチケット</em>を忘れないでください...</a></span></p>
+
+
+ <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">関連トピック</h2>
+
+ <ul>
+ <li><a href="/ja/docs/Mobile" title="Mobile">モバイル</a></li>
+ <li><a href="/ja/docs/Security" title="Security">セキュリティ</a></li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+</table>
+
+<div id="cke_pastebin" style="position: absolute; top: 483px; width: 1px; height: 1px; overflow: hidden; left: -1000px;"><br>
+Firefox OS</div>
diff --git a/files/ja/archive/b2g_os/security/security_model/index.html b/files/ja/archive/b2g_os/security/security_model/index.html
new file mode 100644
index 0000000000..89926c055e
--- /dev/null
+++ b/files/ja/archive/b2g_os/security/security_model/index.html
@@ -0,0 +1,284 @@
+---
+title: Firefox OS セキュリティ概論
+slug: Archive/B2G_OS/Security/Security_model
+tags:
+ - B2G
+ - Firefox OS
+ - IPC
+ - IPDL
+ - Mobile
+ - Security
+translation_of: Archive/B2G_OS/Security/Security_model
+---
+<div class="summary">
+ <p><span class="seoSummary">このドキュメントでは、Mozilla の Firefox OS のセキュリティフレームワークの概要を説明します。これは、モバイルデバイスをプラットフォーム、アプリ、データに対する脅威から防御するためのフレームワークです。Firefox OS で Mozilla は、携帯電話のセキュリティリスクに対する最高品質の保護を提供する、包括的・集中的・多層的なセキュリティモデルを実装しました。</span></p>
+</div>
+<h2 id="Platform_Security" name="Platform_Security">プラットフォームセキュリティ</h2>
+<p>Firefox OS プラットフォームは、あらゆるレベルで攻撃のリスクを軽減するように設計された多層型のセキュリティモデルを使用します。前線の対抗策は、脅威に対する包括的な保護を提供する多重防護策と組み合わせられます。</p>
+<h3 id="Secure_Architecture" name="Secure_Architecture">セキュアアーキテクチャ</h3>
+<p>Firefox OS は、Web ベースのアプリケーションと下層のハードウェアを結びつけます。これは以下のような階層で構成される、統合された技術スタックです:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5023/platform.png" style="width: 678px; height: 478px;"></p>
+<ul>
+ <li>Gaia: ユーザエクスペリエンスを作り上げる Web アプリ一式です (アプリは HTML5、CSS、JavaScript、画像、メディアなどで構成されます)。</li>
+ <li>Gecko: アプリ実行のためのフレームワークを提供したり、モバイルデバイスの機能へアクセスするために使用する Web API を実装したりするアプリケーションランタイム層です。</li>
+ <li>Gonk: 下層の Linux カーネル、システムライブラリ、ファームウェア、デバイスドライバであり、他のコンポーネントはすべて Gonk の上で実行します。</li>
+ <li>モバイルデバイス: Firefox OS を実行する携帯電話機器です。</li>
+</ul>
+<p>Gecko は、モバイルデバイスを悪用から保護するためのセキュリティポリシーを適用するゲートキーパーです。Gecko 層は、(Gaia 層の) Web アプリと電話機の間を仲介するように振る舞います。Gonk は下層の携帯電話機の機能を、Gecko 層に直接提供します。Web アプリは Web API を通してのみ、かつ Gecko がアクセス要求を許可した場合にのみ、携帯電話機の機能にアクセスできます。直接アクセスする手段はなく、また電話機への "バックドア" もありません。Gecko は許可設定を強制して、認可されていないアクセス要求は防止します。</p>
+<h3 id="Secure_System_Deployment" name="Secure_System_Deployment">セキュアなシステム展開</h3>
+<p>Firefox OS はスマートフォンにインストールされて提供されます。オリジナルのシステムイメージは、ディストリビューションパッケージの組み立て、構築、テスト、デジタル署名の実施について責任を持つ、既知の信頼された提供元によって作成されます。</p>
+<p>セキュリティ対策は、技術スタックの全体にわたって使用されます。ファイルシステムの権限は、Linux のアクセスコントロールリスト (ACL) によって適用されます。システムアプリは、読み取り専用 (アップデート中は、一時的に読み書き可能になるため除きます) のボリュームにインストールされます。通常、ユーザのコンテンツを置く領域だけが読み書き可能です。デバイスハードウェア内のさまざまなコンポーネントは、標準的な業界の慣習としてデフォルトで実装されている、ビルトインの保護機能を備えています。例えばチップセットのベンダーは、脆弱性を低減するための強化技術を採用しています。コアプラットフォーム (Gecko および Gonk) は潜在的な脅威に対する保護を高めるために強化されており、またコンパイラの強化策を、適用可能な場所で採用しています。詳しくは <a href="/ja/Firefox_OS/Security/System_security" title="/ja/Firefox_OS/Security/System_security">システムセキュリティ</a> をご覧ください。</p>
+<h3 id="Secure_System_Updates" name="Secure_System_Updates">セキュアなシステムアップデート</h3>
+<p>Firefox OS プラットフォームのアップグレードやパッチ適用は、携帯電話機内のシステムイメージの継続的な整合性を保証する、セキュアな Mozilla のプロセスを使用して展開されます。更新パッケージは、その組み立て、構築、テスト、デジタル署名の実施について責任を持つ、既知の信頼された提供元 (通常はデバイスの OEM) によって作成されます。</p>
+<p>システム更新は、Firefox OS スタックの全体あるいは一部に関与する場合があります。アップデートに Gonk の変更が含まれている場合は、インストールプロセスとして FOTA (Firmware Over the Air) を使用します。FOTA アップデートには、デバイス管理 (FOTA、ファームウェア、ドライバ)、設定管理 (Firefox OS の設定)、セキュリティ更新、Gaia、Gecko、あるいは他のパッチといった、Firefox OS スタックの他の部分に対するものが含まれることもあります。</p>
+<p>Gonk に関与しないアップデートは、Mozilla System Update Utility を使用して実施できます。Firefox OS では、Firefox のデスクトップ製品と同じ更新フレームワーク、プロセス、Mozilla ARchive (MAR) 形式 (更新パッケージで使用) を使用します。</p>
+<p>携帯電話機内蔵の更新サービス (OEM が提供するでしょう) が、定期的にシステム更新の確認を行います。更新パッケージが入手可能になって更新サービスにより検出されると、インストール実施の確認をユーザに促します。更新パッケージをモバイルデバイスへインストールする前に、デバイスのストレージで更新の適用に十分な領域があるかを確認します。またディストリビューションの検証が行われます:</p>
+<ul>
+ <li>更新の提供元 (システム更新やマニフェストの出所のプロトコル:ドメイン:ポートの検証)</li>
+ <li>ファイルの整合性 (SHA-256 ハッシュの確認)</li>
+ <li>コード署名 (信頼されたルート証明書に対する証明書の確認)</li>
+</ul>
+<p>更新プロセスの間に、以下のセキュリティ対策を使用します:</p>
+<ul>
+ <li>Mozilla は、アップデートを SSL 接続で取得することを推奨および期待します。</li>
+ <li>ファームウェアパッケージをインストールする前に、強力な暗号による検証を要求します。</li>
+ <li>更新プロセスを始める前に、完全な更新を特定の安全な場所にダウンロードしなければなりません。</li>
+ <li>システムはアップデートプロセスを始めるときに、Web アプリを実行しない安全な状態でなければなりません。</li>
+ <li>鍵情報は、デバイス内の安全な場所に保管しなければなりません。</li>
+</ul>
+<p>携帯電話機に更新が適切に適用されたことを保証するための、厳密なチェックがあります。</p>
+<div class="note">
+ <p><strong>注記</strong>: 更新処理がどのように動作するか、あるいはどのように更新を作成および頒布するかについて、詳しくは <a href="/ja/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">Firefox OS の更新パッケージを作成、適用する</a> をご覧ください。</p>
+</div>
+<h2 id="App_Security" name="App_Security">アプリのセキュリティ</h2>
+<p>Firefox OS は侵害するアプリや悪意のあるアプリから携帯電話機を守るために、多層的なセキュリティ防御策を使用しています。この方策では、アプリの信頼モデルに基づく絶対的な許可レベル、ランタイムのサンドボックス実行、下層の携帯電話ハードウェアへのアクセスを API に限定、強固な許可設定モデル、セキュアなインストールおよびアップデートのプロセスといった、さまざまな仕組みを採用しています。技術的な詳細については <a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security" title="Mozilla/Firefox_OS/Security/Application_security">アプリケーションセキュリティ</a> をご覧ください。</p>
+<p>Firefox OS では、すべてのアプリケーションが Web アプリ (HTML5、JavaScript、CSS、メディアおよび他のオープンな Web 技術を使用して作成したプログラム。ここでは、ブラウザ内で実行しているページは Web アプリに該当しません) です。ユーザによってインストールされるバイナリ ("ネイティブ") アプリケーションは存在しないため、システムへのアクセスはすべて Web API が厳格に仲介します。ファイルシステムへのアクセスでさえ、Web API やバックエンドの SQLite データベースを通してのみ行います。アプリが SD カードに保存されているファイルへ直接アクセスする方法はありません。</p>
+<p>Firefox OS はアプリがアクセスおよび使用できるリソースの範囲を制限および強制する一方で、さまざまな許可レベルをもつ広範なアプリをサポートします。Mozilla は、どの種類のアプリケーションがどの API にアクセスできるかの厳密な制御を実装しました。例えば、認定アプリ (電話機内蔵) のみが Telephony API にアクセスできます。ダイヤラーアプリは電話をかけるために Telephony API にアクセスする特権を持ちますが、すべての認定アプリがこの API にアクセスできるわけではありません。</p>
+<p>これは、例えば任意のサードパーティー製アプリがインストールされてペイパーユースの電話番号 (アメリカにおける 900 および 910) にダイヤルされ、高額な電話料金が発生するようなシナリオを防ぎます。</p>
+<p>他の OEM 製アプリが選択的に Telephony API へアクセスできる場合があります。例えば、事業者の請求あるいはサポートの窓口へ直接電話をかけられるなどのアカウント管理を顧客ができるようにする、システム管理アプリケーションを事業者が提供する場合があります。</p>
+<h3 id="Trusted_and_Untrusted_Apps" name="Trusted_and_Untrusted_Apps">信頼済みアプリと未信頼アプリ</h3>
+<p>Firefox OS では、以下のタイプに従ってアプリを分類します:</p>
+<table>
+ <thead>
+ <tr>
+ <th style="width: 82px;">
+ <p>タイプ</p>
+ </th>
+ <th style="width: 102px;">
+ <p>信頼レベル</p>
+ </th>
+ <th style="width: 447px;">
+ <p>説明</p>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="width: 82px;">
+ <p>認定</p>
+ </td>
+ <td style="width: 102px;">
+ <p>高度に信頼済み</p>
+ </td>
+ <td style="width: 447px;">
+ <p>事業者や OEM によって認定されたシステムアプリ (デバイス損傷の危険性や重要な機能に対するリスクのため)。システムアプリやサービスに限ります。サードパーティーのアプリケーションは想定しません。<br>
+ この指定は、少数の重要なアプリケーションのためだけに確保されています。例: SMS、Bluetooth、カメラ、システムクロック、テレフォニー、既定のダイヤラー (重要なサービスへ常にアクセスできるようにするため)。</p>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 82px;">
+ <p>特権</p>
+ </td>
+ <td style="width: 102px;">
+ <p>信頼済み</p>
+ </td>
+ <td style="width: 447px;">
+ <p>レビューを受けて認可され、認定済みの Marketplace によってデジタル署名を付与されたサードパーティーのアプリ。</p>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 82px;">
+ <p>Web (上記以外すべて)</p>
+ </td>
+ <td style="width: 102px;">
+ <p>未信頼</p>
+ </td>
+ <td style="width: 447px;">
+ <p>通常の Web コンテンツ。インストール型アプリ (携帯電話機に保存) およびホスト型アプリ (リモートにあり、アプリのマニフェストだけが携帯電話機に保存) の両方を含みます。ホスト型アプリのマニフェストは、Marketplace で入手できます。</p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p>アプリケーションの信頼レベルは、携帯電話機の機能にアクセスできる能力の一部を決定します。</p>
+<ul>
+ <li>認定アプリは、ほとんどの Web API の操作が許可されます。</li>
+ <li>特権アプリは、認定アプリがアクセスできる Web API 操作のサブセットが許可されます。</li>
+ <li>未信頼アプリは、特権アプリがアクセスできる Web API 操作のサブセットが許可されます。これは、未信頼の Web コンテンツへ開放するのに十分なセキュリティ対策を備えている Web API に限られます。</li>
+</ul>
+<p>ネットワークアクセスなど一部の操作は、すべてのアプリへ暗黙的に許可されると想定されます。一般に、より注意が必要な操作 (例えば電話番号のダイヤルや連絡先リストへのアクセス) を実行するには、アプリで高い信頼レベルが必要です。</p>
+<div class="note">
+ <p><strong>注記</strong>: 利用可能な API や許可レベルについて、詳しくは <a href="/ja/Apps/App_permissions">アプリの許可設定</a> をご覧ください。</p>
+</div>
+<h4 id="Principle_of_Least_Permissions" name="Principle_of_Least_Permissions">最小許可の原則</h4>
+<p>Web アプリに対して、Firefox OS のセキュリティフレームワークは<em>最小許可の原則</em>に従います: 最小限の許可設定から始めて、必要かつ適切なときに追加の権限を選択的に承諾します。デフォルトで、アプリはとても低い許可設定で開始します。これは未信頼の Web コンテンツに似ています。アプリが追加の許可を必要とする Web API を呼び出す場合は、それら追加の許可を<em>マニフェスト</em>に列挙しなければなりません (後述)。Gecko は、マニフェストで適切な特権を明確に要求している場合にのみ、アプリケーションに Web API へのアクセスの承諾を検討します。また Gecko は、Web アプリの<em>タイプ</em> (認定、特権、Web) がアクセスに十分な資格を与えられている場合にのみ、要求された許可を承諾します。</p>
+<h4 id="Review_Process_for_Privileged_Apps_in_the_Marketplace" name="Review_Process_for_Privileged_Apps_in_the_Marketplace">Marketplace での特権アプリのレビュープロセス</h4>
+<p>アプリを特権アプリにするため、アプリの提供者は認定済みの Marketplace に、判断のためアプリを提出しなければなりません。Marketplace はアプリに、厳格なコードレビュープロセスを受けさせます: アプリの信頼性や整合性の検証、要求された許可が (許可設定の理論的根拠で) 明言された用途で使用されていることの保証、暗黙的な許可設定の使用が適切であることの検証、特権アプリのコンテンツと特権がない外部のコンテンツとの間のインターフェイスに特権昇格攻撃を防ぐための適切な対策があることの確認。Marketplace には、承諾された許可設定によって Web アプリが悪意のある動作をしないようにする責任があります。</p>
+<p>アプリがレビューに合格すると使用が認められて、アプリのマニフェストが Marketplace によってデジタル署名され、モバイルユーザがダウンロードできるようになります。デジタル署名は、Web ストアがなんらかの攻撃を受けた場合に、攻撃者が独自のコンテンツや悪意のあるコードをユーザの携帯電話機にインストールできないようにします。この診断プロセスにより Firefox OS は Marketplace から入手した特権アプリを、ありふれた (未信頼の) Web コンテンツより高く信頼します。</p>
+<div class="note">
+ <p><strong>注記</strong>: <a href="https://marketplace.firefox.com/">Firefox Marketplace</a> を含む Marketplace について、詳しくは <a href="/ja/Marketplace">Marketplace のポータル</a> をご覧ください。</p>
+</div>
+<h3 id="Packaged_and_Hosted_Apps" name="Packaged_and_Hosted_Apps">パッケージ型アプリとホスト型アプリ</h3>
+<p>Firefox OS 向けのアプリは、<em>パッケージ型</em> (携帯電話機に保存) または<em>ホスト型</em> (リモートの Web サーバにあり、マニフェストだけが携帯電話機に保存) になります。これらは、それぞれどのようなセキュリティが管理されるかに違いがあります。それでも、パッケージ型アプリもホスト型アプリもアプリケーションのサンドボックス化を前提としています。これについては後ほど説明します。</p>
+<div class="note">
+ <p><strong>注記</strong>: ホスト型アプリとパッケージ型アプリについて、詳しくは <a href="/ja/Marketplace/Options/Self_publishing">アプリの自主配布</a> をご覧ください。</p>
+</div>
+<h4 id="Packaged_Apps" name="Packaged_Apps">パッケージ型アプリ</h4>
+<p>パッケージ型アプリは、アプリケーションのリソース (HTML5、CSS、JavaScript、画像、メディア) だけでなく、構成物やそれに対応するハッシュの明示的なリストを提供するマニフェストも含む ZIP ファイルで構成されます。認定アプリや特権アプリは、マニフェストにデジタル署名が必要であるためパッケージ型アプリであることが必要です。ユーザがパッケージ型アプリを入手するときは ZIP ファイルが携帯電話機にダウンロードされて、マニフェストを ZIP ファイル内の既知の場所から読み込みます。インストール作業の間に、アプリの構成物が検証されてパッケージ内に引き続き保管されます。すべての明示的な許可設定は実行時に要求され、ユーザにアプリのデータ使用目的を表示して、デフォルトで持続します。</p>
+<p>パッケージ型アプリ内のリソースを参照するため、URL は app: から始まる以下の形式です:</p>
+<p><code>app://<em>identifier</em>/<em>path_within_zipfile</em>/file.html</code></p>
+<p>ここで app:// は ZIP ファイルのマウントポイントを表します。また <em>identifier</em> は、アプリが携帯電話機にインストールされるときに生成される UUID です。この仕組みは、app: URL で示されるリソースが ZIP ファイルに含まれていることを確実にします。app: 内のパスは相対的であり、ZIP ファイル内のリソースへの相対リンクは許可されます。</p>
+<p>パッケージ型アプリは主に認定アプリや特権アプリでの使用を意図していますが、通常の Web アプリもパッケージ型にできます。ただし、単にパッケージ型だからといって信頼度やアクセス許可が向上することはありません。</p>
+<h4 id="Hosted_Apps" name="Hosted_Apps">ホスト型アプリ</h4>
+<p>ホスト型アプリは Web サーバに置かれており、HTTP で読み込まれます。アプリのマニフェストだけが携帯電話機に保存されます。その他すべてはリモートに保管されます。一部の API は特権アプリや認定アプリのみ使用でき、それらのアプリは署名が必要であるためパッケージ型であることが必要です。従って、ホスト型アプリは認定アプリや特権アプリであることを要求する Web API 操作にアクセスできません。</p>
+<p>セキュリティの視点では、ホスト型アプリの動作は通常の Web サイトにとても似ています。ホスト型アプリは、Web サーバ上にあるアプリのルートディレクトリ内のスタートページを指す、ハードコーディングされた完全修飾の URL の呼び出しによって読み込まれます。ホスト型アプリが読み込まれると、携帯電話機は Web サイトを閲覧する際に使用するものと同じ URL へリンクします。</p>
+<h3 id="App_Manifest" name="App_Manifest">アプリマニフェスト</h3>
+<p>Open Web App のマニフェストは、アプリと対話するために Web ブラウザが必要とする情報が含まれています。マニフェストは (少なくとも) アプリの名前と説明を持つ JSON ファイルです。詳しくは<a href="/ja/docs/Apps/FAQs/About_app_manifests" title="Apps/FAQs/About_app_manifests">アプリマニフェストに関する FAQ</a> をご覧ください。</p>
+<h4 id="Example_Manifest" name="Example_Manifest">マニフェストの例</h4>
+<p>以下のコードは、基本的な設定を含んでいるマニフェストのサンプルです:</p>
+<pre class="brush:text">{
+ "name": "My App",
+ "description": "My elevator pitch goes here",
+ "launch_path": "/",
+ "icons": {
+ "128": "/img/icon-128.png"
+ },
+ "developer": {
+ "name": "Your name or organization",
+ "url": "http://your-homepage-here.org"
+ },
+ "default_locale": "en"
+}</pre>
+<h3 id="Security_Settings_in_the_App_Manifest" name="Security_Settings_in_the_App_Manifest">アプリマニフェストでのセキュリティ設定</h3>
+<p>マニフェストには、以下のセキュリティ設定などの設定を含めることもできます:</p>
+<table>
+ <thead>
+ <tr>
+ <th style="width: 152px;">
+ <p>フィールド</p>
+ </th>
+ <th style="width: 479px;">
+ <p>説明</p>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="width: 152px;">
+ <p>permissions</p>
+ </td>
+ <td style="width: 479px;">
+ <p>アプリが要求する許可設定です。アプリは使用するつもりである、ユーザの許可が必要な Web API をすべて列挙しなければなりません。ほとんどの許可設定は特権アプリや認定アプリにとって有意義であり、ホスト型アプリ向けではありません。API ごとのプロパティ:</p>
+ <ul>
+ <li><strong>description</strong>: この API の使用を要求する意図を明記した文字列。このプロパティは必須です。</li>
+ <li><strong>access</strong>: 許可に必要なアクセスの種類を指定する文字列。暗黙的な許可設定は、インストール時に許可されます。このプロパティは一部の API のみ必要です。使用できる値: <strong>read</strong>、<strong>readwrite</strong>、<strong>readcreate</strong>、<strong>createonly</strong>。</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 152px;">
+ <p>installs_allowed_from</p>
+ </td>
+ <td style="width: 479px;">
+ <p>アプリの提供元です。このアプリのインストールの起動を許可する生成元 (スキーマ + ユニークなホスト名) を 1 組または配列で指定できます。アプリの提供者が、インストール元を認定済みの Marketplace (<a href="https://marketplace.firefox.com/">https://marketplace.firefox.com/</a> など) だけに制限できます。</p>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 152px;">
+ <p>csp</p>
+ </td>
+ <td style="width: 479px;">
+ <p>Content Security Policy (CSP) です。アプリで読み込むすべてのページに適用します。攻撃者がアプリへコードを注入することを可能にするバグに対して、アプリを強固にするために使用します。明示しない場合、特権アプリや認定アプリはシステムで定義されたデフォルト設定になります。構文:<br>
+ <a href="/ja/docs/Apps/Manifest#csp">https://developer.mozilla.org/ja/docs/Apps/Manifest#csp</a></p>
+ <p><em>このディレクティブは、適用される CSP を強化するのみです。例えば、特権アプリに適用される CSP を緩和するためには使用できません。</em></p>
+ </td>
+ </tr>
+ <tr>
+ <td style="width: 152px;">
+ <p>type</p>
+ </td>
+ <td style="width: 479px;">
+ <p>アプリケーションの種類です (web、privileged、certified)。</p>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p>Firefox OS はマニフェストが特定の MIME タイプ (<code>application/x-web-app-manifest+json</code>) で、またアプリの提供元と同一の完全修飾ホスト名 (生成元) から提供されることを要求します。この制限は、マニフェストアプリ (従ってアプリマニフェスト) の生成元とインストールされたアプリが要求するページが同一であるときに緩和されます。この仕組みは、Web サイトをだましてアプリマニフェストをホスティングさせることができないようにするために使用します。</p>
+<h3 id="Sandboxed_Execution" name="Sandboxed_Execution">サンドボックス実行</h3>
+<p>本章では、アプリケーションと実行サンドボックスについて説明します。</p>
+<h4 id="Application_Sandbox" name="Application_Sandbox">アプリケーションサンドボックス</h4>
+<p>Firefox OS のセキュリティフレームワークでは、リスクを軽減して携帯電話機、プラットフォーム、データを保護するための多重防護策としてサンドボックス化を使用します。サンドボックス化はアプリを実行している間、アプリの周囲に境界線や制約を設ける手法です。それぞれのアプリは自身のワークスペースで実行され、アクセスが許可された Web API およびデータ、さらにワークスペースに割り当てられたリソース (IndexedDB データベース、Cookie、オフラインストレージなど) にのみアクセスします。</p>
+<p>以下の図は、このセキュリティモデルの概要を示したものです。</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5025/sandbox.png"></p>
+<p>各アプリを分離することで、影響範囲がそれぞれのワークスペース内になります。ワークスペースの外部 (他のアプリや他アプリのデータなど) に干渉することはできません。</p>
+<h4 id="Execution_Sandbox" name="Execution_Sandbox">実行サンドボックス</h4>
+<p>B2G (Gecko) は携帯電話機のハードウェア機能にアクセスできる、高い特権のシステムプロセスで動作します。各アプリは実行時に、B2G システムプロセスの子プロセスである実行環境内で動作します。それぞれの子プロセスは、制限された OS の特権セットを持ちます。例えば、子プロセスはファイルシステムにあるファイルを勝手に直接読み書きすることができません。特権的なアクセスは Web API を通して提供され、それは親の B2G プロセスによって管理されています。親プロセスは子プロセスが特権的な API を要求したときに、そのプロセスがアクションの実行に必要な許可設定があることを保証します。</p>
+<p>アプリは他のプロセスやアプリとコミュニケーションをとることはできず、B2G コアプロセスとのみコミュニケーションをとれます。またアプリは B2G から独立して実行できず、互いにアプリを開くこともできません。アプリ間は間接的 (例えばあるアプリがシステムアラームを発して、別のアプリがその結果としてシステム通知を発生させる場合) にのみ “コミュニケーション” をとることができ、またそれは B2G プロセスが仲介します。</p>
+<h4 id="Hardware_Access_Only_via_the_Web_API" name="Hardware_Access_Only_via_the_Web_API">Web API のみを通したハードウェアアクセス</h4>
+<p>Web アプリは、携帯電話機の機能へアクセスするための入口をひとつだけ持ちます。それは Firefox OS の Web API であり、Gecko に実装されています。Gecko は、モバイルデバイスや下層のサービスへ向かう唯一のゲートウェイを提供します。デバイスのハードウェア機能にアクセスする唯一の手段が、Web API を呼び出すことです。この仕組みを迂回してハードウェアと直接対話したり低レベルのソフトウェア層に入り込んだりするための、“ネイティブな” API や他の経路 (“バックドア”) はありません。</p>
+<h2 id="Security_Infrastructure" name="Security_Infrastructure">セキュリティインフラストラクチャ</h2>
+<p>以下の図は、Firefox OS のセキュリティフレームワークの構成要素を示したものです:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5027/securityframework.png" style="width: 979px; height: 591px;"></p>
+<ul>
+ <li><strong>Permission Manager</strong>: Web API の機能にアクセスするためのゲートウェイであり、下層のハードウェアへの唯一の入口です。</li>
+ <li><strong>Access Control List</strong>: Web API の機能へアクセスするために必要な役割や許可設定のマトリックスです。</li>
+ <li><strong>Credential Validation</strong>: アプリやユーザの認証です。</li>
+ <li><strong>Permissions Store</strong>: Web API の機能へアクセスするために必要な特権のセットです。</li>
+</ul>
+<h3 id="Permissions_Management_and_Enforcement" name="Permissions_Management_and_Enforcement">許可設定の管理と適用</h3>
+<p>Firefox OS のセキュリティは、Web アプリに与えた許可設定を検証および適用するように設計されています。</p>
+<p>システムは個々の許可設定を、コンテンツが要求した場合、かつアプリのマニフェストで適切な許可設定の要求がある場合にのみアプリへ与えます。一部の許可設定はユーザによる追加の認証が要求され、ユーザは許可設定を認めるかを促されます (アプリがユーザの現在位置へのアクセスを要求した場合と同様)。このアプリ中心のフレームワークは従来の役割中心の手法 (個々の役割が許可設定のセットにそれぞれ割り当てられる) より、細かく許可設定を制御します。</p>
+<p>Web API はアクセションとリスナのセットを持ちます。各々の Web API は許可設定のレベルを要求します。Web API を呼ぶときに毎回、Gecko は以下に基づいて許可設定の要件を確認 (役割を探索) します:</p>
+<ul>
+ <li>呼び出したアプリに割り当てられている許可設定 (マニフェストで指定されているものやアプリの種類に基づくものによる)</li>
+ <li>要求された操作 (Web API の呼び出し) を実行するために必要な許可設定</li>
+</ul>
+<p>要求内容が許可設定の基準に合わない場合、Gecko は要求を拒否します。例えば未信頼のアプリは、信頼済みアプリ向けに用意された Web API を実行できません。</p>
+<h3 id="Prompting_Users_for_Permission" name="Prompting_Users_for_Permission">ユーザへの許可の問い合わせ</h3>
+<p>Web アプリへ暗黙的に割り当てられた許可設定に加えて、特定の操作は実行可能にする前に、ユーザによる明示的な許可が必要です (例えば、"Web アプリがカメラにアクセスしてよいか?")。これらの操作のために、Web アプリは許可が必要である根拠をマニフェストで明示することが求められます。この<em>データの使用目的</em>はユーザに対して、許可設定が認められた場合にそのデータで何を行おうとしているかや関連するリスクを告知します。これにより、ユーザは情報に基づく判断やデータ管理の制御が可能になります。</p>
+<h3 id="Secure_App_Update_Process" name="Secure_App_Update_Process">セキュアなアプリの更新プロセス</h3>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5029/updateprocess.png" style="width: 979px; height: 102px;"></p>
+<p><em>特権</em>アプリのアップグレードやパッチ適用のため、アプリの提供者は更新されたパッケージを認定済みの Marketplace に提出します。このパッケージはレビューを受けて、署名した上でユーザが利用可能になります。Firefox OS デバイスでは、アプリ更新ユーティリティが定期的にアプリの更新を確認します。アップデートが利用可能になると、ユーザにそれらを適用したいかを問い合わせます。アップデートを携帯電話機へインストールする前に、パッケージは以下の点について検証されます:</p>
+<ul>
+ <li>アップデートの提供元 (アップデートやマニフェストの出所のプロトコル:ドメイン:ポートの検証)</li>
+ <li>ファイルの整合性 (SHA-256 ハッシュの確認)</li>
+ <li>コード署名 (信頼されたルート証明書に対する証明書の確認)</li>
+</ul>
+<p>携帯電話機に更新が適切に適用されたことを保証するための、厳密なチェックがあります。アップデートプロセスを始める前に、完全なアップデートを特定の安全な場所にダウンロードしなければなりません。インストールしてもユーザのデータは上書きされません。</p>
+<div class="note">
+ <p><strong>注記</strong>: アプリの更新について詳しくは、<a href="/ja/Apps/Updating_apps">アプリの更新</a> をご覧ください。</p>
+</div>
+<h2 id="Device_Security_(Hardware)" name="Device_Security_(Hardware)">デバイスのセキュリティ (ハードウェア)</h2>
+<p>モバイルデバイスハードウェアのセキュリティの仕組みは、一般的に OEM によって制御されます。例えば OEM は、誤った PIN 入力によりロックされた (Subscriber Identity Module) カードのロックを解除するための PUK (PIN Unlock Key) コードとともに、SIM カードのロック機能を提供するかもしれません。詳しくは OEM に問い合わせてください。Firefox OS はパスコードやタイムアウトスクリーンの設定を可能にしています。これについては次の章で説明します。</p>
+<h2 id="Data_Security" name="Data_Security">データのセキュリティ</h2>
+<p>ユーザは個人用にしておきたい自身の携帯電話機に、連絡先、金融情報 (銀行やクレジットカードの情報)、パスワード、カレンダーなどの個人情報を保管できます。Firefox OS は機密情報を、窃取、悪用、破壊する可能性がある悪意のアプリから保護するようになっています。</p>
+<h3 id="Passcode_and_Timeout_Screens" name="Passcode_and_Timeout_Screens">パスコードとタイムアウトスクリーン</h3>
+<p>Firefox OS は、パスコードを入力したものだけが電話機を使用できるようにするために、ユーザが電話機にパスコードを設定できるようにしています。また Firefox OS は、電話機で何もしていない時間 (設定変更可能) が経過した後に表示されるタイムアウトスクリーンを提供しており、電話機の使用を再開する前にパスコード認証を求めます。</p>
+<h3 id="Sandboxed_Data" name="Sandboxed_Data">サンドボックス化されたデータ</h3>
+<p>前に説明したように、アプリは実行時にサンドボックス化されます。これは明示的に共有されておりアプリがアクセスするのに十分な許可を受けているデータを<em>除き</em>、アプリが他のアプリに属するデータにアクセスすることを防ぎます。</p>
+<h3 id="Serialized_Data" name="Serialized_Data">シリアライズ化されたデータ</h3>
+<p>Web アプリは、ファイルシステムへ直接読み書きする方法がありません。代わりに、ストレージへのアクセスはすべて Web API を通して行われます。Web API によるストレージの読み書きは、中間の SQLite データベースを通して行います。直接 I/O を行う手段はありません。それそれのアプリは自身のデータストアを持ち、それはデータベースによりディスクへシリアライズされます。</p>
+<h3 id="Data_Destruction" name="Data_Destruction">データの廃棄</h3>
+<p>ユーザがアプリをアンインストールするときは、アプリケーションに関連づけられたすべてのデータ (Cookie、localStorage、IndexedDB など) が削除されます。</p>
+<h3 id="Privacy" name="Privacy">プライバシー</h3>
+<p>Mozilla は自身のプライバシーの原則 (<a href="https://www.mozilla.org/privacy/">https://www.mozilla.org/privacy/</a>) に従って、ユーザのプライバシーやデータの保護を約束しており、それは Mozilla Manifesto (<a href="https://www.mozilla.org/about/manifesto.html">https://www.mozilla.org/about/manifesto.html</a>) に由来します。Mozilla Firefox のプライバシーポリシーでは、Mozilla Firefox Web ブラウザのユーザに関する情報を Mozilla がどのように収集および使用するかについて、Firefox が何を Web サイトに送信するか、データを守るために Mozilla は何をするか、Mozilla の Data Practices などを説明しています。詳しくは以下をご覧ください:</p>
+<ul>
+ <li><a href="http://www.mozilla.org/en-US/legal/privacy/firefox.html">http://www.mozilla.org/en-US/legal/privacy/firefox.html</a> (<a href="http://www.mozilla.jp/legal/privacy/firefox/">参考訳</a>)</li>
+ <li><a href="https://blog.mozilla.org/privacy/">https://blog.mozilla.org/privacy/</a></li>
+ <li><a href="http://support.mozilla.org/ja/kb/privacy-and-security-settings-firefox-os-phones">http://support.mozilla.org/ja/kb/privacy-and-security-settings-firefox-os-phones</a></li>
+</ul>
+<p>Firefox OS はユーザの手によるユーザデータの制御手段を投入することでこれらの原則を実践しており、ユーザはこの個人情報がどこへ行くかを決定できます。Firefox OS は以下の機能を提供します:</p>
+<ul>
+ <li>Do Not Track 設定</li>
+ <li>Firefox ブラウザの Cookie を無効化できる機能</li>
+ <li>Firefox OS の閲覧履歴を削除できる機能</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/security/system_security/index.html b/files/ja/archive/b2g_os/security/system_security/index.html
new file mode 100644
index 0000000000..164c69ed87
--- /dev/null
+++ b/files/ja/archive/b2g_os/security/system_security/index.html
@@ -0,0 +1,385 @@
+---
+title: システムセキュリティ
+slug: Archive/B2G_OS/Security/System_security
+tags:
+ - B2G
+ - Firefox OS
+ - Security
+translation_of: Archive/B2G_OS/Security/System_security
+---
+<div class="summary">
+ <p><span class="seoSummary">本記事では、Firefox OS のシステムセキュリティモデルの概要を説明します。すなわち、オペレーティングシステムがどのようにセキュリティや許可設定の適用を提供するかを説明します。</span></p>
+</div>
+<h2 id="Terminology" name="Terminology">用語</h2>
+<p>システムセキュリティモデルに踏み込む前に、ここで理解しておきたいキーワードを挙げます。</p>
+<dl>
+ <dt>
+ Web アプリケーション</dt>
+ <dd>
+ <strong>Web アプリケーション</strong>、<strong>open web app</strong>、<strong>moz app</strong>、あるいは<strong>アプリケーション</strong>とは、<a href="/ja/docs/HTML" title="HTML">HTML</a>、<a href="/ja/docs/JavaScript" title="JavaScript">JavaScript</a> などのオープンな Web 技術で記述され、Firefox OS (または、同様のインストール可能なアプリモデルをサポートする、他のプラットフォーム) で動作するプログラムです。B2G でユーザが目にするアプリケーションはすべて、Web アプリケーションです。例えば、ダイヤラーは Firefox OS の Web app です。ここでは、ブラウザ内で動作しているページは Web app とは呼びません。</dd>
+ <dt>
+ b2g プロセス</dt>
+ <dd>
+ Firefox OS の <strong>b2g プロセス</strong>は、一般的に "<strong>b2g</strong>" または "<strong>Gecko</strong>" と呼ばれます。これは本質的には、高い権限で実行 (すなわち root として実行) しているアプリケーションであり、任意のアプリケーションが持つすべてのリソースやデバイスへのアクセスを制御します。</dd>
+ <dt>
+ Content プロセス</dt>
+ <dd>
+ これは <strong>b2g プロセス</strong>から生み出された子プロセスで、b2g プロセスと通信します。このプロセスは、Web アプリケーションを表します。またこれは、低い権限のプロセス (すなわち通常のユーザで実行され、オペレーティングシステムへのアクセスや参照範囲はごく限られています) です。Content プロセスは、プロセス間通信 (IPC) を使用して Firefox OS のコアプロセスと通信します。</dd>
+ <dt>
+ IPDL</dt>
+ <dd>
+ Intercommunication Protocol Definition Language のことであり、詳しくは <a href="/ja/docs/IPDL" title="">IPDL</a> をご覧ください。</dd>
+ <dt>
+ AOSP</dt>
+ <dd>
+ Android Open Source Project のことです。</dd>
+ <dt>
+ システムコール</dt>
+ <dd>
+ ユーザ空間 (プロセス) とカーネルとの間で対話するためのインターフェイスです。この他に、ユーザ空間とカーネルが直接対話する方法はありません。</dd>
+ <dt>
+ DAC、MAC</dt>
+ <dd>
+ 任意アクセス制御 (<span style="color: green;">Discretionary Access Control</span>) (ユーザが設定する) および強制アクセス制御 (<span style="color: green;">Mandatory Access Control</span>) (カーネルにより強制される) のことです。</dd>
+ <dt>
+ FOTA</dt>
+ <dd>
+ ファームウェアの Over The Air (<span style="color: green;">Firmware Over The Air</span>) 更新システムの仕組みです。ファームウェア全体の更新を意味する用語であり、通常は "over the air"、すなわち無線通信を用いて携帯電話へ送信します。</dd>
+ <dt>
+ MSU、MAR</dt>
+ <dd>
+ Mozilla System Updater および Mozilla ARchive のことです。Gecko の更新を意味する用語であり、デスクトップ版 Firefox と同じ更新機構およびアーカイブ形式を使用します。</dd>
+</dl>
+<h2 id="Goals_and_scope_of_the_Firefox_OS_system_security_model" name="Goals_and_scope_of_the_Firefox_OS_system_security_model">Firefox OS システムセキュリティモデルの目的と範囲</h2>
+<p>Firefox OS システムセキュリティモデルは、以下のように設計しています:</p>
+<ul>
+ <li>Web アプリケーションがアクセスまたは使用できるリソースの範囲を、制限および強制します。</li>
+ <li>いくつかのセキュリティ層が、オペレーティングシステムで正しく使用されるようにします。</li>
+ <li>Gonk 層から、セキュリティバグによって引き起こされる脆弱性の影響を制限および抑制します。</li>
+ <li>Web アプリケーションの許可設定やセキュリティ機能に関するアプリケーションについては、<a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security" title="Mozilla/Firefox_OS/Security/Application_security">アプリケーションセキュリティ</a>モデルで詳しく説明します。</li>
+</ul>
+<p>それぞれの目的の詳細説明や Firefox OS でこれらをどのように対処しているかについては、以降の章で説明します。</p>
+<h2 id="Enforcing_permissions" name="Enforcing_permissions">許可設定の適用</h2>
+<p><a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security" title="Mozilla/Firefox_OS/Security/Application_security">アプリケーションセキュリティ</a>モデルでは、どのようにしてユーザが直接または信頼されたサードパーティを通してアプリケーションの許可設定を承諾するかを説明しています。これらの許可設定は<strong>コアプロセス</strong> への IPC コールによって実現する、リソースへの全アクセスに強制することにより、<strong>content プロセス</strong> に適用されます。</p>
+<ul>
+ <li>Firefox OS のコアプロセスである <code>b2g</code> は高い権限を持ち、ほとんどのハードウェアデバイスにアクセスできます。</li>
+ <li>Web アプリケーションは低い権限の content プロセスで動作して、また IPC を使用して <code>b2g</code> コアプロセスとの通信のみが可能であり、IPC は <a href="/ja/docs/IPDL" title="IPDL">IPDL</a> で実装されます。</li>
+ <li>content プロセスは、リソースにオペレーティングシステムレベルではアクセスできません。</li>
+ <li>それぞれの Web API は 1 つ以上の IPDL プロトコル定義ファイル (*.ipdl) が結びつけられます。</li>
+ <li>Firefox OS の content プロセスは <a href="/ja/docs/IPDL" title="IPDL">IPDL</a> の仕組みを通してのみコアプロセスと通信でき、その仕組みは content のためにアクションを行います。</li>
+</ul>
+<h2 id="Content_process_initialization" name="Content_process_initialization"><a name="Content_processes">Content プロセスの初期化</a></h2>
+<p>すべての Web アプリケーションは低い権限および分離されたプロセスで実行します: それは Firefox OS の <strong>content プロセス</strong> です。このプロセスは、特別な <a href="/ja/docs/Web/HTML/Element/iframe" title="HTML の &lt;iframe> 要素は、ブラウジングコンテキスト (browsing context) の入れ子を表現し、事実上現在のページに他の HTML ページを埋め込むことができます。HTML 4.01 では、文書は head および body、または head および frameset を持つことができ、body と frameset の両方は持ちません。しかし、&lt;iframe> は通常の文書 body 内で使用できます。ブラウジングコンテキストはそれぞれ、セッション履歴とアクティブな文書を持ちます。埋め込みコンテンツを含む側のブラウジングコンテキストを、親ブラウジングコンテキストと呼びます。トップレベルのブラウジングコンテキスト (親を持ちません) は通常ブラウザーウィンドウです。"><code>&lt;iframe&gt;</code></a> のタイプである <em>&lt;iframe mozapp&gt;</em> に達したときに、<code>b2g</code> コアプロセスによって起動されます。これは Web アプリケーションと残りの content とを分離するとともに、マニフェストに強く結びつけられています (詳しくは<a href="/ja/docs/Mozilla/Firefox_OS/Security/Application_security" title="Mozilla/Firefox_OS/Security/Application_security">アプリケーションセキュリティ</a>モデルをご覧ください)。content プロセスは、"out of process" コンテナまたは OOP と呼ばれるコンテナ内で開始します。これは <code>plugin-container</code> プロセスに相当しており、デスクトップ版 Firefox の <code>plugin-container</code> で使用しているものと似たコードを使用しています。</p>
+<h3 id="Risks" name="Risks">リスク</h3>
+<ul>
+ <li>Web アプリケーションの content プロセスを生み出す際の情報漏えい。</li>
+ <li>オペレーティングシステムのりソースへのアクセス、および <code>b2g</code> と同じ水準への権限昇格。</li>
+ <li>content プロセス初期化の迂回。</li>
+</ul>
+<h3 id="Implementation" name="Implementation">実装</h3>
+<h4 id="Initialization_within_the_b2g_process" name="Initialization_within_the_b2g_process">b2g プロセスでの初期化</h4>
+<p>以下の順序で行います:</p>
+<ol>
+ <li><code>fork()</code></li>
+ <li><code>setuid(new, different, unused user id|nobody)</code> (特権がないユーザ)</li>
+ <li><code>chrdir('/')</code></li>
+ <li><code>execve('plugin-container')</code></li>
+</ol>
+<p>これは、OOP プロセスが分離されたメモリ空間 (新しいプロセス)、および <code>b2g</code> と同じ水準の権限に昇格できない低権限のユーザで実行するようにします。</p>
+<h4 id="File_descriptor_handling" name="File_descriptor_handling">ファイルディスクリプタの制御</h4>
+<p>ファイルディスクリプタは、ホワイトリスト方式を使用して制御します。許可されたファイルディスクリプタ (FD) のリストは、<code>mFileMap</code> オブジェクト内に生成および保管されます。<code>LaunchApp()</code> 関数は、ホワイトリスト上にないすべての FD を強制的に閉じます。これは、<code>fork()</code> (FD がコピーされるとき) と <code>execve()</code> (新しいアプリが実行開始するとき) の間に行います。</p>
+<p>ブラックリスト (close-on-exec フラグ: <code>CLOEXEC</code>) を使用する伝統的な方式とは異なり、開いたままの FD がないようにします。従って、より信頼できます。</p>
+<h2 id="Content_process_sandboxing_(lowered_rights_content_processes)" name="Content_process_sandboxing_(lowered_rights_content_processes)"><a name="Content_process_sandboxing"></a>Content プロセスのサンドボックス化 (低権限の content プロセス)</h2>
+<h3 id="Risks_2" name="Risks_2">リスク</h3>
+<ul>
+ <li>任意のコード実行につながる、Gecko ランタイムのメモリ破壊や論理エラー。</li>
+ <li>同様に任意のコード実行につながる、オペレーティングシステム自体 (特にカーネル) の欠陥。</li>
+ <li>情報漏えい、ファイルシステムへの読み書きアクセス。</li>
+</ul>
+<p>以下は前述のリスクの簡単な要約に加えて、サンドボックス有効時の脅威をモデル化した表です。</p>
+<div class="warning">
+ <p><strong>ねらい</strong>: 攻撃者が content プロセスで任意のコードを実行した場合に発生する脅威を以下に示します。言い換えると、攻撃者はすでに Gecko の脆弱性を発見しています。</p>
+</div>
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">脅威</th>
+ <th scope="col">考えられる影響</th>
+ <th scope="col">要因となる可能性</th>
+ <th scope="col">提案された緩和策</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ <p>悪意のある content プロセスが、既存のカーネル脆弱性を悪用する</p>
+ <p>"2 段階の攻撃"</p>
+ </td>
+ <td><strong>重大</strong>: デバイスの完全な制御</td>
+ <td><strong>低</strong>: content プロセスが可能なシステムコールの数は制限されている。</td>
+ <td>
+ <ul>
+ <li>許可するシステムコールの数を極力減らす。</li>
+ <li>PaX (Protection Against eXecution) など、カーネルを保護するための先進的なパッチを使用する。</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>親プロセスへの権限昇格</p>
+ <p>悪意のある content プロセスが、IPDL を通して親プロセスを悪用する</p>
+ <p>"2 段階の攻撃"</p>
+ </td>
+ <td><strong>高</strong>: かなりの量の重要なシステムコールを実行される可能性 (データ喪失、カメラへのアクセス、ネットワークアクセスなど)</td>
+ <td><strong>中</strong>: 親プロセスには大量のコードがある。攻撃箇所が多数存在する。最小限のサニタイズを施したデータが IPDL で送信される (例えば、ポインタの送信が可能)。</td>
+ <td>
+ <ul>
+ <li>親プロセスを root 以外/特権がないユーザで実行する。</li>
+ <li>可能な限り多くの親プロセスのサンドボックス化を試みる。</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>悪意のある content プロセスによる、既存のカーネル脆弱性を悪用した親プロセスの侵害</p>
+ <p>"3 段階の攻撃".</p>
+ </td>
+ <td><strong>重大</strong>: デバイスの完全な制御</td>
+ <td>
+ <p><strong>低</strong>: 親プロセスに、IPDL を通したアクセスが可能なバグが必要。</p>
+ <p>親プロセスがアクセスできるシステムコール内に、カーネルの脆弱性が必要 (content プロセスに比べて、親プロセスはより多くのシステムコールにアクセス可能)。</p>
+ </td>
+ <td>
+ <ul>
+ <li>親プロセスを root 以外/特権がないユーザで実行する。</li>
+ <li>可能な限り多くの親プロセスのサンドボックス化を試みる。</li>
+ <li>PaX (Protection Against eXecution) など、カーネルを保護するための先進的なパッチを使用する。</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>悪意のある content プロセス、親プロセス、あるいは Web アプリケーションが、デバイスのハードウェアに存在するバグを悪用する</p>
+ <p>"1 および 2 段階の攻撃"</p>
+ </td>
+ <td>
+ <p><strong>高</strong>: 高い権限の操作 (電話の発信、SMS の送信など) を行われる可能性</p>
+ <p><strong>重大</strong>: ハードウェアレベルでコードを実行し、デバイスを完全に制御する可能性</p>
+ </td>
+ <td><strong>低</strong>: ハードウェアとの通信経路、IPDL またはシステムコールを通した許可、およびハードウェアのバグが必要。</td>
+ <td>
+ <ul>
+ <li>ハードウェアデバイスのファズテスト。</li>
+ <li>カーネルや親プロセスへの API パッチによる、回避策の提供 (脆弱性があるハードウェア機能へのアクセス無効化や、データを渡す前のサニタイジング)。</li>
+ </ul>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<div class="note">
+ <p><strong>注記</strong>: PaX (Protection Against eXecution) は <a href="http://grsecurity.net/~paxguy1/" title="http://grsecurity.net/~paxguy1/">GrSecurity</a> (<a href="http://pax.grsecurity.net/docs" title="http://pax.grsecurity.net/docs">docs</a>) によるカーネルパッチで、"PaX" に加えて UDEREF や SMAP といった付加的な保護機能も実装しています。</p>
+ <p>リストアップしていない脆弱性は、サンドボックス自体で緩和します。</p>
+</div>
+<h3 id="Implementation_2" name="Implementation_2">実装</h3>
+<div class="geckoVersionNote">
+ <p>スーパーバイザーは未実装です。</p>
+</div>
+<p><img alt="Process Model Sandbox" src="https://mdn.mozillademos.org/files/5347/sq1ftZvuape-uCT8CDfJ10Q.png" style="width: 708px; height: 470px;"></p>
+<div class="note">
+ <p><strong>注記</strong>: Content プロセスは Web アプリケーションを実行しており、サンドボックス化されたプロセスです。</p>
+</div>
+<h4 id="Gecko.E2.80.99s_APIs_Implementation" name="Gecko.E2.80.99s_APIs_Implementation">Gecko の API 実装</h4>
+<p>content プロセス内で JavaScript を経由して公開される API は、ファイルシステムのリソースに直接アクセスしてはいけません。代わりに、それらはリソースへの IPDL コールを発行します。つまり、リソースにアクセスする API は、content プロセスに代わってリソースにアクセスするためのコンポーネントを親プロセスに持っていなければなりません。</p>
+<p>コールを実装する際は、追加の策をとらなければなりません。すべての入力情報は、親プロセスによってサニタイズされます。content プロセスは信頼できず、また content プロセスから来る IPDL メッセージも信頼できません。</p>
+<div class="warning">
+ <p><strong>警告</strong>: content プロセスに与えられる信頼はサンドボックスの回避に使用でき、また使用されるでしょう。</p>
+</div>
+<h4 id="What_is_seccomp" name="What_is_seccomp">seccomp とは何か</h4>
+<p>seccomp とは、セキュアコンピューティングモード (<span style="color: green;">secure computing mode</span>)を意味します。現在は 2 つのバージョンの seccomp があります:</p>
+<ol>
+ <li>
+ <p><code>seccomp</code>: Linux カーネル 2.6.12 以上で使用可能</p>
+ <ul>
+ <li>
+ <p><code>seccomp</code> を有効にすると、プロセスの <code>read</code>、<code>write</code>、<code>sigreturn</code>、<code>exit</code> を行うためのシステムコールを制限します。</p>
+ </li>
+ <li>
+ <p><code>prctl()</code> システムコールを使用します。</p>
+ </li>
+ <li>
+ <p>プロセスの初期化を始めた後、調停領域で開始可能です。</p>
+ </li>
+ </ul>
+ </li>
+ <li>
+ <p><code>seccomp-bpf</code>: seccomp mode filter または mode 2 とも呼ばれ、Linux カーネル 3.5 以上で利用可能</p>
+ <ul>
+ <li>
+ <p><code>seccomp</code> と同じですが、システムコールのフィルタに BPF を実装しています。</p>
+ </li>
+ <li>
+ <p>ハードコードされたシステムコールの代わりに、初期化時にシステムコールや引数のホワイトリストを使用可能です。</p>
+ </li>
+ <li>
+ <p>より柔軟性があり、"より自由なサンドボックス" を実現できます。やや弱いサンドボックス向け、および "より厳しいサンドボックス" へのスムーズな移行パス向けに有用です。</p>
+ </li>
+ <li>
+ <p>特権を復帰するためのプロセスや子プロセスを妨げるフラグを追加します。</p>
+ </li>
+ </ul>
+ </li>
+</ol>
+<div class="note">
+ <p><strong>注記</strong>: 柔軟性を理由に私たちは seccomp-bpf の使用を決めて、それゆえに seccomp-bfd を 3.5 未満のカーネルにバックポートしました。これには、ほとんどの現行 Android カーネルも含みます。パッチはすでに使用できる状態であり、通常は競合なしに適用できます (バグ <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=790923" title="https://bugzilla.mozilla.org/show_bug.cgi?id=790923">790923</a> をご覧ください)。</p>
+</div>
+<h4 id="Seccomp-bpf_performance" name="Seccomp-bpf_performance">Seccomp-bpf のパフォーマンス</h4>
+<p><code>seccomp-bpf</code> はシステムコールがあるたびに、パフォーマンスに影響を与えます。実装に依存して測定するような、正確なベンチマークはありません。</p>
+<p>実行中のプロセス向けに seccomp-bdf が有効でシステムコールが行われるときに、最大 1% 程度パフォーマンスに影響を与えると推定しています。これは QA で測定すべきです。</p>
+<p>私たちのプロセスモデルではシステムコールの数を著しく削減したため、実際のパフォーマンスへの影響はほぼないであろうと予測しています。</p>
+<p>しかし IPDL コールはその実装により、レイテンシを追加してパフォーマンスを下げるでしょう。OpenGL コールのようなリソース集約的 API 向けの <a href="http://code.google.com/p/chromium/issues/detail?id=29120" style="text-decoration: none;">Chromium の実装</a>を見ることを強く推奨します。<code>seccomp-bpf</code> と同様に、IPDL コールの数を最小化すればパフォーマンスへの影響は最小化されるでしょう。</p>
+<h3 id="Implementation_3" name="Implementation_3">実装</h3>
+<p>Gecko では <em><code>--enable-content-sandbox</code></em> で <code>seccomp</code> を有効化します。</p>
+<p>拒否されたシステムコールがある場合に報告するレポーターはデフォルトでビルドされません。<code>--enable-content-sandbox-reporter</code> で有効化します。</p>
+<p>コードの大部分は <code>gecko/security/sandbox</code> にあります。ホワイトリスト自体は <code>gecko/security/sandbox/seccomp_filter.h</code> にあります。</p>
+<p>ホワイトリストには、区画化に使用できるシステムコールが含まれます。通常、これらのシステムコールには理由を表すコメントがあり、最終的に影響があるコードが修正されたときに削除されるでしょう。従って、サンドボックスを破壊してあまり深く考慮せずにホワイトリスト内のシステムコールを追加するコードを加えることはほとんどありません。疑わしいものはバグを提示します。しかしこれはほとんどの場合に不正確であり、代わりにリソースは制御されて b2g プロセスにアクセスされ、アクセスが承諾されるかデータがサニタイズされた場合に content プロセスへ渡されます。</p>
+<h2 id="File_system_hardening_2" name="File_system_hardening_2"><a name="File_system_hardening"></a>ファイルシステムの堅固化</h2>
+<h3 id="Risks_3" name="Risks_3">リスク</h3>
+<ul>
+ <li>他のユーザに属するファイルの書き込み、削除、読み取り。これは情報漏えいや権限昇格といった予期せぬ動作につながるおそれがあります。</li>
+ <li>アプリケーションの脆弱性を通した、ネイティブコードの実行。</li>
+ <li><code>setuid</code> プログラムの脆弱性 (そして権限昇格)。</li>
+</ul>
+<h3 id="Implementation_4" name="Implementation_4">実装</h3>
+<p>理論的根拠は、ユーザのコンテンツを含む領域のみ読み書き可能としてよく (将来 OS 自身が新たに読み書き可能な領域を要求しない限り)、また <code>nodev</code>、<code>nosuid</code>、および <code>noexec</code> オプションを含まなければならない、ということです。標準的なファイルシステムのマウントは、以下のように制限します:</p>
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">マウントポイント</th>
+ <th scope="col">ファイルシステム</th>
+ <th scope="col">オプション</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>/</code></td>
+ <td>rootfs</td>
+ <td>読み取り専用</td>
+ </tr>
+ <tr>
+ <td><code>/dev</code></td>
+ <td>tmpfs</td>
+ <td>読み書き可能、nosuid、noexec、mode=0755</td>
+ </tr>
+ <tr>
+ <td><code>/dev/pts</code></td>
+ <td>ptsfs</td>
+ <td>読み書き可能、nosuid、noexec、mode=0600</td>
+ </tr>
+ <tr>
+ <td><code>/proc</code></td>
+ <td>proc</td>
+ <td>読み書き可能、nosuid、nodev、noexec</td>
+ </tr>
+ <tr>
+ <td><code>/sys</code></td>
+ <td>sysfs</td>
+ <td>読み書き可能、nosuid、nodev、noexec</td>
+ </tr>
+ <tr>
+ <td><code>/cache</code></td>
+ <td>yaffs2 または ext4</td>
+ <td>読み書き可能、nosuid、nodev、noexec</td>
+ </tr>
+ <tr>
+ <td><code>/efs</code></td>
+ <td>yaffs2 または ext4</td>
+ <td>読み書き可能、nosuid、nodev、noexec</td>
+ </tr>
+ <tr>
+ <td><code>/system</code></td>
+ <td>ext4</td>
+ <td>読み取り専用、nodev</td>
+ </tr>
+ <tr>
+ <td><code>/data</code></td>
+ <td>ext4</td>
+ <td>読み書き可能、nosuid、nodev、noexec</td>
+ </tr>
+ <tr>
+ <td><code>/mnt/sdcard</code></td>
+ <td>ext4 または vfat</td>
+ <td>読み書き可能、nosuid、nodev、noexec、uid=1000、fmask=0702、dmask=0702</td>
+ </tr>
+ <tr>
+ <td><code>/acct</code></td>
+ <td>cgroup</td>
+ <td>読み書き可能、nosuid、nodev、noexec</td>
+ </tr>
+ <tr>
+ <td><code>/dev/cpuctl</code></td>
+ <td>cgroup</td>
+ <td>読み書き可能、nosuid、nodev、noexec</td>
+ </tr>
+ </tbody>
+</table>
+<div class="note">
+ <p><strong>注記:</strong> 正確なマウントポイントは変わるかもしれません。</p>
+</div>
+<h3 id="Linux_DAC_2" name="Linux_DAC_2"><span class="mw-headline" id="Linux_DAC">Linux DAC</span></h3>
+<p>Linux DAC は、有名な Linux のファイルシステムパーミッションモデルを表します。</p>
+<div class="note">
+ <p><strong>注記: </strong>これは伝統的な ユーザ/グループ/その他 のパーミッションモデルであり、Linux POSIX 1.e ACL では<strong>ありません</strong>。</p>
+</div>
+<ul>
+ <li>Web アプリケーションシステムのユーザは、どのファイルに対しても書き込みアクセスができません。</li>
+ <li><code>setuid</code> バイナリの使用は、必要に応じて制限されます。</li>
+ <li>新たな content プロセスは、穏健な <code>umask</code> で開始します。</li>
+</ul>
+<h2 id="Secure_system_updates" name="Secure_system_updates"><a name="System_updates"></a>安全なシステム更新</h2>
+<h3 id="Risks_4" name="Risks_4">リスク</h3>
+<ul>
+ <li>汚染された更新パッケージデータにより、信頼されていない更新パッケージがインストールされる</li>
+ <li>妥協的な更新チェック:
+ <ul>
+ <li>ユーザは新しい更新が使用できることに気づかない。</li>
+ <li>ユーザが期限切れの更新パッケージを取得する。これはデバイス上のソフトウェアを事実上ダウングレードします。</li>
+ </ul>
+ </li>
+ <li>更新のインストール中にシステムの状態が汚染されたり不明になったりする。これは (例えば) 以下のような状況を引き起こします:
+ <ul>
+ <li>インストール中に見落とされる要素がある。それにはセキュリティの修正が含まれるかもしれません。</li>
+ <li>アップグレード後に、汚染されたシステムによってセキュリティの修正が復活する。</li>
+ </ul>
+ </li>
+ <li>デバイスで実行している更新チェックの仕組みに存在する脆弱性。</li>
+ <li>既知の脆弱性を持つソフトウェアコンポーネントの更新または追跡の欠如。</li>
+</ul>
+<h3 id="Implementation_5" name="Implementation_5">実装</h3>
+<p>Firefox OS プラットフォームのアップグレードやパッチ適用は、携帯電話機内のシステムイメージの継続的な整合性を保証する、セキュアな Mozilla のプロセスを使用して展開されます。更新パッケージは、その組み立て、構築、テスト、デジタル署名の実施について責任を持つ、既知の信頼された提供元 (通常はデバイスの OEM) によって作成されます。</p>
+<h4 id="Firmware_over_the_air_updates" name="Firmware_over_the_air_updates">ファームウェアの over the air 更新</h4>
+<p>システム更新は、Firefox OS スタックの全体あるいは一部に関与する場合があります。更新内容に Gonk の変更が含まれている場合は、インストールプロセスとして <strong>FOTA</strong> (Firmware Over the Air) を使用します。FOTA アップデートには、デバイス管理 (FOTA、ファームウェア、ドライバ)、設定管理 (Firefox OS の設定)、セキュリティ更新、Gaia、Gecko、あるいは他のパッチといった、Firefox OS スタックの他の部分に対するものが含まれることもあります。</p>
+<h4 id="MSU.2FMAR_updates" name="MSU.2FMAR_updates">MSU/MAR 更新</h4>
+<p>Gonk に関与しないアップデートは、Mozilla System Update Utility を使用して実施できます。Firefox OS では、Firefox のデスクトップ製品と同じ更新フレームワーク、プロセス、Mozilla ARchive (MAR) 形式 (更新パッケージで使用) を使用します。</p>
+<h4 id="Update_service" name="Update_service">更新サービス</h4>
+<div class="note">
+ <p><strong>注記: </strong>更新サービスは OEM から提供される場合があります。</p>
+</div>
+<p>携帯電話機内蔵の更新サービスが、定期的にシステム更新の確認を行います。更新パッケージが入手可能になって更新サービスにより検出されると、インストール実施の確認をユーザに促します。更新パッケージをモバイルデバイスへインストールする前に、デバイスのストレージで更新の適用に十分な領域があるかを確認します。またディストリビューションの検証が行われます:</p>
+<ul>
+ <li>更新の提供元 (システム更新やマニフェストの出所のプロトコル:ドメイン:ポートの検証)</li>
+ <li>ファイルの整合性 (暗号技術によるハッシュの確認)</li>
+ <li>コード署名 (信頼されたルートに対する証明書の確認)</li>
+</ul>
+<p>更新プロセスの間に、以下のセキュリティ対策を使用します:</p>
+<ul>
+ <li>Mozilla は更新を、信頼された証明書を使用する SSL 接続で取得することを推奨および期待します。</li>
+ <li>ファームウェアパッケージをインストールする前に、強力な暗号による検証を要求します。</li>
+ <li>更新プロセスを始める前に、完全な更新を特定の安全な場所にダウンロードしなければなりません。</li>
+ <li>システムは更新プロセスを始めるときに、Web アプリケーションを実行しない安全な状態でなければなりません。</li>
+ <li>鍵情報は、デバイス内の安全な場所に保管しなければなりません。</li>
+</ul>
+<p>携帯電話機に更新が適切に適用されたことを保証するための、厳密なチェックがあります。</p>
+<div class="note">
+ <p><strong>注記</strong>: プラットフォームの更新について、詳しくは <a href="/ja/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_update_packages">Firefox OS の更新パッケージを作成、適用する</a> をご覧ください。</p>
+</div>
+<p> </p>
diff --git a/files/ja/archive/b2g_os/simulator/index.html b/files/ja/archive/b2g_os/simulator/index.html
new file mode 100644
index 0000000000..22c358b22d
--- /dev/null
+++ b/files/ja/archive/b2g_os/simulator/index.html
@@ -0,0 +1,114 @@
+---
+title: Firefox OS Simulator
+slug: Archive/B2G_OS/Simulator
+tags:
+ - Apps
+ - Firefox OS
+ - Tools
+translation_of: Archive/B2G_OS/Simulator
+---
+<div class="note">
+<p>このページでは、Firefox OS 1.2 以降をターゲットにする開発者向けの Firefox OS Simulator について説明します。Firefox OS 1.1 向けのアプリを開発している場合は、代わりに <a href="/ja/docs/Tools/Firefox_OS_1.1_Simulator">Firefox OS 1.1 Simulator</a> をご覧ください。</p>
+</div>
+
+<p>Firefox OS Simulator は、Firefox OS デバイスのシミュレーションを行う Firefox OS の上位レイヤー版ですが、デスクトップ環境で動作します。これは多くの場合、アプリのテストやデバッグに実機が必要ないということです。これは Firefox OS デバイスと同じサイズのウィンドウで動作し、Firefox OS のユーザインターフェイスや同梱アプリを含み、そして Firefox OS デバイスの API の多くをシミュレーションします。</p>
+
+<p>Simulator は、Firefox のアドオンとしてパッケージ化および頒布しています。Simulator をダウンロードして Firefox にインストールすると、Simulator の実行、アプリの追加、<a href="/ja/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a> や <a href="/docs/Tools/WebIDE">WebIDE</a> を使用して開発ツールを接続することができます。</p>
+
+<h2 id="Installation" name="Installation">インストール</h2>
+
+<p>Simulator をインストールするには、<a href="/ja/docs/Tools/WebIDE/Setting_up_runtimes#Adding_a_Simulator">WebIDE の外部コンポーネント管理ペイン</a> (Firefox 34 以降で使用できます) を使用します。複数のバージョンを利用できますので、フレキシビリティを最大化するためにすべてインストールすることをおすすめします。</p>
+
+<p>WebIDE のランタイム一覧で、開始する Simulator を選択します。詳しくは <a href="/ja/docs/Tools/WebIDE/Setting_up_runtimes#Selecting_a_runtime">WebIDE のドキュメントで操作手順</a>をご覧ください。Simulator を開始すると WebIDE を使用して実機と同様に、アプリの追加やデバッグが可能になります。</p>
+
+<p><a href="/ja/docs/Mozilla/Firefox_OS/Using_the_App_Manager">アプリマネージャ</a> (WebIDE より前に使用できた古いツール) を使用している場合は、以下のボタンから Simulator をインストールできます:</p>
+
+<p><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" style="margin-bottom: 20px; padding: 10px; color: white; text-align: center; border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; display: inline-block; background-color: rgb(129, 188, 46); white-space: nowrap; text-shadow: rgba(0, 0, 0, 0.247059) 0px 1px 0px; box-shadow: rgba(0, 0, 0, 0.2) 0px 1px 0px 0px, rgba(0, 0, 0, 0.298039) 0px -1px 0px 0px inset;">Simulator をインストール</a></p>
+
+<h2 id="The_Simulator_UI" name="The_Simulator_UI">Simulator のユーザインターフェイス</h2>
+
+<p>Simulator は個別のウィンドウで表示され、320x480 ピクセルのスクリーン領域をシミュレーションするようなサイズになります。タッチイベントをシミュレーションするには、マウスボタンでクリックして、ボタンを押したままドラッグします。よってホームスクリーンで右から左へクリック アンド ドラッグを行うことで、組み込み済みのアプリと合わせてあなたが追加したアプリが表示されます:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/7173/simulator-1.2.png" style="display: block; height: 623px; margin: 0px auto; width: 810px;"></p>
+
+<p>Simulator 下部のツールバーに、ボタンが 2 つあります:</p>
+
+<ul>
+ <li>左側のボタンはホームスクリーンへの移動、または長押しするとタスクリストを表示します。</li>
+ <li>右側のボタンは Simulator の向きを、ポートレートとランドスケープで切り替えます。これは <a href="/ja/docs/WebAPI/Managing_screen_orientation#Listening_orientation_change" title="WebAPI/Detecting_device_orientation">orientationchange</a> イベントを発生させます。</li>
+</ul>
+
+<h2 id="SD_カードのエミュレーション">SD カードのエミュレーション</h2>
+
+<p>Simulator では、デバイスの SD カードを Simulator のプロファイルの "fake-sdcard" ディレクトリにマップします。プロファイル自体は Simulator をインストールした Firefox プロファイルの "extensions" ディレクトリに置かれます。例えば:</p>
+
+<pre>/path/to/Firefox/Profiles/Firefox-profile-name/extensions/fxos_2_2_simulator@mozilla.org/profile/fake-sdcard</pre>
+
+<p><code><a href="/ja/docs/Web/API/Navigator.getDeviceStorage">getDeviceStorage</a></code> API を使用して読み書きしたファイルは、このディレクトリに存在します。</p>
+
+<p>2.2 より前のバージョンの Simulator では、"fake-sdcard" ディレクトリを手動で作成しなければなりませんでした。バージョン 2.2 より、"fake-sdcard" ディレクトリを自動的に作成します。</p>
+
+<p>またバージョン 2.2 より、Simulator をコマンドラインから起動する場合に <code>--storage-path</code> オプションを使用して、別のディレクトリを示すことが可能になりました。</p>
+
+<div class="note"><strong>注記:</strong> これは主に、API のテストを意図した機能です。音楽を "fake-sdcard" ディレクトリから読み取ることはできませんが、システムの <code>~/Music</code> から読み取ることができます。また、画像を <code>~/Pictures</code> から、動画を <code>~/Videos</code> から読み取ることができます。ダウンロードしたファイルは <code>~/Downloads</code> に保存します。user-dirs.dirs による再定義もサポートします。</div>
+
+<h2 id="Limitations_of_the_Simulator" name="Limitations_of_the_Simulator">Simulator の制限事項</h2>
+
+<p>Firefox OS Simulator は完全なシミュレーションではないことに注意してください。</p>
+
+<h3 id="Hardware_limitations" name="Hardware_limitations">ハードウェアの制限事項</h3>
+
+<p>スクリーンサイズを除き、Simulator はメモリ容量や CPU の速度といった、Firefox OS デバイスのハードウェアの制限事項をシミュレーションしません。</p>
+
+<h3 id="Audiovideo_codecs" name="Audiovideo_codecs">Audio/Video コーデック</h3>
+
+<p>以下のコーデックは、ハードウェアアクセラレーションによるデコードに依存するため未サポートです:</p>
+
+<ul>
+ <li>MP3</li>
+ <li>AAC</li>
+ <li>H.264 (MP4)</li>
+ <li>WebM</li>
+</ul>
+
+<p>すなわち、これらのコーデックに依存する Youtube などの Web サイトやビデオ再生アプリのテストに Simulator を使用することはできません。</p>
+
+<h3 id="Unsupported_APIs" name="Unsupported_APIs"><a name="Unsupported-APIs">非対応の API</a></h3>
+
+<p>デバイスで動作する API には、Simulator で動作しないものがあるでしょう。これは一般的に、サポートするハードウェアがデスクトップ PC で使用できないためです。私たちは Geolocation のように一部の API のシミュレーションを実装しており、将来のリリースでさらに増やす予定です。ただし、現時点では以下の API をサポートしていません。これらを使用するとエラーが発生したり、誤った結果になる可能性があります:</p>
+
+<ul>
+ <li><a href="/ja/docs/WebAPI/WebTelephony" title="WebAPI/WebTelephony">Telephony</a></li>
+ <li><a href="/ja/docs/WebAPI/WebSMS" title="WebAPI/WebSMS">WebSMS</a></li>
+ <li><a href="/ja/docs/WebAPI/WebBluetooth" title="WebAPI/WebBluetooth">WebBluetooth</a></li>
+ <li><a href="/ja/docs/WebAPI/Using_Light_Events" title="WebAPI/Using_Light_Events">Ambient Light</a></li>
+ <li><a href="/ja/docs/WebAPI/Proximity" title="WebAPI/Proximity">Proximity</a></li>
+ <li><a href="/ja/docs/WebAPI/Network_Information" title="WebAPI/Network_Information">Network Information</a></li>
+ <li><a href="/ja/docs/Online_and_offline_events" title="Online_and_offline_events">navigator.onLine および offline イベント</a></li>
+ <li><a href="/ja/docs/WebAPI/Vibration" title="WebAPI/Vibration">Vibration</a></li>
+</ul>
+
+<h2 id="Getting_help" name="Getting_help"><a name="Simulator-help"></a>助けを得る</h2>
+
+<p>疑問点がある場合は、<a href="https://lists.mozilla.org/listinfo/dev-developer-tools">dev-developer-tools メーリングリスト</a> や <a href="irc://irc.mozilla.org/#devtools">irc.mozilla.org の #devtools</a> で質問してみてください。</p>
+
+<h3 id="How_to_enable_verbose_logging" name="How_to_enable_verbose_logging"><a name="Simulator-verbose-logging">詳細なログ取得を有効にする</a></h3>
+
+<p>アプリが出力したメッセージは <a href="/ja/docs/Tools/Web_Console">Web コンソール</a>で確認できます。コンソールは<a href="/ja/docs/Tools/WebIDE/Troubleshooting">WebIDE</a>を使用して、アプリに接続できます。コンソールが接続して動作する前の、アプリ起動時に発生する初期のログを取得したい場合は、Simulator で詳細なログ取得を有効にしてください。</p>
+
+<p>about:config を開いて新たな設定項目を<strong>新規作成</strong>します。項目名は Simulator のバージョンにより異なります:</p>
+
+<ul>
+ <li>Firefox OS 1.3 では extensions.fxos_1_3_simulator@mozilla.org.sdk.console.logLevel</li>
+ <li>Firefox OS 1.2 では extensions.fxos_1_2_simulator@mozilla.org.sdk.console.logLevel</li>
+</ul>
+
+<p>この設定項目に文字列値 "all" を設定して、アドオンマネージャでアドオンの無効化および再有効化を行ってください。これで、Simulator の動作に関する詳細なログを<a href="/ja/docs/Tools/Browser_Console">ブラウザコンソール</a>に表示します。</p>
+
+<h2 id="Simulatorをビルドする">Simulatorをビルドする</h2>
+
+<p>Simulator に含まれる Gecko や Gaia のコードに適用するパッチのテストを行いたい場合は、カスタマイズした Gecko ビルドや Gaia プロファイルを使用するために <a href="/ja/Firefox_OS/Running_custom_builds_in_the_App_Manager">Simulator を変更</a>したいと考えるでしょう。あるいは、チェックアウトした Gecko から<a href="/ja/Firefox_OS/Building_the_Firefox_OS_simulator">新たな Simulator をビルドする</a>こともできます。</p>
+
+<h2 id="代替手段">代替手段</h2>
+
+<p><a href="/ja/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia">Gaia を実行する色々な方法</a> — 実行の容易さの<em>昇順</em>および出荷製品への近さの<em>逆順</em>に並べたリストもあります (このリストによれば、Firefox OS Simulator は実行がもっとも容易、およびもっとも出荷製品から遠い方法です)。</p>
diff --git a/files/ja/archive/b2g_os/simulator/simulator_walkthrough/index.html b/files/ja/archive/b2g_os/simulator/simulator_walkthrough/index.html
new file mode 100644
index 0000000000..2b57c8bff4
--- /dev/null
+++ b/files/ja/archive/b2g_os/simulator/simulator_walkthrough/index.html
@@ -0,0 +1,282 @@
+---
+title: Simulator Walkthrough
+slug: Archive/B2G_OS/Simulator/Simulator_Walkthrough
+tags:
+ - Apps
+ - Firefox OS
+ - Tools
+translation_of: Archive/B2G_OS/Simulator/Simulator_Walkthrough
+---
+<p>本ページでは <a href="/ja/docs/Tools/Firefox_OS_Simulator" title="Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> を使用して、とても簡単な (しかしバグの多い!) Web アプリのデバッグを行っていきます。</p>
+<p>このウォークスルーは 6 つのパートで構成されます: それぞれのパートで異なる診断/デバッグルール、特に<a href="#Using-manifest-validation" title="#Using-manifest-validation">マニフェスト検証</a>、<a href="#Using-the-WebConsole" title="#Using-the-WebConsole">Web コンソール</a>、<a href="#Using-the-JavaScript-Debugger" title="#Using-the-JavaScript-Debugger">JavaScript デバッガ</a>、<a href="#Using-the-NetworkMonitor" title="#Using-the-NetworkMonitor">ネットワークモニター</a>、<a href="#Using-the-StyleEditor" title="#Using-the-StyleEditor">スタイルエディタ</a>、<a href="#Using-the-TestReceipts" title="#Using-the-TestReceipts">テストレシート</a>を使用します。</p>
+<p>各パートはそれぞれで完結するようにしており、特定のパートのみ読むかたちでも理解できるでしょう。</p>
+<h3 id="Using_manifest_validation" name="Using_manifest_validation"><a name="Using-manifest-validation">マニフェスト検証の使用</a></h3>
+<div class="note">
+ <p>このウォークスルーに沿っていきたい場合のために、GitHub の <a href="https://github.com/rpl/firefoxos-simulator-walkthrough" title="https://github.com/rpl/firefoxos-simulator-walkthrough">firefoxos-simulator-walkthrough</a> リポジトリにさまざまなリビジョンのアプリを置いています。<a href="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-1" title="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-1">whereami-1</a> バージョンのアプリから始めると、本章を選択したことになります。</p>
+ <p>このアプリは "Where am I?" という名前のボタン 1 個を表示します。ユーザがボタンをクリックすると、アプリは Geolocation API を使用してユーザの現在地を取得して、地図上に表示します。</p>
+ <p>このウォークスルーでは、<a href="/ja/docs/Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on" title="Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on">Simulator がインストール済み</a>で、Dashboard を開いているものとします。</p>
+</div>
+<p>始めに <strong>"Add Directory"</strong> をクリックしてマニフェストを選択することで、Dashboard にアプリを追加します。すると以下のようになるでしょう:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5529/manifest-error-collapsed-4.0.png" style="width: 1044px; height: 680px;"><br>
+ <br>
+ <strong>"(2 errors and 0 warnings)"</strong> をクリックすると以下のようになります:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5531/manifest-error-expanded-4.0.png" style="width: 1044px; height: 680px;"><br>
+ このエラーメッセージは実に明確です。<strong>"manifest.webapp"</strong> を確認すると、<strong>"name"</strong> がないことをご覧いただけるでしょう:</p>
+<pre>{
+  "description": "A simple web app",
+  "launch_path": "/index.html",
+  "icons": {
+    "128": "/style/icons/earth.png"
+  }
+}</pre>
+<p><br>
+ マニフェストファイルに <strong>"name"</strong> フィールドを追加して、ファイルを保存したら Dashboard で <strong>"Refresh"</strong> をクリックします:</p>
+<pre>{
+  "name": "Where am I?",
+  "description": "A simple web app",
+  "launch_path": "/index.html",
+  "icons": {
+    "128": "/style/icons/earth.png"
+  }
+}</pre>
+<p><br>
+ ここで Dashboard はエラーがないことを表示して、アプリを実行するでしょう:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5533/whereami-no-map-4.0.png" style="width: 1044px; height: 478px;"></p>
+<p>しかし、ボタンをクリックしても何も起きません。次の章では、この問題を診断するために Web コンソールを使用してみましょう。</p>
+<h3 id="Using_the_WebConsole" name="Using_the_WebConsole"><a name="Using-the-WebConsole">Web コンソールの使用</a></h3>
+<div class="note">
+ <p><strong>このウォークスルーを始めから順に追っていない場合:</strong></p>
+ <p>本章では <a href="/ja/docs/Tools/Firefox_OS_Simulator" title="Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> を使用して、とても簡単な (しかしバグの多い!) Web アプリのデバッグを行っていきます。</p>
+ <p>GitHub の <a href="https://github.com/rpl/firefoxos-simulator-walkthrough" title="https://github.com/rpl/firefoxos-simulator-walkthrough">firefoxos-simulator-walkthrough</a> リポジトリにさまざまなリビジョンのアプリを置いています。<a href="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-2" title="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-2">whereami-2</a> バージョンのアプリから始めると、本章を選択したことになります。</p>
+ <p>このアプリは "Where am I?" という名前のボタン 1 個を表示します。ユーザがボタンをクリックすると、アプリは Geolocation API を使用してユーザの現在地を取得して、地図上に表示します。</p>
+ <p>しかしこのバージョンでは、ボタンをクリックしても何も起きません。ウォークスルーの本章では、この問題を診断するために Web コンソールを使用します。</p>
+ このウォークスルーでは、<a href="/ja/docs/Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on" title="Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on">Simulator がインストール済み</a>で、Dashboard を開いているものとします。さらに、"Add Directory" をクリックしてアプリの "manifest.webapp" を選択して、アプリを追加済みであるものとします。</div>
+<p>Dashboard で、<strong>"Connect"</strong> という名前のボタンを押します:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5497/connect-to-app-button.png" style="width: 1044px; height: 650px;"></p>
+<p>Simulator のウィンドウが自動的に開いてアプリを実行します (未実行の場合)。また、Simulator の Dashboard タブ内に Web コンソールが表示されます。</p>
+<p>コンソールの出力にエラー、警告、メッセージがいくつかありますが、最後のひとつが特に関係があるようです:<br>
+ <br>
+ <img alt="" src="https://mdn.mozillademos.org/files/5535/webconsole-whereami-error.png" style="width: 1044px; height: 680px;"><br>
+ <br>
+ これは明らかに、アプリのスクリプトである "whereami.js" の問題です。以下はスクリプトの先頭から数行です:</p>
+<pre class="brush: js">var whereami = document.getElementById('whereami');
+
+whereami.onclick = function() {
+  navigator.geolocation.getCurrentPosition(getMap, error);
+};</pre>
+<p><br>
+ このスクリプトとアプリの "index.html" を比較すると、問題は明らかです:</p>
+<pre class="brush: html">&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+
+ &lt;head&gt;
+  &lt;meta charset='utf-8'&gt;
+  &lt;script src="http://open.mapquestap.com/sdk/js/v7.0.s/mqa.toolkit.js"&gt;&lt;/script&gt;
+  &lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"&gt;&lt;/script&gt;
+
+ &lt;/head&gt;
+
+ &lt;body&gt;
+  &lt;button id ="where-am-i"&gt;Where am I?&lt;/button&gt;
+  &lt;div id="map"&gt;&lt;/div&gt;
+  &lt;script src="scripts/whereami.js"&gt;&lt;/script&gt;
+  &lt;link media="all" href="style/style.css" type="text/css" rel="stylesheet"&gt;
+ &lt;/body&gt;
+
+&lt;/html&gt;</pre>
+<p><br>
+ HTML ではボタンに "where-am-i" という ID を割り当てていますが、JavaScript では "whereami" を使おうとしています。よってこれを修正しましょう:</p>
+<pre class="brush: js">var whereami = document.getElementById('where-am-i');
+
+whereami.onclick = function() {
+  navigator.geolocation.getCurrentPosition(getMap, error);
+};</pre>
+<p>これでエラーが発生することなくアプリが起動しますが、ボタンをクリックしても地図は表示されず、Web コンソールに新たなメッセージが現れます:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5537/webconsole-whereami-geolocation-error.png" style="width: 1044px; height: 680px;"></p>
+<p>このメッセージは "whereami.js" スクリプトによるものであり、Geolocation API がエラーを返していることを示します。しかし、どのようなエラーであるかを伝えていません。それを明らかにするために、JavaScript デバッガを使用できます。</p>
+<h3 id="Using_the_JavaScript_Debugger" name="Using_the_JavaScript_Debugger"><a name="Using-the-JavaScript-Debugger">JavaScript デバッガの使用</a></h3>
+<div class="note">
+ <p><strong>このウォークスルーを始めから順に追っていない場合:</strong></p>
+ <p>本章では <a href="/ja/docs/Tools/Firefox_OS_Simulator" title="Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> を使用して、とても簡単な (しかしバグの多い!) Web アプリのデバッグを行っていきます。</p>
+ <p>GitHub の <a href="https://github.com/rpl/firefoxos-simulator-walkthrough" title="https://github.com/rpl/firefoxos-simulator-walkthrough">firefoxos-simulator-walkthrough</a> リポジトリにさまざまなリビジョンのアプリを置いています。<a href="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-3" title="https://github.com/wbamberg/firefoxos-simulator-walkthrough/tree/master/whereami-3">whereami-3</a> バージョンのアプリから始めると、本章を選択したことになります。</p>
+ <p>このアプリは "Where am I?" という名前のボタン 1 個を表示します。ユーザがボタンをクリックすると、アプリは Geolocation API を使用してユーザの現在地を取得して、地図上に表示します。</p>
+ <p>しかしこのバージョンでは、ボタンをクリックすると Geolocation API のエラーが返ります。ウォークスルーの本章では、どのようなエラーが返っているかを明らかにするために JavaScript デバッガを使用します。</p>
+ このウォークスルーでは、<a href="/ja/docs/Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on" title="Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on">Simulator がインストール済み</a>で、Dashboard を開いているものとします。さらに、"Add Directory" をクリックしてアプリの "manifest.webapp" を選択して、アプリを追加済みであるものとします。
+ <p> </p>
+</div>
+<p>アプリに接続した Web コンソールで、Geolocation のエラーログの右側にあるリンクをクリックします:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5539/webconsole-whereami-geolocation-error-annotated.png" style="width: 1044px; height: 680px;"><br>
+ <strong>"whereami.js:8"</strong> のリンクをクリックすると、JavaScript デバッガが自動的に読み込まれて、関連するファイルおよび行数を指し示します。</p>
+<p><a href="/ja/docs/DOM/window.navigator.geolocation.getCurrentPosition#PositionError" title="DOM/window.navigator.geolocation.getCurrentPosition#PositionError">Geolocation API のリファレンス</a>によると、エラーハンドラ <code>error()</code> に渡された <code>error</code> オブジェクトの <code>code</code> プロパティによって具体的なエラーが与えられます。そこで、8 行目の左側をクリックすることで <code>error()</code> の内部にブレークポイントを設定します:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5541/webconsole-whereami-set-breakpoint.png" style="width: 1044px; height: 680px;"></p>
+<p>アプリで <strong>"Where am I?"</strong> をクリックしましょう。ブレークポイントで実行が停止するでしょう:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5545/webconsole-whereami-hit-breakpoint.png" style="width: 1044px; height: 680px;"></p>
+<p>"ウォッチ式を追加" と表示されている部分をクリックして "error.code" と入力すると、その値が "1" であることが直ちにわかるでしょう:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5547/webconsole-whereami-watch.png" style="width: 1044px; height: 680px;"><br>
+ <a href="/ja/docs/DOM/window.navigator.geolocation.getCurrentPosition#PositionError" title="DOM/window.navigator.geolocation.getCurrentPosition#PositionError">Geolocation API のドキュメント</a> によると、"1" は "Permission denied" を表します。これは、Web アプリが <a href="/ja/docs/Apps/App_permissions" title="Apps/App_permissions">Geolocation の許可設定</a>を要求していないか、ユーザによって許可設定が承諾されなかった場合に発生するエラーです。<br>
+ <br>
+ "manifest.webapp" ファイルを見てください。許可設定を尋ねていなかったことがわかります:</p>
+<pre>{
+  "name": "Where am I?",
+  "description": "A simple web app",
+  "launch_path": "/index.html",
+  "icons": {
+    "128": "/style/icons/earth.png"
+  }
+}</pre>
+<p><br>
+ これを修正しましょう:</p>
+<pre>{
+  "name": "Where am I?",
+  "description": "A simple web app",
+  "launch_path": "/index.html",
+  "icons": {
+    "128": "/style/icons/earth.png"
+  },
+  "permissions": {
+    "geolocation": {
+      "description": "Needed to tell the user where they are"
+      }
+  }
+}</pre>
+<p><br>
+ <strong>"manifest.webapp"</strong> を保存して、Dashboard で <strong>"Refresh"</strong> をもう一度クリックしてください。まだブレークポイントに留まっていますので、再開を忘れないようにしてください。今回のアプリ実行では "Where am I?" をクリックすると、位置情報を共有するかを問い合わせられます。これを許可しても地図は表示されず、Web コンソールに新たなメッセージが表示されます:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5549/webconsole-whereami-mapquestapi-not-defined.png" style="width: 1044px; height: 680px;"></p>
+<p>このメッセージは、MapQuest API が正しく読み込まれていないことを示します。MapQuest API は、script タグを使用してアプリに組み込んでいます。この問題を解決するために、ネットワークモニターを使用できます。</p>
+<h3 id="Using_the_Network_Monitor" name="Using_the_Network_Monitor"><a name="Using-the-NetworkMonitor"></a>ネットワークモニターの使用</h3>
+<div class="note">
+ <p><strong>このウォークスルーを始めから順に追っていない場合:</strong></p>
+ <p>本章では <a href="/ja/docs/Tools/Firefox_OS_Simulator" title="Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> を使用して、とても簡単な (しかしバグの多い!) Web アプリのネットワークリクエストを調査していきます。</p>
+ <p>GitHub の <a href="https://github.com/rpl/firefoxos-simulator-walkthrough" title="https://github.com/rpl/firefoxos-simulator-walkthrough">firefoxos-simulator-walkthrough</a> リポジトリにさまざまなリビジョンのアプリを置いています。<a href="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-4" title="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-4">whereami-4</a> バージョンのアプリから始めると、本章を選択したことになります。</p>
+ <p>このアプリは "Where am I?" という名前のボタン 1 個を表示します。ユーザがボタンをクリックすると、アプリは Geolocation API を使用してユーザの現在地を取得して、地図上に表示します。</p>
+ <p>しかしこのバージョンでは、ブタンをクリックすると Web コンソールに "MQA is not defined" というエラーが表示されます。ウォークスルーの本章では、なぜ MapQuest API が読み込まれないかを明らかにするためにネットワークモニターを使用します。</p>
+ このウォークスルーでは、<a href="/ja/docs/Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on" title="Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on">Simulator がインストール済み</a>で、Dashboard を開いているものとします。さらに、"Add Directory" をクリックしてアプリの "manifest.webapp" を選択して、アプリを追加済みであるものとします。
+ <p> </p>
+</div>
+<div class="warning">
+ <p><strong>警告:</strong> <a href="https://hacks.mozilla.org/2013/06/network-monitor-now-in-firefox-beta/" title="https://hacks.mozilla.org/2013/06/network-monitor-now-in-firefox-beta/">ネットワークモニターは Firefox 23.0 以上で使用可能です</a> (現在は <a href="http://www.mozilla.org/en-US/firefox/beta/" title="http://www.mozilla.org/en-US/firefox/beta/">Firefox Beta</a> です)</p>
+</div>
+<p>アプリに接続した開発ツールのパネルで<strong>ネットワーク</strong>タブをクリックすると、以下のようなパネルが表示されます。ここで、<strong>"open.mapquestap.com"</strong> ドメインからリソース <strong>"mqa.toolkit.js"</strong> を読み込む処理が正しく完了していないことがわかります:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5551/network-monitor-timing-panel.png" style="width: 1044px; height: 680px;"></p>
+<p>成功したリクエストは<strong>緑色表示</strong>であり、<strong>"open.mapquestap.com"</strong> ドメインへのリクエストのひとつ (<strong>濃い灰色表示</strong>) をクリックして<strong>タイミング</strong>詳細パネルを選択すると、DNS 解決が成功していないためにリクエストが一切<strong>接続</strong>ステータスに達していないことが明らかになります。</p>
+<p><strong>"index.html"</strong> ファイルを見ると、script タグで誤ったドメインを指し示していることがわかるでしょう。</p>
+<p>このバグを修正しましょう。正しいドメインを使用するように script タグを変更します: <strong>open.mapquestapi.com</strong> (ドメイン名で不足している 'i' を追加):</p>
+<pre class="brush: html">&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+
+ &lt;head&gt;
+  &lt;meta charset='utf-8'&gt;
+  &lt;script src="<span style="background-color: #ffff00;">http://open.mapquestapi.com/sdk/js/v7.0.s/mqa.toolkit.js</span>"&gt;&lt;/script&gt;
+  &lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"&gt;&lt;/script&gt;
+
+ &lt;/head&gt;
+
+ &lt;body&gt;
+  &lt;button id ="where-am-i"&gt;Where am I?&lt;/button&gt;
+  &lt;div id="map"&gt;&lt;/div&gt;
+  &lt;script src="scripts/whereami.js"&gt;&lt;/script&gt;
+  &lt;link media="all" href="style/style.css" type="text/css" rel="stylesheet"&gt;
+ &lt;/body&gt;
+
+&lt;/html&gt;</pre>
+<p><strong>"index.html"</strong> を保存して、Dashboard で <strong>"Refresh"</strong> をもう一度クリックしてください。今回のアプリ実行では "Where am I?" をクリックすると、位置情報を共有するかを問い合わせられます。これを許可すると、アプリが地図を表示します:<br>
+ <img alt="" src="https://mdn.mozillademos.org/files/5553/whereami-map.png" style="width: 399px; height: 663px;"></p>
+<p> </p>
+<h3 id="Using_the_Style_Editor" name="Using_the_Style_Editor"><a name="Using-the-StyleEditor"></a>スタイルエディタの使用</h3>
+<div class="note">
+ <p><strong>このウォークスルーを始めから順に追っていない場合:</strong></p>
+ <p>本章では <a href="/ja/docs/Tools/Firefox_OS_Simulator" title="Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> を使用して、アプリのスタイルシートをカスタマイズします。</p>
+ <p>GitHub の <a href="https://github.com/rpl/firefoxos-simulator-walkthrough" title="https://github.com/rpl/firefoxos-simulator-walkthrough">firefoxos-simulator-walkthrough</a> リポジトリにさまざまなリビジョンのアプリを置いています。<a href="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-5" title="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-5">whereami-5</a> バージョンのアプリから始めると、本章を選択したことになります。</p>
+ <p>このアプリは "Where am I?" という名前のボタン 1 個を表示します。ユーザがボタンをクリックすると、アプリは Geolocation API を使用してユーザの現在地を取得して、地図上に表示します。</p>
+ <p>このバージョンでは以前のバグがすべて修正されています。実行中のアプリのスタイルをリアルタイムに変更するためにスタイルエディタを使用して、満足したときに保存します。</p>
+ このウォークスルーでは、<a href="/ja/docs/Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on" title="Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on">Simulator がインストール済み</a>で、Dashboard を開いているものとします。さらに、"Add Directory" をクリックしてアプリの "manifest.webapp" を選択して、アプリを追加済みであるものとします。
+ <p> </p>
+</div>
+<div class="warning">
+ <p><strong>警告:</strong> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=816967" title="https://hacks.mozilla.org/2013/06/network-monitor-now-in-firefox-beta/">スタイルエディタは Firefox 23.0 以上で使用可能です</a> (現在は currently <a href="http://www.mozilla.org/en-US/firefox/beta/" title="http://www.mozilla.org/en-US/firefox/beta/">Firefox Beta</a> です)</p>
+</div>
+<p>アプリに接続した開発ツールで<strong>スタイルエディタ</strong>タブをクリックすると、以下のようなパネルが表示されます:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5555/whereami-style-editor.png" style="width: 1044px; height: 536px;"></p>
+<p>左側のスタイルシート一覧で <strong>"style/style.css"</strong> を選択して、CSS 規則をいくつか変更しましょう。新たな規則は、接続したいるアプリへ直ちに適用されます:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5557/whereami-style-editor-changes.png" style="width: 1044px; height: 528px;"></p>
+<p>スタイルシート一覧で <strong>"style/style.css"</strong> のすぐ下にある <strong>"保存"</strong> リンクをクリックして、スタイルシートをプロジェクトに書き戻すことができます。</p>
+<h3 id="Using_the_Test_Receipts" name="Using_the_Test_Receipts"><a name="Using-the-TestReceipts"></a>テストレシートの使用</h3>
+<div class="note">
+ <p><strong>このウォークスルーを始めから順に追っていない場合:</strong></p>
+ <p>本章では <a href="/ja/docs/Tools/Firefox_OS_Simulator" title="Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> を使用して、Web アプリに支払いレシートの検証コードを追加します。</p>
+ <p>GitHub の <a href="https://github.com/rpl/firefoxos-simulator-walkthrough" title="https://github.com/rpl/firefoxos-simulator-walkthrough">firefoxos-simulator-walkthrough</a> リポジトリにさまざまなリビジョンのアプリを置いています。<a href="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-6" title="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-6">whereami-6</a> バージョンのアプリから始めると、本章を選択したことになります。</p>
+ <p>このアプリは "Where am I?" という名前のボタン 1 個を表示します。ユーザがボタンをクリックすると、アプリは Geolocation API を使用してユーザの現在地を取得して、地図上に表示します。</p>
+ <p>このバージョンでは、課金 Web アプリに変更していきます。</p>
+ このウォークスルーでは、<a href="/ja/docs/Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on" title="Tools/Firefox_OS_Simulator#Installing_the_Simulator_add-on">Simulator がインストール済み</a>で、Dashboard を開いているものとします。さらに、"Add Directory" をクリックしてアプリの "manifest.webapp" を選択して、アプリを追加済みであるものとします。
+ <p> </p>
+</div>
+<p>アプリはバグがなくなり、また適切にスタイルが設置されましたので、アプリのユーザが購入したことを保証するために、支払いレシートの検証機能を追加しましょう。</p>
+<p>Mozilla は、アプリのレシート確認を支援する小さな JavaScript ライブラリをリリースしました: <a href="https://github.com/mozilla/receiptverifier" title="https://github.com/mozilla/receiptverifier">http://github.com/mozilla/receiptverifier</a></p>
+<p>receiptverifier をアプリに追加しましょう。例えば、"index.html" ファイルに新たな script タグを追加します:</p>
+<pre class="brush: html">&lt;!DOCTYPE html&gt;
+
+&lt;html&gt;
+
+ &lt;head&gt;
+  &lt;meta charset='utf-8'&gt;
+  <span style="background-color: #ffff00;">&lt;script src="https://raw.github.com/mozilla/receiptverifier/master/receiptverifier.js"&gt;&lt;/script&gt;</span>
+  &lt;script src="http://open.mapquestapi.com/sdk/js/v7.0.s/mqa.toolkit.js"&gt;&lt;/script&gt;
+  &lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"&gt;&lt;/script&gt;
+
+ &lt;/head&gt;
+
+ &lt;body&gt;
+  &lt;button id ="where-am-i"&gt;Where am I?&lt;/button&gt;
+  &lt;div id="map"&gt;&lt;/div&gt;
+  &lt;script src="scripts/whereami.js"&gt;&lt;/script&gt;
+  &lt;link media="all" href="style/style.css" type="text/css" rel="stylesheet"&gt;
+ &lt;/body&gt;
+
+&lt;/html&gt;</pre>
+<p>そして、<strong>"mozmarket.receipts.Verifier"</strong> を使用して <strong>"scripts/whereami.js"</strong> でレシートを確認します (例えば、ボタンをクリックしたときやアプリを読み込むとき):</p>
+<pre class="brush: js">...
+
+var verifier = new mozmarket.receipts.Verifier({
+  installs_allowed_from: '*',
+  typsAllowed: 'test-receipt',
+  logLevel: mozmarket.receipts.Verifier.levels.DEBUG,
+  onlog: mozmarket.receipts.Verifier.consoleLogger
+});
+verifier.clearCache();
+
+function verifyPaymentReceipts(cb) {
+  verifier.verify(function (verifier) {
+    if (verifier.state instanceof verifier.states.OK) {
+      cb(null); // valid payment
+    } else {
+      cb("invalid-payment"); // invalid payment
+    }
+  });
+  setTimeout(function checkNoReceipts() {
+    if (verifier.state instanceof verifier.states.NoReceipts) {
+      cb("no-receipts");
+    }
+  }, 2000);
+}
+
+whereami.onclick = function() {
+  verifyPaymentReceipts(function (err) {
+    if (err) {
+      alert("Invalid Payment Receipt.");
+    } else {
+      navigator.geolocation.getCurrentPosition(getMap, error);
+    }
+  });
+};
+</pre>
+<p>レシートは (Marketplace および支払いサービスによって) 暗号による署名が施されていますが、Simulator ではアプリのエントリにある <strong>"Receipts"</strong> メニューでインストールするレシートの種類 (既定値は <strong>"None"</strong>) を選択することで、テストレシートとともにアプリをインストールできます:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5559/receipts-whereami-menu-annotated.png" style="width: 1044px; height: 742px;"></p>
+<p><strong>"Valid"</strong>、<strong>"Invalid"</strong>、<strong>"Refunded"</strong> の各レシートがあるとき (およびレシートがないとき) にアプリがどのように動作するかをテストでき、また結果は Web コンソールで、<strong>receiptverifier</strong> ライブラリが生成するログを確認することでわかります。:</p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5561/whereami-receipt-invalid.png" style="width: 1044px; height: 539px;"></p>
+<p><img alt="" src="https://mdn.mozillademos.org/files/5563/whereami-receipt-valid.png" style="width: 1044px; height: 535px;"></p>
+<div class="note">
+ <p><strong>注記:</strong> 完成したアプリを <a href="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-7" title="https://github.com/rpl/firefoxos-simulator-walkthrough/tree/master/whereami-7">whereami-7</a> バージョンから取得できます。</p>
+</div>
+<p> </p>
diff --git a/files/ja/archive/b2g_os/tvs_connected_devices/hello_world_example/index.html b/files/ja/archive/b2g_os/tvs_connected_devices/hello_world_example/index.html
new file mode 100644
index 0000000000..fd7a8913de
--- /dev/null
+++ b/files/ja/archive/b2g_os/tvs_connected_devices/hello_world_example/index.html
@@ -0,0 +1,125 @@
+---
+title: Firefox OS for TV での hello world の例
+slug: Archive/B2G_OS/TVs_connected_devices/Hello_world_example
+tags:
+ - B2G
+ - Example
+ - Firefox OS
+ - Gaia
+ - TV
+ - WebIDE
+translation_of: Mozilla/Firefox_OS_for_TV/Hello_world_example
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p class="summary">この記事では、シンプルな hello world の例を紹介し、TVアプリを作って、シミュレータでテストするのがどんなに簡単なのかをお見せします。この記事では <a href="/en-US/docs/Tools/WebIDE">WebIDE</a> を使って行きます。</p>
+
+<h2 id="hello_world_を作成する">hello world を作成する</h2>
+
+<p>Let's build up a test app.</p>
+
+<ol>
+ <li>
+ <p>To open the WebIDE in Firefox Desktop, select <em>Tools &gt; Web Developer &gt; WebIDE</em> from the main menu:</p>
+
+ <p><img alt="" src="https://mdn.mozillademos.org/files/10444/11.09.37.png" style="display: block; height: 490px; margin: 0px auto; width: 640px;"></p>
+ </li>
+ <li>
+ <p>Now click <em>Open App</em> in the upper-left corner of WebIDE and choose <em>New App…</em> from the menu:</p>
+
+ <p><img alt="" src="https://mdn.mozillademos.org/files/10446/11.14.38.png"></p>
+ </li>
+ <li>
+ <p>Select <em>HelloWorld</em>, enter the <em>Project Name</em> and click <em>OK</em>:</p>
+
+ <p><img alt="" src="https://mdn.mozillademos.org/files/10448/11.15.06.png"></p>
+ </li>
+ <li>
+ <p>After specifying the directory to save the project in, WebIDE generates an app for you containing simple template code:</p>
+
+ <p><img alt="" src="https://mdn.mozillademos.org/files/10450/11.15.37.png"></p>
+ </li>
+ <li>
+ <p>Now you can program your app directly within WebIDE, or use any other editor that you prefer to edit your code.</p>
+ </li>
+</ol>
+
+<h2 id="TV_でアプリを実行する"><strong>TV でアプリを実行する</strong></h2>
+
+<p>If you have a Panasonic VIERA Firefox OS TV, you can find out how to run your apps on the TV via WebIDE by reading <a href="/en-US/docs/Mozilla/Firefox_OS/TVs_connected_devices/How_to_connect_WebIDE_to_TV_%28VIErA%29">How to connect WebIDE to TV (VIErA CX/CR series)</a>. If not, read on.</p>
+
+<ol>
+ <li>Follow the instructions in <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/TVs_connected_devices/Simulating_Firefox_OS_for_TV">Simulating Firefox OS for TV on your desktop</a> to launch the TV environment inside the Firefox OS simulator.</li>
+ <li>If you are using the available Firefox 2.6 simulator, simply skip to step 5. If you are using your own custom build, read on.</li>
+ <li>In WebIDE, click <em>Select Runtime</em> in the upper-right corner then select <em>Remote Runtime</em> from the menu.<br>
+ <img alt="" src="https://mdn.mozillademos.org/files/10452/11.37.40.png"></li>
+ <li>Enter <em>localhost:6000</em> in the dialog box and click <em>OK</em>:<br>
+ <img alt="" src="https://mdn.mozillademos.org/files/10454/11.37.47.png"></li>
+ <li>Click the <em>Install and Run</em> icon (the "Play" icon) in the WebIDE. You should now see your app running inside the Firefox OS Simulator:<br>
+ <img alt="" src="https://mdn.mozillademos.org/files/10466/11.39.40%202.png"></li>
+ <li>Click the <em>Debug App</em> icon (the "Tool" icon) in WebIDE to debug your app directly on the simulator using the DevTools <a href="/en-US/docs/Tools/Tools_Toolbox">Toolbox</a>:<br>
+ <img alt="" src="https://mdn.mozillademos.org/files/10468/11.40.10%202.png"></li>
+</ol>
+
+<div class="note">
+<p><strong>Note</strong>: Find out more about debugging your apps by reading <a href="/en-US/docs/Tools/WebIDE/Running_and_debugging_apps#Debugging_apps">Debugging apps</a>.</p>
+</div>
+
+<h2 id="次に移動する場所">次に移動する場所</h2>
+
+<p>Building web apps for TV mostly requires the same skills as building web apps generally; there are a few extra considerations to bear in mind, which are discussed in other articles linked from our <a href="/en-US/docs/Mozilla/Firefox_OS/TVs_connected_devices">TVs and connected devices page</a>.</p>
+
+<p>In terms of getting inspiration from existing apps, your can look at the apps that come with Gaia. Gaia 2.1 and above contains facilities for running on TV, and you can find apps for smart TVs in the <a href="https://github.com/mozilla-b2g/gaia/tree/master/tv_apps">gaia/tv_apps</a> directory. <code>smart-home</code> and <code>app-deck</code> are good apps to use as starter templates for your own apps, or to get ideas and inspiration from.</p>
diff --git a/files/ja/archive/b2g_os/tvs_connected_devices/how_to_connect_webide_to_tv_(viera)/index.html b/files/ja/archive/b2g_os/tvs_connected_devices/how_to_connect_webide_to_tv_(viera)/index.html
new file mode 100644
index 0000000000..5369864862
--- /dev/null
+++ b/files/ja/archive/b2g_os/tvs_connected_devices/how_to_connect_webide_to_tv_(viera)/index.html
@@ -0,0 +1,116 @@
+---
+title: TV(VIERA CX/CR シリーズ)へのWebIDEの接続方法
+slug: Archive/B2G_OS/TVs_connected_devices/How_to_connect_WebIDE_to_TV_(VIErA)
+translation_of: Mozilla/Firefox_OS_for_TV/How_to_connect_WebIDE_to_TV_(VIErA)
+---
+<p class="summary">Firefox OSによって力を得た最初のスマートTV — Panasonic の VIERA スマートTV — は数カ国で公式にリリースされています。ほかの Firefox OS搭載端末と同様に、VIERA には、開発者がアプリのビルドとデバッグをもっと速く効率的にできるよう、組み込みのDevtool(開発ツール)機能があります。この記事ではVIERAに搭載された Devtools を使い始めるのに必要な事を提供します。</p>
+
+<div class="note">
+<p><strong>注意: </strong>Devtools を有効にする前に、次の詳細スケジュールとバージョン情報を読んで、お持ちのTVが WebIDE をサポートしているか(下記に記載しています)を確認してください。</p>
+</div>
+
+<h2 id="スケジュールとバージョン">スケジュールとバージョン</h2>
+
+<p>次のリストに示すバージョン以降であれば、Panasonic の VIERA TV は WebIDE からの接続が可能となります。</p>
+
+<p>ソフトウェアのリリーススケジュールは以下です:</p>
+
+<p>2015年7月:</p>
+
+<ul>
+ <li>EU                             July 21        V3.206</li>
+ <li>US                             July 28        V2.205</li>
+ <li>ASIA/OCEANIA        July 28        V4.206</li>
+ <li>BRAZIL                     July 28        V7.205</li>
+ <li>LATIN                       July 28        V9.205</li>
+</ul>
+
+<p>2015年8月:</p>
+
+<ul>
+ <li>JAPAN                      8 月 26 日            </li>
+</ul>
+
+<h3 id="アップデート">アップデート:</h3>
+
+<ol>
+ <li> <em>Menu を選択 </em> &gt; <em>Network</em> &gt; <em>Software Update メニューのオプションを選択</em><br>
+ もしくは</li>
+ <li>AppsDeck から Market アプリを起動しアップデートダイアログを表示</li>
+</ol>
+
+<h2 id="About_Firefox_OSメニューからのDevtoolsの有効化">"About Firefox OS"メニューからの"Devtools"の有効化</h2>
+
+<p>まず最初に Devtools をTVの上で有効にする必要があります。</p>
+
+<ol>
+ <li>“Main Menu”を起動するため、 リモコンから"MENU"キーを選択して下さい。</li>
+ <li>“Help”を選択</li>
+ <li>“About Firefox OS” を選択
+ <p><img alt="The MENU, Help, About Firefox OS menu option in the Firefox OS VIERA TV." src="https://mdn.mozillademos.org/files/11269/viera_1_menu_about_firefox.jpg" style="display: block; height: 469px; margin: 0px auto; width: 600px;" title="Fig. 1"></p>
+ </li>
+ <li>”About Firefox OS” ウィンドウが現れたら“RED” キー(訳注:リモコンの赤ボタン) を10秒間押して下さい。“Devtool” が出現します。
+ <ul>
+ <li>("赤"は"注意"を意味しています。10秒間押す必要があるのは意図せずに有効化されるのを防ぐためです。)</li>
+ </ul>
+
+ <p><img alt="The option to turn Devtools on and off on the Firefox OS VIERA TV." src="https://mdn.mozillademos.org/files/11271/viera_2_menu_devtools_on.jpg" style="display: block; height: 370px; margin: 0px auto; width: 600px;"></p>
+ </li>
+ <li>"Devtools" をOnにして有効化</li>
+ <li>注意事項をよく読み、リスクを理解した上で機能を有効にして下さい。
+ <p><img alt="A dialog warning about the risks of turning on the Devtools on the Firefox OS VIERA TV." src="https://mdn.mozillademos.org/files/11273/viera_3_menu_devtools_disclaimer.jpg" style="display: block; height: 377px; margin: 0px auto; padding-top: 10px; width: 600px;"></p>
+ </li>
+</ol>
+
+<h2 id="ネットワーク経由でWebIDEをTVに接続する">ネットワーク経由でWebIDEをTVに接続する</h2>
+
+<p>次に示す手順は Firefox ブラウザ上の <a href="/docs/Tools/WebIDE">WebIDE</a> からネットワークを経由してTVへと接続する方法です。</p>
+
+<div class="note">
+<p><strong>注意: </strong>TV と PC が同じネットワークに接続しているのを確認して下さい。MENU &gt; Network からネットワーク情報を確認できます。</p>
+</div>
+
+<h3 id="TVのIPアドレスを確認する">TVのIPアドレスを確認する</h3>
+
+<ol>
+ <li>リモコンから“MENU” キーを押して"Main Menu"を起動して下さい。</li>
+ <li>“Network” を選択:
+ <p><img alt="The Network, Network Status menu option on the Firefox OS VIERA TV." src="https://mdn.mozillademos.org/files/11275/viera_4_menu_network.jpg" style="display: block; height: 469px; margin: 0px auto; padding-top: 10px; width: 600px;"></p>
+ </li>
+ <li>“Network Status” を選択するとネットワーク情報の確認が行えます</li>
+ <li>“Status Details”を選択</li>
+ <li>TVのIPアドレスが確認出来ます — あとで確認できるようにメモを取って下さい。
+ <ul>
+ <li>次のスクリーンショットでは192.168.11.3 が表示されています:
+ <p><img alt="VIERA Menu network status" src="https://mdn.mozillademos.org/files/11285/viera_5_menu_network_status.jpg" style="display: block; height: 469px; margin: 0px auto; padding-top: 10px; width: 600px;"></p>
+ </li>
+ </ul>
+ </li>
+ <li>“Exit” ボタンを押してメニューから抜けて下さい。</li>
+</ol>
+
+<h3 id="WebIDEをTVに接続する">WebIDEをTVに接続する</h3>
+
+<ol>
+ <li>PCのFirefoxを起動します。そしてWebIDEを起動して下さい( WebIDE ボタンを押すか、<em>Tools &gt; Web Developer &gt; WebIDE</em> と選択)</li>
+ <li>WebIDEの右上の ”Select Runtime” を選択し、 ”Remote Runtime”オプションを選んで下さい。
+ <ul>
+ <li> “hostname:port”  を以下のように記載して下さい:
+ <ul>
+ <li>hostname:  先ほどメモしたTVのIPアドレス。</li>
+ <li>port: 52222 (52222  はTVのポートの固定値です。)</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+</ol>
+
+<h2 id="WebIDEからの接続を許可する">WebIDEからの接続を許可する</h2>
+
+<p>WebIDEからTVへと接続すると、TVに接続許可のダイアログが表示されます。OKを選択すると WebIDE と TV の間で接続が確立されます。1度に1回のみ表示されます( つまり、他のリクエストは拒否されます。)</p>
+
+<p><img alt="The Firefox OS VIERA TV remote debugging incoming request permission screen." src="https://mdn.mozillademos.org/files/11279/viera_6_permit_debugging.jpg" style="display: block; height: 338px; margin: 0px auto; width: 600px;"></p>
+
+<div class="note">
+<p><strong>注意:</strong> インストールするアプリに不適切なパーミッションが入っていたり、認定アプリである場合、インストールに失敗します。</p>
+</div>
diff --git a/files/ja/archive/b2g_os/tvs_connected_devices/index.html b/files/ja/archive/b2g_os/tvs_connected_devices/index.html
new file mode 100644
index 0000000000..3fa3c17413
--- /dev/null
+++ b/files/ja/archive/b2g_os/tvs_connected_devices/index.html
@@ -0,0 +1,82 @@
+---
+title: TVとコネクテッドデバイス
+slug: Archive/B2G_OS/TVs_connected_devices
+tags:
+ - B2G
+ - Firefox OS
+ - Gaia
+ - Landing
+ - NeedsTranslation
+ - TV
+translation_of: Mozilla/Firefox_OS_for_TV
+---
+<p class="summary"><span class="seoSummary">TV とコネクテッドデバイスのランディングページにようこそ。これはTV向けFirefoxOSの現在とこれからの成果に興味があり、TV用アプリを開発する開発者のためのものです。下記にリンクされている記事には、FIrefox OS の TV シミュレータをビルド、実行し、アプリを開発してTVにデプロイし、TVの実装やUXの違い、などを理解するのに必要となるすべてがあります。</span></p>
+
+<h2 id="現在の状況と将来の計画">現在の状況と将来の計画</h2>
+
+<p>Gaia 2.1 以上にはTVで動く設備が入っています。2015年の中盤から、ここに一覧されたアプリに則ったUIのあるTV端末が市場に出ています。その最初のぶんは<a href="http://www.panasonic.com/promos/learn/smart-viera/">Panasonic VIERA Smart TV</a>です。</p>
+
+<p>Firefox OSの最新版 (2.5) は、現在パートナーと開発者に利用可能で、新機能を追加しており、今年後半に Panasonic DX900 UHD TV の新レンジで使えるようになるでしょう。このアップデートにはWebアプリを発見してあなたのTVに保存し、TVと他のプラットフォームの Firefox 機能を同期(例えばブックマークなど)する新しい方法が含まれています。もっとも目立つのは、Firefox for Android から Firefox OS powered TV に簡単にWebコンテンツを共有する “send to TV” です。</p>
+
+<p>TV を横断した Firefox OS の努力は、物理世界で利用可能な、より広い範囲のコネクテッドデバイス(i.e. <em>IoT</em>) に向けて、Firefox OS をオープンプラットフォームとして提供する、より広い努力の一部です。</p>
+
+<h2 id="TV_環境セットアップとツール">TV 環境セットアップとツール</h2>
+
+<ul>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/TVs_connected_devices/Simulating_Firefox_OS_for_TV">Simulating Firefox OS for TV on your desktop</a></li>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/TVs_connected_devices/How_to_connect_WebIDE_to_TV_%28VIErA%29">How to connect WebIDE to TV (VIErA CX/CR series)</a></li>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/TVs_connected_devices/TV_remote_control_button_mapping_to_keyboard">TV remote control button mapping to keyboard</a></li>
+</ul>
+
+<h2 id="TVアプリを開発する">TVアプリを開発する</h2>
+
+<p>この章では自身のTVアプリを実行・テストする環境のセットアップ方法と、簡単なテストアプリをまとめる方法を見て行きます。</p>
+
+<h2 id="TV_webアプリの開発">TV webアプリの開発</h2>
+
+<p>簡潔に言うと、TVと電話機(やデスクトップコンピュータ)とのFirefox OSを使った違いは、次の通り:</p>
+
+<ul>
+ <li><strong>コントロールの仕組み</strong>: TV の Firefox OS では、コントロールするのにTVリモコンだけを使えることが多く、これはキーボード、マウス、タッチスクリーンほど便利ではありません。</li>
+ <li><strong>解像度</strong>: モダンなスマート TV は通常、フルHD (1920x1080) かウルトラHD (4K) です。TVの端末ピクセル比率も、たいていのモバイル端末と異なります。</li>
+</ul>
+
+<h3 id="アプリ開発の記事">アプリ開発の記事</h3>
+
+<ul>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/TVs_connected_devices/Hello_world_example">Firefox OS for TV hello world example</a></li>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/TVs_connected_devices/Interacting_with_TV_remote_controls">Interacting with TV remote controls</a></li>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/TVs_connected_devices/TV_remote_control_navigation">Implementing TV remote control navigation</a></li>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/Platform/Keyboard_events_across_browser_elements">Keyboard events across browser elements</a></li>
+ <li><a href="/ja/docs/Mozilla/Firefox_OS/TVs_connected_devices/TV_broadcast_streams_Firefox_OS">TV broadcast streams on Firefox OS products</a></li>
+ <li>TVアプリ向けのQ&amp;A (準備中)</li>
+</ul>
+
+<h2 id="TV_UX_概要">TV UX 概要</h2>
+
+<ul>
+ <li><a href="/ja/Apps/Design/Firefox_OS_TV_UX/App_layout_guide">TV app layout guide</a></li>
+ <li><a href="/ja/Apps/Design/Firefox_OS_TV_UX/Building_blocks">TV building blocks</a></li>
+ <li><a href="/ja/Apps/Design/Firefox_OS_TV_UX/Icon_design">TV icon design</a></li>
+ <li><a href="/ja/Apps/Design/Firefox_OS_TV_User_Interface_Animation_Design">Firefox OS TV User Interface &amp; Animation Design</a></li>
+ <li><a href="https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/TVs_connected_devices/Web_animations_on_large_screen">Web animations on large screens</a></li>
+</ul>
+
+<h2 id="Firefox_OS_の基本">Firefox OS の基本</h2>
+
+<ul>
+ <li><a href="/ja/Firefox_OS/Introduction">Firefox OS 概論</a></li>
+ <li><a href="/ja/Apps/Build">Web アプリの開発</a></li>
+ <li><a href="/ja/Apps/Build/Building_apps_for_Firefox_OS">インストール可能な Firefox OS アプリ</a></li>
+ <li><a href="/ja/Apps/Design/UI_layout_basics">UI レイアウトの基本</a></li>
+</ul>
+
+<h2 id="TV_でのAPIサポート">TV でのAPIサポート</h2>
+
+<p>Firefox OS for TV は Gecko に基づいているので、webプラットフォームで利用可能な <a href="/ja/docs/Web/API">API</a> の大半や、<a href="/ja/Apps/Reference/Firefox_OS_device_APIs">Firefox OS 固有の API</a> をサポートしています。しかしながら、例外があって、次のリストがその概要です:</p>
+
+<ul>
+ <li><a href="/ja/docs/Web/API/DeviceStorage">DeviceStorage</a>: VIErA TV では非サポート。</li>
+ <li><a href="/ja/docs/Web/API/Geolocation">Geolocation</a>: VIErA TV では非サポート。</li>
+ <li><a href="/ja/docs/Web/API/WebRTC_API">WebRTC</a>: VIErA TV では非サポート。</li>
+</ul>
diff --git a/files/ja/archive/b2g_os/tvs_connected_devices/interacting_with_tv_remote_controls/index.html b/files/ja/archive/b2g_os/tvs_connected_devices/interacting_with_tv_remote_controls/index.html
new file mode 100644
index 0000000000..8c393d65ee
--- /dev/null
+++ b/files/ja/archive/b2g_os/tvs_connected_devices/interacting_with_tv_remote_controls/index.html
@@ -0,0 +1,73 @@
+---
+title: TV リモコンでインタラクションする
+slug: Archive/B2G_OS/TVs_connected_devices/Interacting_with_TV_remote_controls
+translation_of: Mozilla/Firefox_OS_for_TV/Interacting_with_TV_remote_controls
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p></p><div class="overheadIndicator draft">
+ <p><strong>草案</strong><br>
+ このページは完成していません。</p>
+
+</div><p></p>
+
+<p class="summary" id="Interacting_with_TV_remote_controls">One of the most notable differences between phones and TVs is the available input mechanisms. In general, a TV doesn’t include a touch screen, so apps can’t be controlled by mouse events or touch events. Instead, your apps will probably need to be operated by the button events sent by the TV when its remote control buttons are pressed. This article discusses the basics of how to develop appropriate control mechanisms for your TV app.</p>
+
+<p>Focus is another issue that needs to be highlighted on TV apps. It’s important to make sure that the focus is on the right element at all times, since you can’t touch elements in a TV app directly.</p>
+
+<div class="note">
+<p><strong>Note</strong>: TV remote control keys are defined in the W3C <em>DOM Level 3 KeyboardEvent key Values</em> spec; see the <a href="http://www.w3.org/TR/DOM-Level-3-Events-key/#keys-media-controller">Media Controller Keys</a> section.</p>
+</div>
diff --git a/files/ja/archive/b2g_os/tvs_connected_devices/simulating_firefox_os_for_tv/index.html b/files/ja/archive/b2g_os/tvs_connected_devices/simulating_firefox_os_for_tv/index.html
new file mode 100644
index 0000000000..017c6c4c6d
--- /dev/null
+++ b/files/ja/archive/b2g_os/tvs_connected_devices/simulating_firefox_os_for_tv/index.html
@@ -0,0 +1,126 @@
+---
+title: あなたのコンピュータで、Firefox OS for TV をシミュレーションする
+slug: Archive/B2G_OS/TVs_connected_devices/Simulating_Firefox_OS_for_TV
+translation_of: Mozilla/Firefox_OS_for_TV/Simulating_Firefox_OS_for_TV
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p class="summary" id="Developing_TV_apps">この記事では、Firefox OS for TV のシミュレータを、あなたのコンピュータでセットアップして、自分の TV アプリを実行・テストする方法を学習します。</p>
+
+<h2 id="WebIDE_経由でシミュレータを使用する">WebIDE 経由でシミュレータを使用する</h2>
+
+<p>Soon, you will no longer be required to download multiple tools to get a simulator for TV — After <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1212352">bug 1212352</a> gets fixed, Mozilla's <a href="/en-US/docs/Tools/WebIDE">WebIDE</a> tool will provide an easy way to create a custom simulator for different TV setups.</p>
+
+<ol>
+ <li>
+ <p>Open the WebIDE in Firefox Desktop by selecting <em>Tools &gt; Web Developer &gt; WebIDE</em> from the main menu.  The right side of the WebIDE window provides a listing of already-installed simulators as well as an <em>Install Simulator</em> menu to create a new simulator instance inside WebIDE.</p>
+ </li>
+ <li>
+ <p>If you haven't yet installed a simulator, do so by selecting <em>Install Simulator</em> and installing the Firefox OS TV version of your choosing.</p>
+
+ <p><img alt="" src="https://mdn.mozillademos.org/files/12095/basic-web-ide.png" style="display: block; height: 1424px; margin: 0px auto; width: 1824px;"></p>
+ </li>
+ <li>
+ <p>Once your simulator instance is created and listed under <em>Simulators</em>, click the settings icon to the right of the simulator name.  You'll be presented with a screen that allows you to configure the device you'd like to simulate.</p>
+
+ <p><img alt="" src="https://mdn.mozillademos.org/files/12097/tv-web-ide.png" style="display: block; height: 1424px; margin: 0px auto; width: 1824px;"></p>
+ </li>
+ <li>
+ <p>A <em>TVs</em> group is available in the <em>Device</em> dropdown menu, which contains each of the currently supported TV types:</p>
+
+ <p><img alt="" src="https://mdn.mozillademos.org/files/12099/tv-options.png" style="display: block; height: 612px; margin: 0px auto; width: 442px;"></p>
+ </li>
+ <li>
+ <p>Once you've configured the TV device to your specs, click the simulator name in the right column and the simulator will launch!  The home screen will look as follows:</p>
+
+ <p><img alt="" src="https://mdn.mozillademos.org/files/12101/tv-home-screen.png" style="display: block; height: 484px; margin: 0px auto; width: 800px;"></p>
+ </li>
+</ol>
+
+<h2 id="Using_Mulet_to_simulate_Firefox_OS_for_TV">Using Mulet to simulate Firefox OS for TV</h2>
+
+<p>If you'd prefer to build your own TV profile, perhaps to test Gaia changes that have yet to make an official Firefox OS simulator release, you can run your profile in a special build of Firefox called Firefox Mulet. See <a href="/en-US/docs/Mozilla/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia#Using_Gaia_in_Firefox_Mulet">Using Gaia in Firefox Mulet</a><a href="http:///en-US/docs/Mozilla/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia#Using_Gaia_in_Firefox_Mulet"> </a>for instructions showing how to set up the environment.</p>
+
+<ol>
+ <li>
+ <p>To create a special Gaia profile for TV, inside your gaia repo folder run the <code>make</code> command with <code>the</code> following options:</p>
+
+ <pre class="brush: bash"><code>GAIA_DEVICE_TYPE=tv DEVICE_DEBUG=1 make</code></pre>
+
+ <p>This creates a TV profile inside the <code>profile</code> directory that is set up for optimal debugging.</p>
+ </li>
+ <li>
+ <p>Run the Mulet build from the command line, passing it your Gaia profile as the profile to use when opening (signified by the <code>-profile</code> option), and setting a specified screen size (signified by the <code>-screen</code> option):</p>
+
+ <pre><code>./mulet/FirefoxNightly.app/Contents/MacOS/firefox-bin -no-remote </code><code>-screen 1600x900</code><code> -profile </code><code>/path/to/gaia/profile</code></pre>
+
+ <div class="note">
+ <p><strong>Note</strong>: If the <code>-screen</code> setting specifies a resolution bigger than your PC’s screen resolution, the system app will not work properly and you might see a broken UI. Reduce the screen size as necessary for your system.</p>
+ </div>
+
+ <div class="note">
+ <p><strong>Note</strong>: The exact <code>-profile /path/to/gaia/profile</code> that you need is given to you when you create your profile (by running the <code>make</code> command, as shown above.)</p>
+ </div>
+ </li>
+ <li>
+ <p>If everything goes well, you'll see the Home app displayed — displayed incorrectly in a rotated portrait mode. It's a known issue (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1228899">Bug 1228899</a>):<img alt="TV build runs on Mulet" src="https://mdn.mozillademos.org/files/12131/Screen%20Shot%202015-12-09%20at%2010.23.46.png" style="display: block; height: 486px; margin: 0px auto; width: 800px;"></p>
+ </li>
+ <li>
+ <p>You are able to correct it by clicking the rotate button on Mulet's RWD UI toolbar, and adjusting the screen size as necessary:</p>
+ </li>
+</ol>
+
+<p><img alt="TV build runs on Mulet" src="https://mdn.mozillademos.org/files/12135/Screen%20Shot%202015-12-16%20at%203.56.37%20PM.png" style="display: block; height: 486px; margin: 0px auto; width: 800px;"></p>
diff --git a/files/ja/archive/b2g_os/tvs_connected_devices/tv_broadcast_streams_firefox_os/index.html b/files/ja/archive/b2g_os/tvs_connected_devices/tv_broadcast_streams_firefox_os/index.html
new file mode 100644
index 0000000000..65aca036e9
--- /dev/null
+++ b/files/ja/archive/b2g_os/tvs_connected_devices/tv_broadcast_streams_firefox_os/index.html
@@ -0,0 +1,94 @@
+---
+title: Firefox OS 製品におけるテレビ放送ストリーム
+slug: Archive/B2G_OS/TVs_connected_devices/TV_broadcast_streams_Firefox_OS
+tags:
+ - DomMediaStream
+ - Gecko
+ - MediaStream
+ - TV
+ - framebuffer
+ - 放送ストリーム
+translation_of: Mozilla/Firefox_OS_for_TV/TV_broadcast_streams_Firefox_OS
+---
+<p class="summary">この記事では、Firefox OS においてテレビ放送ストリームを処理・表示を可能にした仕組みを説明します。</p>
+
+<p>テレビは Web プロットフォームにおいて新興領域です。これは最近の Web 技術を活用したものです。私たちは現在、エキサイティングなチャレンジとしてテレビで Web を扱い、今後 Web ベースアプリのエクスペリエンスを特徴とする、より面白いインタラクティブな機能を持つ Smart TV をもたらします。Firefox OS はプラットフォームプロバイダーとしてオープンな Web 技術を採用し、より多くのクロスプラットフォーム上で既存の Web アプリを動作させます。</p>
+
+<p>しかし現在のスマートテレビの最も一般的な使用方法は、プラットフォーム固有の機能をFirefox OS でサポートするために我々が実装すべきテレビ放送を扱う機能だけになります。</p>
+
+<h2 id="テレビ放送ストリーム">テレビ放送ストリーム</h2>
+
+<p>テレビ放送ストリーム技術は既に開発された技術であり、多くのテレビメーカの競争ポイントとなっています。これらはテレビにおける効果的な AV 同期工学技術を含む技術です。これは、最適化されたフレームレートでなめらかな視聴体験を提供することを意味し、メーカーはハードウェアでコードとレンダリング性能をチューニングしています。</p>
+
+<h3 id="Firefox_OS_でテレビ放送ストリームを実現する">Firefox OS でテレビ放送ストリームを実現する</h3>
+
+<p>本来 Web ブラウザ専用に設計された描画パイプラインを持つFirefox OS ではテレビ放送ストリームをネィティブサポートしていません。そのため、Firefox OS は現在、ハードウェアコンポーザーをサポートしておらず、テレビ放送ストリームをデコード・描画する際はメーカーのハードウェアアクセラレーションユーティリティーを必要とします。このような既存技術は信頼性が高く、メーカが既存の技術を捨てるようなものではありません。</p>
+
+<p>Firefox の Gecko はレンダリングパイプラインと現在のフレームの結果をフレームバッファにレンダリングする処理をハンドリングします。しかし、テレビメーカのハードウェアは自前のフレームバッファにレンダリングします。これら2つのフレームバッファはそれぞれ独立し、お互いにブロックしています。この問題を解決するために、<code>DomMediaStream のサブセットである DomHwMediaStream を実装するようにしています。</code></p>
+
+<p><a href="https://mdn.mozillademos.org/files/11387/%5E62AFD1F0AC6838ECDE44A052E8ED64C03785C0B44312605490%5Epimgpsh_fullsize_distr.jpg"><img alt="Figure 1: The hierarchy of DomHwMediaStream" src="https://mdn.mozillademos.org/files/11387/%5E62AFD1F0AC6838ECDE44A052E8ED64C03785C0B44312605490%5Epimgpsh_fullsize_distr.jpg" style="display: block; height: 248px; margin: 0px auto; width: 800px;" title="Figure 1: The hierarchy of DomHwMediaStream"></a></p>
+
+<p>上記の図は、API がオーバーレイイメージを作成し、<code>MediaStream にプライマリービデオトラックを追加していることを示す図です。画面サイズはテレビプログラム仕様に従い調整することが可能です。加えて、DomMediaStream は MediaStream</code> の DOM ラッパーであるため、ビルトインでテレビ放送ストリームをハンドリングするための基本的な幾つかの機能が備わっています。開発者は関連する情報にアクセスするための API  を活用することができます。</p>
+
+<p>サンプルを見ていきましょう</p>
+
+<pre class="brush: js">// 使えるテレビチューナー全てを取得する
+navigator.tv.getTuners().then(
+ function(aTuners) {
+
+ for ( var i = 0; i &lt; aTuners.length; ++i ) {
+ var tuner = aTuners[i];
+
+ // チューナーのソースが変更されるたびに新しい mediaStream の情報を取ることができます。
+ tuner.oncurrentsourcechanged = function(aEvent) {
+ getTracksInfo(tuner.stream);
+ };
+ }
+
+ },
+ function(aError) {
+ console.error( "Fail to get tuners: " + aError );
+ }
+);
+
+// 全てのトラック情報を取得する
+function getTracksInfo(aStream) {
+
+ var tracks = aStream.getTracks();
+
+ for ( var i = 0; i &lt; tracks.length; ++i ) {
+ var track = tracks[i];
+
+ console.log( "track info id: " + track.id );
+ console.log( "track info kind: " + track.kind );
+ console.log( "track info label: " + track.label );
+ }<code>
+}</code></pre>
+
+<p><code>DomHwMediaStream では、OverlayImage</code> は直接 GFX コンポーザーによって処理されます。<code>OverlayImage(特に転送レイヤー)は、フレームバッファーにレンダリングされたもので、ユーザーはテレビのフレームバッファを Gecko のフレームワーバーを介してアクセスすることができます。</code></p>
+
+<p><a href="https://mdn.mozillademos.org/files/11389/p2.jpg"><img alt="Figure 2: OverlayImage in DomHwMediaStream" src="https://mdn.mozillademos.org/files/11389/p2.jpg" style="display: block; height: 239px; margin: 0 auto; width: 600px;" title="Figure 2: OverlayImage in DomHwMediaStream"></a></p>
+
+<h3 id="長所と短所">長所と短所</h3>
+
+<p>このアプローチは長所・短所があります。最初に長所を解説します。</p>
+
+<ul>
+ <li>Gecko では AV 同期をハンドリングする機能を持っていないため、テレビメーカーは自身の AV 同期機構を継続して利用でき、以前同様のハードウェア描画や AV 同期モジュールを医療することができます。</li>
+ <li>Web 開発者は 慣れている Web 開発手法でテレビアプリを作成できるため、 Web API を活用するコンテントプロバイダーが多く参加できます。例えば、 <a href="/docs/Web/API/MediaStream_API">MediaStream API</a> は <code>videoStreamTrack</code> と <code>AudioStreamTrack</code> にアクセスするための <a href="/docs/Web/API/MediaStreamTrack">MediaStreamTrack</a> を提供しています。加えて、MediaStream API はテレビ放送ストリームを操作する MediaStream インターフェイスを使えます。API を変更するような特別な要求がある場合、メーカーは DOMMediaStream オブジェクトを継承し、追加・上書きができます。</li>
+ <li>この API を使う際は、ハードウェア描画するフレームバッファデータのコピーを必要としません。</li>
+</ul>
+
+<p>短所:</p>
+
+<ul>
+ <li>CSS をテレビ放送ストリームに適用させることができないのは、最も明らなものの1つです。上記で述べたように、Gecko とテレビハードウェアメーカーは独立しており、パフォーマンス問題になるようなピクセルデータ単位でテレビのフレームバッファを Gecko のレイヤーにコピーするような事をしない限りは、テレビ放送ストリームに CSS エフェクトをサポートすることができません。</li>
+ <li>もう1点は、Web Audio です。現在テレビ音声トラックは Geckoではなく、テレビハードウェアで処理(デコード、A-V同期)している事から、テレビ放送ストリームで <a href="/docs/Web/API/Web_Audio_API">Web Audio API</a> をサポートする事ができません。(近い将来解決する事を目指しています) Web Audio API はボリュームや音声チャンネルレイアウトの切り替え、音声チャンネルミキサーやテレビチャンネル間のクロスフェードのような強力な機能の様なシンプルかつパワフルなコントロールを扱えます。</li>
+</ul>
+
+<h2 id="最後に">最後に</h2>
+
+<p><br>
+ Web の強みはユビキタス配信プラットフォームですが、いくつかのプラットフォームでは独自機能を必要としている点に注意してください。テレビでは、Web とテレビコンテンツを共存させることができる描画パスを持った設計を持ち、より多くの開発者をエコシステムに参加させるような効果的な放送ストリームは極めて重要です。将来的にテレビメーカーがストリームイメージを直接 CSS エフェクトをサポートできるハードウェアコンポーザーを実現する事を目指しています。この方法でハードウェアコンポーザーはメーカーが画面エフェクトをカスタマイズする事ができる様になります。</p>
+
+<p>テレビは Web 開発者にとっては比較的新鮮なデバイスですが、クロスプラットフォーム Web 技術の能力で、より多くのイノベーションの機会をもたらしてくれる事を期待しています。</p>
diff --git a/files/ja/archive/b2g_os/tvs_connected_devices/tv_remote_control_button_mapping_to_keyboard/index.html b/files/ja/archive/b2g_os/tvs_connected_devices/tv_remote_control_button_mapping_to_keyboard/index.html
new file mode 100644
index 0000000000..d607d67868
--- /dev/null
+++ b/files/ja/archive/b2g_os/tvs_connected_devices/tv_remote_control_button_mapping_to_keyboard/index.html
@@ -0,0 +1,148 @@
+---
+title: TV リモコンボタンのキーボードへのマッピング
+slug: >-
+ Archive/B2G_OS/TVs_connected_devices/TV_remote_control_button_mapping_to_keyboard
+tags:
+ - Controls
+ - Firefox OS
+ - Gaia
+ - Remote
+ - TV
+ - keyboard
+translation_of: Mozilla/Firefox_OS_for_TV/TV_remote_control_button_mapping_to_keyboard
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p class="summary">このTVリモコンボタンをキーボードを使ってシュミレーションする方法を簡潔に記します。</p>
+
+<p>We use the keyboard to simulate TV remote control buttons when developing apps for Firefox OS on TV. The following explains the keyboard equivalents to the TV remote control buttons in the three different platforms: Mac OS X, Windows and Linux.</p>
+
+<h2 id="Mac_OS_X">Mac OS X</h2>
+
+<table class="standard-table" style="height: 171px; width: 260px;">
+ <tbody>
+ <tr>
+ <td><strong>リモコン</strong></td>
+ <td><strong>キーボード</strong></td>
+ </tr>
+ <tr>
+ <td><kbd>home</kbd></td>
+ <td><kbd>fn</kbd> + <kbd>left</kbd></td>
+ </tr>
+ <tr>
+ <td><kbd>back</kbd></td>
+ <td><kbd>backspace</kbd></td>
+ </tr>
+ <tr>
+ <td><kbd>enter</kbd></td>
+ <td><kbd>return</kbd></td>
+ </tr>
+ <tr>
+ <td><kbd>option</kbd></td>
+ <td><kbd>fn</kbd> + <kbd>ctrl</kbd> + <kbd>I</kbd></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Windows">Windows</h2>
+
+<table class="standard-table" style="height: 171px; width: 260px;">
+ <tbody>
+ <tr>
+ <td><strong>リモコン</strong></td>
+ <td><strong>キーボード</strong></td>
+ </tr>
+ <tr>
+ <td><kbd>home</kbd></td>
+ <td><kbd>home</kbd></td>
+ </tr>
+ <tr>
+ <td><kbd>back</kbd></td>
+ <td><kbd>backspace</kbd></td>
+ </tr>
+ <tr>
+ <td><kbd>enter</kbd></td>
+ <td><kbd>enter</kbd></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Linux">Linux</h2>
+
+<table class="standard-table" style="height: 171px; width: 270px;">
+ <tbody>
+ <tr>
+ <td><strong>リモコン</strong></td>
+ <td><strong>キーボード</strong></td>
+ </tr>
+ <tr>
+ <td><kbd>home</kbd></td>
+ <td><kbd>home</kbd></td>
+ </tr>
+ <tr>
+ <td><kbd>back</kbd></td>
+ <td><kbd>backspace</kbd></td>
+ </tr>
+ <tr>
+ <td><kbd>enter</kbd></td>
+ <td><kbd>enter</kbd></td>
+ </tr>
+ <tr>
+ <td><kbd>option</kbd></td>
+ <td><kbd>shift</kbd> + <kbd>F10</kbd></td>
+ </tr>
+ </tbody>
+</table>
diff --git a/files/ja/archive/b2g_os/tvs_connected_devices/tv_remote_control_navigation/index.html b/files/ja/archive/b2g_os/tvs_connected_devices/tv_remote_control_navigation/index.html
new file mode 100644
index 0000000000..72a1bb25ec
--- /dev/null
+++ b/files/ja/archive/b2g_os/tvs_connected_devices/tv_remote_control_navigation/index.html
@@ -0,0 +1,334 @@
+---
+title: TV リモコンのナビゲーションを実装する
+slug: Archive/B2G_OS/TVs_connected_devices/TV_remote_control_navigation
+tags:
+ - Controller
+ - Controls
+ - Firefox OS
+ - JavaScript
+ - Navigation
+ - TV
+ - spatial navigation
+translation_of: Mozilla/Firefox_OS_for_TV/TV_remote_control_navigation
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p class="summary">User experience design for TVs is very different to smart phones. The screen is much larger, but users have to navigate apps using a TV remote control — other more familar mechanisms such as mouse or touch screen are not available. This article explains how the controls in Gaia's TV apps were developed.</p>
+
+<h2 id="マウスを使わずにフォーカスをあてたり視覚を扱う">マウスを使わずにフォーカスをあてたり視覚を扱う</h2>
+
+<p>When the only user navigation is via arrow keys on a remote control, an app has to decide by itself which element should be highlighted next — above the current position, below it, etc. The app also needs to record which element the cursor stops on, to focus it. Such a mechanism is called <strong>Spatial Navigation</strong>. To implement this, we have to consider the following specifics:</p>
+
+<ol>
+ <li>How to choose the next element from a number of nearby DOM elements without explicit context.</li>
+ <li>How to trigger the function registered on the currently-focused element when users press the corresponding key (e.g. the &lt;kbd&gt;ENTER&lt;/kbd&gt; key to trigger <code>onclick</code>.)</li>
+</ol>
+
+<p>We’ll talk about the first point later on — the <a href="#Existing_libraries">Existing libraries</a> section discusses available out-of-the-box libraries inside Gaia, and the <a href="#Algorithm_design">Algorithm design</a> section talk about the implementations of the algorithms used in those libraries.</p>
+
+<p>Turning our attention to the second point, we can place the &lt;kbd&gt;ENTER&lt;/kbd&gt; key <code>EventListener</code> to identify the current focus, and then call the handler to be executed. This operating way is similar to delegation. Here is the event listener used in Home app:</p>
+
+<pre class="brush: js" dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"><span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;">onEnter: function() {</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> ...</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> var focusElem = this.focusElem;</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> ...</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> if (focusElem === this.settingsButton) {</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> this.openSettings();</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> } else if (focusElem === this.editButton) {</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> ...</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> this.edit.toggleEditMode();</span>
+<span style="background-color: transparent; color: #000000; font-family: courier new; font-size: 13.333333333333332px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline;"> ...</span></pre>
+
+<p dir="ltr" style="line-height: 1.38; margin-top: 0pt; margin-bottom: 0pt;"> </p>
+
+<p>The main logic is clear: when the current focus stops on the <code>settingsButton</code> or <code>editButton</code>, we call <code>openSettings()</code> or <code>toggleEditMode()</code> respectively; that is, we simply call the corresponding handler. If there are many objects, we can directly dispatch custom events to trigger <code>EventListeners</code> for each element, which can avoid lengthy enumeration of handlers using <code>if..else if</code>.</p>
+
+<div class="note">
+<p><strong>Note:</strong> Keyboard events are sent from root elements. The focused elements in the real DOM tree will not influence the event target.</p>
+</div>
+
+<div>
+<p>For the focused objects in Gaia, we’ll directly call <a href="/ja/docs/Web/API/HTMLElement/focus" title="指定要素を(可能な場合)フォーカス状態にします。"><code>HTMLElement.focus()</code></a> in each case and assign the real focus in DOM Tree to it (that is, the object returned by <a href="/ja/docs/Web/API/Document/activeElement" title="Returns the currently focused element, that is, the element that will get keystroke events if the user types any. This attribute is read only."><code>document.activeElement()</code></a>.) Then we change the object’s style with a CSS <a href="/ja/docs/Web/CSS/:focus" title="CSS の :focus 疑似クラスは、フォーカスを持っている (フォームの入力のような) 要素を表します。普通はユーザーが要素をクリックやタップをしたり、キーボードの[タブ]キーで選択したりしたときです。"><code>:focus</code></a> pseudo class. <a href="/ja/docs/Web/API/HTMLElement/focus" title="指定要素を(可能な場合)フォーカス状態にします。"><code>HTMLElement.focus()</code></a> itself will not report a success or failure.</p>
+
+<p>In some special situations, such as calling focus() on an <a href="/ja/docs/Web/HTML/Element/iframe" title="HTML のインラインフレーム要素 (&lt;iframe>) は、入れ子になった閲覧コンテキスト (browsing context) を表現し、効果的に現在のページに他の HTML ページを埋め込むことができます。"><code>&lt;iframe&gt;</code></a>, focus() cannot be called directly — in such cases we have to execute <a href="/ja/docs/Web/API/HTMLElement/blur" title="blur メソッドは指定要素からフォーカスを外します。"><code>document.activeElement.blur()</code></a> first. See <a href="https://wiki.mozilla.org/User:Johnhu/System_Merge#TV_specific_window_manager_is_created_and_can_be_loaded_on_demand_.28meta:_bug_1179642.29">TV specific window manager is created and can be loaded on demand</a> for other common focus() failure situations and potential solutions.</p>
+</div>
+
+<h2 id="既存ライブラリ">既存ライブラリ</h2>
+
+<p>Some libraries for keyboard navigation are included inside the <a href="https://github.com/mozilla-b2g/gaia">Gaia repo</a>. <code><a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/smart-screen/spatial_navigator.js">SpatialNavigator</a></code> and <code><a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/smart-screen/simple_key_navigation.js">SimpleKeyNavigation</a></code> keep track of which element on the screen is currently being focused. <code><a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/smart-screen/key_navigation_adapter.js">KeyNavigationAdapter</a></code> is an event wrapper for arrow keys. Let's explain them in a little more detail.</p>
+
+<h3 id="SpatialNavigator">SpatialNavigator</h3>
+
+<p>This library provides a generic algorithm to navigate among a collection of elements. It keeps track of a set of elements and the “currently focused element”, and you can send it a direction (left, right, up, or down) to navigate to other elements close to the current focus. We use “<a href="https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect">getBoundingClientRect</a>” to determine the real positions of elements on the screen. You can just ask the library to find the next target for you automatically, however sometimes the target may not be the one you expected. In these cases, you have to carry out an “except” condition before calling the navigation algorithm of the library. We will talk about this algorithm in the next section.</p>
+
+<h3 id="SimpleKeyNavigation">SimpleKeyNavigation</h3>
+
+<p>Although this library stores an array of elements, it only allows navigation in one dimension at a time (horizontal or vertical.) The order of focus is determined only by the position of elements inside the array rather than their real position on the screen. It also listens to key events automatically. If your user interface is simple, this can be a suitable lightweight choice for navigation.</p>
+
+<p>This library is most suitable for small amounts of elements whose relative positions don't change. It's commonly used for modal dialog button sets, such as alert and confirm dialogs. </p>
+
+<h3 id="KeyNavigationAdapter">KeyNavigationAdapter</h3>
+
+<p>This wrapper class listens to raw key events and organizes them to be handled by higher-level custom events, allowing apps to handle them more efficiently. For example, the <code>keydown</code> events of the four arrow keys are combined into a single <code>move</code> event while the corresponding <code>keyup</code> events become a single <code>move-keyup</code> event. The arguments passed to the event handlers of these two custom events are exactly the same as what <code>SpatialNavigator</code> accepts in its own methods, allowing easier integration of these two libraries in your app.</p>
+
+<h2 id="アルゴリズム設計">アルゴリズム設計</h2>
+
+<p>Compared with general web pages, it’s much more important for an app to have a highly customizable spatial navigation function because of its complex behaviors. For instance, some authors may prefer moving the focus among elements based on some specified order or intend to adjust the order dynamically. The existing one in Fennec doesn’t do enough for our use cases on TV, so we’ve already filed a meta bug (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1114536" title="Support basic spatial navigation for web pages on non-touch device">バグ 1114536</a>.) Before this work is completed, we still need an alternative function to help us develop apps on TV. That’s why we implemented <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/smart-screen/spatial_navigator.js">SpatialNavigator.js</a> in Gaia. Let’s look into how it works.</p>
+
+<p><code>SpatialNavigator</code> maintains a list of focusable elements. You can pass them in at the initialization stage and modify them later as needed. In addition, the module also keeps track of the currently-focused element.</p>
+
+<p>Let’s look at an example — we have five elements, one of which is currently focused (the blue element with the yellow frame represents), and the other four which are to the right of the first one in slightly different places. We split the area around the currently-focused element into 9 slices:</p>
+
+<ol start="0">
+ <li>Top left.</li>
+ <li>Top.</li>
+ <li>Top right.</li>
+ <li>Left.</li>
+ <li>The currently focused element.</li>
+ <li>Right.</li>
+ <li>Bottom left.</li>
+ <li>Bottom.</li>
+ <li>Bottom right.</li>
+</ol>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/11531/p1.jpg" style="display: block; height: 364px; margin: 0px auto; width: 500px;"></p>
+
+<p>When you query <code>SpatialNavigator.js</code> to find out what element to move to if the &lt;kbd&gt;RIGHT&lt;/kbd&gt; arrow key is pressed, it will first work out what focusable elements are to the right of the currently-focused element. First, it lengthens the right hand edge of the currently-focused element.</p>
+
+<p>Refering to the numbers in the picture, we all agree that elements located in areas 2, 5 and 8 (top right, right, and bottom right slices) should be considered "on the right". The library calculates the center point of each focusable element in the list and filters the elements with center points located the slices mentioned above (element C is considered to belong to slice 5 since its center point is close to its edge.)</p>
+
+<div class="note">
+<p><strong>Note</strong>: Some elements may overlap: we treat elements with center points located inside the nearest half of the currently-focused element (in this example, the right half) as candidates as well.</p>
+</div>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/11533/p2.jpg" style="display: block; height: 333px; margin: 0px auto; width: 500px;"></p>
+
+<p>The most important part is how to determine the weight of the candidates and sort them.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/11535/p3.jpg" style="display: block; height: 364px; margin: 0px auto; width: 500px;"></p>
+
+<p>In the module, we define three priority levels:</p>
+
+<ol>
+ <li>Higher priority is given to elements with centers inside the slices that are adjacent to the currently-focused element (slice 5 in this case), than to slices that are diagonally placed (2 and 8).</li>
+ <li>Next, for the adjacent slices we calculate the distance between the closest edge of each candidate (left side in this case) and the nearest edge of the currently-focused element (right in this case) — the red lines in the graphic. The shorter distance, the higher the given priority.</li>
+ <li>Last, the lowest priority — for the adjacent slices we calculate the shortest distance between the edge of each candidate and the horizontal boundary line of the slice to which the candidate belongs — the blue arrows in the graphic. If there are two boundary lines needing to be considered, the upper one or the left one will be chosen first. The same principle is used here: shorter distance means higher priority.</li>
+ <li>For candidates in diagonal slices, priority levels 2 and 3 are awapped over — therefore a shorter vertical distance gives a higher priority than a shorter horizontal distance for diagonals (this is why the order given below is ... A, D and not ... D, A.)</li>
+</ol>
+
+<p>The priority order we end up with is B, C, A, D — the focus will be moved to element B when you press the RIGHT arrow key.</p>
+
+<p> </p>
+
+<h3 id="Algorithm_issues_and_improvements">Algorithm issues and improvements</h3>
+
+<p>The algorithm above is our first version. However, we encountered a problem when it went live, with situations where you have a large element close to the currently-focused element, but whose center doesn't sit inside the adjacent slice (A in the diagram), and a small element further away, whose center does sit inside the adjacent slice (B in the diagram):</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/11537/p4.jpg" style="display: block; height: 366px; margin: 0px auto; width: 500px;"></p>
+
+<p>We expect the focus to be moved to element A when pressing the &lt;kbd&gt;DOWN&lt;/kbd&gt; key from the currently-focused element, but unfortunately the focus jumps to element B instead — this isn’t intuitive.</p>
+
+<p>Let's look at a similar situation where the &lt;kbd&gt;DOWN&lt;/kbd&gt; key is pressed and discuss a potential solution. We altered the algorithm to give equal priority to every element overlapping the adjacent slice — regardless of how much they overlap. However then we encountered another problem. If for example you have two elements below the currently-focused element, one that largely overlaps the adjacent slice but is slightly further away (E in the diagram), and one that only slightly overlaps the adjacent slice but is slightly closer (D in the diagram), the former gets a higher priority and is focused next. Again, this isn't what users would expect — you'd expect E to be focused before D.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/11539/p5.jpg" style="display: block; height: 367px; margin: 0px auto; width: 500px;"></p>
+
+<p>To combat this, we added a threshold to determine whether we should treat an element as a candidate or not — a customizable property to adjust the minimum percentage by which an element needs to overlap the adjacent slice before it is granted the associated higher priority.</p>
+
+<h2 id="Example">Example</h2>
+
+<p>Now we've discussed the technology we've made available for implementing spatial navigation, let's looks at an example implementation. This section discusses the HOME app from Gaia.</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/11541/p6.jpg" style="display: block; height: 357px; margin: 0px auto; width: 550px;"></p>
+
+<h3 id="Including_the_libraries">Including the libraries</h3>
+
+<p>First, the app includes <code>spatialNavigator</code> and <code>keyNavigationAdapter</code> — this comes from <a href="https://github.com/mozilla-b2g/gaia/blob/master/tv_apps/smart-home/index.html">index.html</a>:</p>
+
+<pre class="brush: html">...
+&lt;!-- Shared TV library for keyboard-based navigating --&gt;
+...
+&lt;script defer src="shared/js/smart-screen/spatial_navigator.js"&gt;&lt;/script&gt;
+&lt;script defer src="shared/js/smart-screen/key_navigation_adapter.js"&gt;&lt;/script&gt;
+&lt;!-- Specific code --&gt;</pre>
+
+<p>(It also partially uses <code>simpleKeyNavigation</code>, but we won't discuss this further.)</p>
+
+<h3 id="Initialization">Initialization</h3>
+
+<p>When activating the app, we initialize the two libraries (see <a href="https://github.com/mozilla-b2g/gaia/blob/master/tv_apps/smart-home/js/home.js">home.js</a>):</p>
+
+<pre class="brush: js">...
+init: function() {
+ ...
+ var collection = that._getNavigateElements();
+ that.spatialNavigator = new SpatialNavigator(collection);
+ that.spatialNavigator.straightOnly = true;
+ that.keyNavigatorAdapter = new KeyNavigationAdapter();
+ that.keyNavigatorAdapter.init();
+ that.keyNavigatorAdapter.on('move', that.onMove.bind(that));
+ // All behaviors which no need to have multple events while holding the
+ // key should use keyup.
+ that.keyNavigatorAdapter.on('enter-keyup', that.onEnter.bind(that));
+ ...
+ that.spatialNavigator.on('focus', that.handleFocus.bind(that));
+ that.spatialNavigator.on('unfocus', that.handleUnfocus.bind(that));</pre>
+
+<p>First we call <code>_getNavigateElements()</code>, which returns an array containing <code>HTMLElement</code> and is stored in the variable <code>collection</code>. Second, we send the array to the initialization parameter of <code>SpatialNavigator</code> mentioned before. This tells <code>SpatialNavigator</code> which elements are focusable. We also assign <code>straightOnly</code> as the preference for judging which elements will considered candidates for spatial navigation — diagonally placed elements will not be listed as candidates. You can <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/smart-screen/spatial_navigator.js#L58-L95">refer here for options</a> other than <code>straightOnly</code>.</p>
+
+<h3 id="Defining_the_elements_to_be_navigated">Defining the elements to be navigated</h3>
+
+<p>Let’s look at the content of <code>_getNavigateElements()</code>:</p>
+
+<pre class="brush: js"> navigableIds:
+ ['search-button', 'search-input', 'settings-group', 'filter-tab-group'],
+ navigableClasses: ['filter-tab', 'command-button'],
+ ...
+ _getNavigateElements: function() {
+ var elements = [];
+ this.navigableIds.forEach(function(id) {
+ var elem = document.getElementById(id);
+ if (elem) {
+ elements.push(elem);
+ }
+ });
+ this.navigableClasses.forEach(function(className) {
+ var elems = document.getElementsByClassName(className);
+ if (elems.length) {
+ // Change HTMLCollection to array before concatenating
+ elements = elements.concat(Array.prototype.slice.call(elems));
+ }
+ });
+ elements = elements.concat(this.navigableScrollable);
+ return elements;
+ },</pre>
+
+<p><code>_getNavigateElements()</code> has two <code>forEach</code> loops that iterate through the <code>navigableIds</code> and <code>navigableClasses</code> arrays respectively. The former uses HTML object IDs to indicate which objects should be spatially navigated; the latter does the same thing with HTML object classes.</p>
+
+<h3 id="Receiving_key_events_and_finding_focus_targets">Receiving key events and finding focus targets</h3>
+
+<p>Back in <code>init()</code>, we initialize <code>keyNavigatorAdapter</code> and register two event listeners, <code>move</code> and <code>enter-keyup</code>, to receive keyboard events. The <code>move</code> event will be triggered by pressing one of the &lt;kbd&gt;UP&lt;/kbd&gt;, &lt;kbd&gt;DOWN&lt;/kbd&gt;, &lt;kbd&gt;LEFT&lt;/kbd&gt;, or &lt;kbd&gt;RIGHT&lt;/kbd&gt; keys, taking the appropriate <code>left</code>, <code>right</code>, <code>up</code>, and <code>down</code> string as a parameter in each case. We can now just call <code>spatialNavigator</code> in the event listener to find the next focus target:</p>
+
+<pre class="brush: js"> onMove: function(key) {
+ ...
+ var focus = this.spatialNavigator.getFocusedElement();
+ if (!(focus.CLASS_NAME == 'XScrollable' &amp;&amp; focus.move(key))) {
+ this.spatialNavigator.move(key);
+ }
+ },
+</pre>
+
+<p>Here we first find out the currently-focused object by using <code>spatialNavigator.getFocusedElement()</code>. The HOME app includes a XScrollable object which is an object has its own spatial navigator and manages the element set by itself, so we just hand out the keyboard event to this XScrollable object once it got focus. We skip this specific situation and directly send the <code>key</code> parameter into <code>spatialNavigator.move()</code> to find the next object. After finding the next object, <code>spatialNavigator.move()</code> triggers the focus event:</p>
+
+<pre class="brush: js"> handleFocus: function(elem) {
+ if (elem.CLASS_NAME == 'XScrollable') {
+ this._focusScrollable = elem;
+ elem.focus();
+ this.checkFocusedGroup();
+ } else if (elem.nodeName) {
+ switch(elem.nodeName.toLowerCase()) {
+ case 'menu-group':
+ this.handleFocusMenuGroup(elem);
+ break;
+ default:
+ elem.focus();
+ this._focus = elem;
+ this._focusScrollable = undefined;
+ this.checkFocusedGroup(elem);
+ break;
+ }
+ ...
+ },</pre>
+
+<p>The code above executes the necessary actions for different focused elements. We'll not say much more for brevity.</p>
+
+<h3 id="Dynamically_changing_object_collections">Dynamically changing object collections</h3>
+
+<p>With these event being handled, we've made a prototype of a TV app. We have not mentioned about dynamically and programmatically changing object collections of spatial navigations. Here is a brief example.</p>
+
+<p>In the HOME app there are <code>menuGroup</code> elements that contain hidden subitems (developed as <a href="/en-US/docs/Web/Web_Components">Web Components</a> — these can be regarded as <code>HTMLElements</code> with custom behaviors.) We want the following behaviors to happen:</p>
+
+<ol>
+ <li>The user navigates to a <code>menuGroup</code>.</li>
+ <li>The <code>menuGroup</code> expands and shows its sub-items.</li>
+ <li>The sub-items should be added as targets for spatial navigation, while the <code>menuGroup</code> should be removed from the list of targets.</li>
+</ol>
+
+<p>The third step is handled using the following code:</p>
+
+<pre class="brush: js"> handleFocusMenuGroup: function(menuGroup) {
+ var self = this;
+ menuGroup.once('opened', function() {
+ self.spatialNavigator.remove(menuGroup);
+ var childElement = menuGroup.firstElementChild;
+ var firstFocusable = null;
+ while(childElement) {
+ switch(childElement.nodeName.toLowerCase()) {
+ ...
+ default:
+ firstFocusable = firstFocusable || childElement;
+ self.spatialNavigator.add(childElement);
+ }
+ childElement = childElement.nextElementSibling;
+ }
+ ...
+ if (firstFocusable) {
+ self.spatialNavigator.focus(firstFocusable);
+ }
+ }</pre>
+
+<p>After expanding, the <code>menuGroup</code> fires an <code>opened</code> event, triggering the callback function. In the callback function, we first call <code>spatialNavigator.remove(menuGroup) </code>to remove <code>menuGroup</code> from the navigation target list, then we use a <code>while</code> loop to cycle through all the child elements of <code>menuGroup</code> and add them as navigation targets with <code>spatialNavigator.add(childElement)</code>. The <code>switch case</code> is used to exclude some exceptions that should not be added.</p>
+
+<p>Finally, we call <code>spatialNavigator.focus(firstFocusable)</code> to programmtically move focus to the first item. This call will trigger <code>spatialNavigator</code> to fire focus events and finally call the <code>handleFocus()</code> function mentioned before.</p>
diff --git a/files/ja/archive/b2g_os/using_the_app_manager/index.html b/files/ja/archive/b2g_os/using_the_app_manager/index.html
new file mode 100644
index 0000000000..0d280fc225
--- /dev/null
+++ b/files/ja/archive/b2g_os/using_the_app_manager/index.html
@@ -0,0 +1,303 @@
+---
+title: アプリマネージャを使用する
+slug: Archive/B2G_OS/Using_the_App_Manager
+tags:
+ - App Manager
+ - Apps
+ - Debugging
+ - Firefox OS
+ - simulator
+ - アプリ
+translation_of: Archive/B2G_OS/Using_the_App_Manager
+---
+<div class="warning">
+<p><strong>重要</strong>: アプリマネージャは廃止済みと考えられるべきですれ; つまりFirefoxからアプリマネージャを削除する作業が始まっていて (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1007061" title="FIXED: Remove /browser/devtools/app-manager/">バグ 1007061</a> を見てください)、そうしないための本当に良い理由がないなら、その代わりに <a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE">WebIDE</a> を使います。</p>
+</div>
+
+<div class="summary">
+<p>アプリマネージャはデスクトップ版のFirefoxの為のツールです。アプリマネージャはFirefox OS端末およびシミュレータ向けのHTML5アプリケーションのテスト、デプロイ、デバッグをサポートする数々の便利なツールを提供し、ブラウザから直接利用できます。</p>
+
+<p>アプリマネージャはFirefox OS 1.2以降の開発者向けです。それより低いバージョンでは<a href="/ja/docs/Tools/Firefox_OS_1.1_Simulator">Firefox OS 1.1 Simulator</a>がサポートされています。アプリマネージャはFirefox 33以降<a href="/ja/docs/Tools/WebIDE">WebIDE</a>に置き換えられつつあります。WebIDEはアプリマネージャの全機能のほか、FirefoxOSアプリを作成、開発するための編集機能を提供しています。</p>
+</div>
+
+<p></p><div class="intrinsic-wrapper"><div class="intrinsic-container "><iframe src="https://www.youtube.com/embed/z1Bxg1UJVf0?rel=0&amp;html5=1"></iframe></div></div><p></p>
+
+<p>アプリマネージャは以下で構成されています。</p>
+
+<ul>
+ <li><a href="#Apps_panel"><em>アプリ パネル</em></a> : <span style="line-height: 1.5em;">ローカルに存在するアプリ(PC内にアプリのソースコードが存在するアプリ)の管理が行えます。</span>
+
+ <div>そして、端末やシミュレータへのアプリのインストールやToolboxesを使用してのデバッグが行えます。</div>
+ </li>
+ <li><a href="#Device_panel" style="line-height: 1.5em;"><em>端末 パネル</em></a><span style="line-height: 1.5em;"> :  接続されたFirefox OSデバイスに関する様々な情報(インストールされたアプリの一覧と、利用するAPIの権限情報、Firefox OSのバージョン)が表示されます。</span></li>
+ <li><a href="/ja/docs/Tools_Toolbox"><em>Toolboxes</em></a>, : 開発者向けのツール( Web コンソール, インスペクタ, デバッガなど )になり、アプリパネルからアプリを選択し、操作することが出来ます。</li>
+</ul>
+
+<h2 id="さぁ始めよう(Quick_setup)"><a name="Configuring_device">さぁ始めよう(Quick setup):</a></h2>
+
+<div>このセクションはあなたが可能な限り早く使用できるように記載されています。</div>
+
+<div>もし、これ以上の詳細な情報が欲しい場合、<a href="#Device_and_system_configuration">端末とシステムの設定</a> セクションまで飛ばしてください。</div>
+
+<div>何かトラブルが起きた場合は、<a href="#Troubleshooting">トラブルシューティング</a> セクションを参照してください。</div>
+
+<ol>
+ <li>デスクトップ版のFirefox 26以上をインストール</li>
+ <li>アプリマネージャを開く(URLバーに”<code>about:app-manager</code>”<span style="font-family: courier new,andale mono,monospace; line-height: normal;">と入力するか、Firefoxのメニューで<em>Tools &gt; Web Developer &gt; App Manager</em>と進む</span>)これはブラウザの新しいタブに出てくるでしょう。</li>
+ <li>実際の端末を持っていない場合:
+ <ol>
+ <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Firefox OS Simulator</a>アドオンをインストールし、ブラウザでアプリマネージャのタブに戻る</li>
+ <li>アプリマネージャの下のツールバーから<em>シミュレータを起動</em>を選択してください。選択後、インストール済みのシミュレータが表示されます。シミュレータを選択する事で、選択されたシミュレータが起動します。</li>
+ </ol>
+ </li>
+ <li>実際の端末を持っている場合:
+ <ol>
+ <li>端末のFirefox OSのバージョンを1.2以上にアップデートしてください。<br>
+ keon/peakの場合は<a href="http://downloads.geeksphone.com/" style="margin: 0px; padding: 0px; border: 0px; vertical-align: baseline; color: rgb(102, 17, 204); cursor: pointer; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: normal;">こgeaksphoneの公式ページ</a><span style="color: #222222; font-family: arial,helvetica,sans-serif; font-size: 13px; line-height: normal;">よりアップデートしてください。</span></li>
+ <li>端末設定からスクリーンロックを解除してください (<code>Settings &gt; <code>Screen Lock</code></code>)。その後、Remote Debuggingを有効にしてください(<code>Settings &gt; Device information &gt; More information &gt; Developer</code>)。</li>
+ <li>デスクトップ版のFirefoxのアドオンである<a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/adb-helper/">ADB Helperをインストール</a>してください。</li>
+ <li>端末とあなたのPCをUSBケーブルで接続してください。</li>
+ <li>アプリマネージャの下のツールバーにあなたのデバイスが表示されますので、それを選択してください。</li>
+ </ol>
+ </li>
+ <li>下のツールバーに"Connected to: xxx"と表示されます。</li>
+ <li><em>アプリ</em> <em>パネル</em>を選択し、<span style="line-height: 1.5em;">任意のアプリを追加してください。 (パッケージかホストされたアプリ)</span></li>
+ <li><em>更新</em>ボタンを押下することで接続しているシミュレレータか端末にインストールされているアプリを表示します。</li>
+ <li><em>デバッグ</em>ボタンを押下することで起動中のアプリに開発者ツールを用いて接続することが出来ます。</li>
+</ol>
+
+<h2 id="端末とシステムの設定"><a name="Device_and_system_configuration">端末とシステムの設定</a></h2>
+
+<p>アプリマネージャを使うにはあなたの使用している環境と端末を正しく設定する必要があります。このセクションでは必要となる手順を記載しています。</p>
+
+<h3 id="Firefox_1.2以上が必要">Firefox 1.2以上が必要</h3>
+
+<p>端末がFirefox OS/Boot2Geckoが1.2以上である必要があります。インストールされているバージョンの確認するには、設定アプリを起動し <code style="font-size: 14px; line-height: inherit;">Device Information &gt; Software</code><span style="line-height: inherit;">の順で確認して下さい</span><code style="font-size: 14px; line-height: inherit;">。</code></p>
+
+<p>もし、必要となるバージョン以上がインストールされていない場合、使用している端末によってインストール方法が異なり、あなた自身でソースコードからビルドする必要がある場合のあります。</p>
+
+<p>利用可能なビルド:</p>
+
+<ul>
+ <li><a href="http://downloads.geeksphone.com/">Geeksphone Keon/Peak builds</a> (詳しくは<a href="/ja/docs/Mozilla/Firefox_OS/Developer_phone_guide/Updating_and_Tweaking_Geeksphone">Updating and Tweaking your Firefox OS Developer Preview phone/Geeksphone</a>を見よ)</li>
+ <li>More to follow</li>
+</ul>
+
+<div class="note">
+<p><strong>記:</strong>Firefox OS 1.2以降をビルドするには、<a href="/ja/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Firefox OSビルドの必要条件</a>を読んでから<a href="/ja/Firefox_OS/Building_and_installing_Firefox_OS">Firefox OSのビルドとインストール</a>の指示にしたがってください。</p>
+</div>
+
+<h3 id="リモートデバッグ">リモートデバッグ</h3>
+
+<p>次にFirefox OSのリモートデバッグを有効にします。設定アプリから<span style="font-family: courier new,andale mono,monospace; line-height: inherit;"> <code style="font-size: 14px; line-height: inherit;">Device </code>information &gt; More information &gt; Developerと進み、</span><span style="line-height: inherit;">Remote Debbugingのチェックボックスにチェックを入れてください。</span></p>
+
+<h3 id="Adb_Helper_Add-on" name="Adb_Helper_Add-on">ADBまたはADB helper</h3>
+
+<p>アプリマネージャはAndroid Debug Bridge (ADB)を使用し、PCと端末間で通信を行います。その為、ADBが必要となり、2つの使用方法があります。:</p>
+
+<ul>
+ <li>
+ <p>(推奨)デスクトップ版のFirefoxにADBをインストール: <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/adb-helper/">ADB Helperアドオンをインストール</a>することで簡単にセットアップすることが出来ます。この方法で必要な環境がアドオンに含まれるため、手動でADBをインストールする必要はなく、<code style="font-size: 14px;">adb forwardを使用する必要はありません。</code></p>
+ <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/adb-helper/" style="margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;" title="https://addons.mozilla.org">Download ADB Helper Add-on</a></li>
+ <li>ADBを手動でインストール: <a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Installing_ADB">ADBのインストール</a>で説明されている<code>adbをダウンロードしてインストールする必要があります</code>。ポート転送を設定を有効にする必要がありますので、ターミナルから以下のコマンドを入力してください。<span style="line-height: 1.5em;">:</span></li>
+</ul>
+
+<pre>adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</pre>
+
+<p>端末の再起動、USBケーブルの再接続を行う度にコマンドを入力する必要がありますので、注意してください。</p>
+
+<div class="note">
+<p><strong>記:</strong>ADB Helperアドオンをインストールすることで、上記のコマンドの入力は不要となります。</p>
+</div>
+
+<h2 id="実機をアプリマネージャに接続する">実機をアプリマネージャに接続する</h2>
+
+<p>全ての設定が終わったら、端末をPCに接続し、アプリマネージャを起動させてください。:</p>
+
+<ol>
+ <li>USBケーブルを使用して端末とPCを接続してください。</li>
+ <li>設定アプリからスクリーンロックを解除してください( <code>Settings &gt; Screen Lock</code> に行き、<code>Lock Screen</code>のチェックボックスを解除)。スクリーンがロックされてしまうと、PCとの接続が解除されてしまいます。つまり、これ以上、デバッグができなくなってしまうからです。</li>
+ <li>デスクトップ版のFirefoxでアプリマネージャを起動する。 <code>ツール &gt; Web開発 &gt; アプリマネージャ</code> のメニューを選択、またはアドレスバーに <code>about:app-manager</code> と入力する。</li>
+ <li>アプリマネージャのタブの一番下に、接続ステータスバーが見えるようになります (下のスクリーンショットをみてください)。 "Connect to localhost:6000"のボタンをクリックすることで、実機を接続できるでしょう。</li>
+ <li>うまくいくと、端末に"An incoming request to permit remote debugging connection was detected. Allow connection?"(リモートデバッグの許可リクエストが来ました。接続許可しますか?)というプロンプトが表示されます。OKボタンをタップし(プロンプトが見えるよう電源ボタンも押さないといけないかも) 接続ステータスバーの表示が"B2Gに接続"と更新され、接続をキャンセルするための切断ボタンが使えるようになるでしょう。</li>
+</ol>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/6263/connection-status.png" style="display: block; height: 30px; margin: 0px auto; width: 600px;"></p>
+
+<div class="note">
+<p><strong>記:</strong>接続ステータスバーのその他の部品で、 アプリマネージャとシミュレータを接続する(次節で述べます)ことや、接続ポートの変更ができます。ポート変更した際、同様にポートフォワーディングも有効にする必要があり、その方法は上記の <a href="#Enable_port_forwarding">Enable port forwarding</a>節にあります.</p>
+</div>
+
+<h2 id="Firefox_OSシミュレータのアドオンを使用する"><a name="Simulator">Firefox OSシミュレータのアドオンを使用する</a></h2>
+
+<p>アプリマネージャを使用できる実機を未入手の場合、Firefox OS シミュレータを使うことができます。開始するには、使っているOSに応じたシミュレータをインストールしてください。</p>
+
+<p><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/" style="margin-bottom: 20px; padding: 10px; text-align: center; border-radius: 4px; display: inline-block; background-color: #81BC2E; white-space: nowrap; color: white; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 0px 0px rgba(0, 0, 0, 0.2), 0px -1px 0px 0px rgba(0, 0, 0, 0.3) inset;">Install Simulator</a></p>
+
+<p>シミュレータをインストールしたら、アプリマネージャタブの下部にある接続ステータスバーに行って「シミュレータを起動」ボタンを押します。3つのボタンが出てきます:</p>
+
+<ul>
+ <li>"Firefox OS 1.3", "Firefox OS 1.2" ... など (または似た物): 一番左のボタンはインストールしているシミュレータのバージョンを表します。シミュレータと接続するにはクリックしてください</li>
+ <li>"追加": 真ん中のボタンはこの記事にあるシミュレータのインストールリンクへ誘導します。シミュレータをいくつも追加できます(Firefox OS 1.3, Firefox OS 1.4, ...)</li>
+ <li>"キャンセル": 右側のボタンは接続をキャンセルします。</li>
+</ul>
+
+<div class="note">
+<p><strong>記:</strong> The Firefox OS 1.5 シミュレータは削除されました。1.5は2.0に変わったためです。もしFirefox OS 1.5 シミュレータがインストール済みの場合、自動的に2.0に更新されることはありません。なので1.5をアンインストールし、代わりに2.0をインストールしてください。Firefox OS 2.0 シミュレータは自動更新されます。</p>
+</div>
+
+<div class="note">
+<p><strong>記:</strong> Firefox OS 1.2 シミュレータは削除されました。バージョン1.2の電話機が出ない見通しとなったためです。 — ゆえにこのバージョンは価値が限定されています。そして他のバージョンでデバッグすることに時間を使う方が意味があるでしょう。</p>
+</div>
+
+<h2 id="アプリマネージャでカスタムビルドを実行する">アプリマネージャでカスタムビルドを実行する</h2>
+
+<p>カスタムB2G デスクトップや Gaia/Gecko ビルドをアプリマネージャのシミュレータ経由で実行できます。 その方法のマニュアルは<a href="https://developer.mozilla.org/en-US/Firefox_OS/Running_custom_builds_in_the_App_Manager">Running custom Firefox OS/Gaia builds in the App Manager</a>を見て下さい。</p>
+
+<h2 id="アプリのパネル_Firefox_OS_アプリをテスト、デバッグする"><a name="Apps_panel">アプリのパネル: Firefox OS アプリをテスト、デバッグする</a></h2>
+
+<p>今や全て動きます。アプリパネルで開始し、アプリマネージャ内部の機能を見て行きましょう。ここからデバイスに既にお持ちのアプリをプッシュしてテストしたり、デバッグしたりできます:</p>
+
+<ul>
+ <li>ローカルアプリをインストールするには、"パッケージアプリを追加"ラベルの横にある「+」をクリックし、ファイル選択ダイアログでアプリのあるディレクトリを選択します</li>
+ <li>外部のホスト型アプリをインストールするには、マニフェストファイルの"ホストされたアプリを追加"ボックスの中のテキスト領域に絶対パスでURL指定し、「+」のボタンを押します。</li>
+</ul>
+
+<p>あなたのアプリの情報がウィンドウの、下図のように右手に出てきます:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/6261/apps-panel.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p>
+
+<h3 id="マニフェストエディタ">マニフェストエディタ</h3>
+
+<p>Firefox 28 以降、アプリパネルの中にマニフェストエディタが含まれています:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/6613/apps-panel-fx-28.png" style="display: block; margin: 0px auto; width: 600px;"></p>
+
+<h3 id="デバッグ">デバッグ</h3>
+
+<p><em>"更新"</em>をクリックすることで端末上にアプリを更新(インストール)します。<em>"デバッグ"</em>をクリックすることでアプリとツールボックスを接続し、コードを直接デバッグできます:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/6265/debug.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p>
+
+<div class="note">
+<p>ツールボックスで遊び回るのを楽しめるでしょう — DOMやCSSを変更したり。リアルタイムで端末に更新されるのがわかるでしょう。更新はインストール済みのアプリのコードに保存されます; 次回端末でアプリを開いた時にわかるでしょう。</p>
+</div>
+
+<p>Firefox 28より前では、ツールは個別のウィンドウで開始されます。 Firefox 28以降では、ツールはアプリマネージャ自体の中の、アプリタブや端末タブと同時の個別のタブで開始されます。タブには見つけやすくなるようアプリアイコンが付いています:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/6615/toolbox-fx-28.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p>
+
+<h3 id="各種エラー">各種エラー</h3>
+
+<p>アプリの追加に失敗する場合 — 例えばURLが正しくない場合や、パッケージ型アプリを選択した場合 — このアプリのページは追加されますが、これにはエラー情報が混ざっています。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/6259/apps-error.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p>
+
+<p>このビューでアプリを消すこともできます。ウィンドウ左手のアプリ名/説明部分にマウスを移動し、それぞれに現れる"X"ボタンを押すと消えます。ただし端末からアプリを消すわけではありません。そうするには端末自体を操作して、手動で消去する必要があります。</p>
+
+<h2 id="端末のパネル"><a name="Device_panel">端末のパネル</a></h2>
+
+<p><em>端末</em>のタブでは接続した端末の情報を表示します。 <em>"</em>インストールされたアプリ<em>"</em> ウィンドウから、  端末上のアプリを開始したりデバッグしたりできます。</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/6267/device-tab.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p>
+
+<div class="note">
+<p><strong>記:</strong> 認定アプリ はデフォルトで列挙されません。<a href="#Debugging_Certified_Apps">認定アプリをデバッグするを見よ</a>。</p>
+</div>
+
+<p>"許可設定"ウィンドウでは、現在の端末上で色々な <a href="/ja/docs/WebAPI">Web API </a>に求められる権限を表示します:</p>
+
+<p><img alt="" src="https://mdn.mozillademos.org/files/6269/permissions.png" style="display: block; height: 375px; margin: 0px auto; width: 600px;"></p>
+
+<p>ついに、"スクリーンショット"ボタンをクリックすることで、今の端末のディスプレイのスクリーンショットを取れるようになりました。スクリーンショットはFirefoxの新しいタブに出てきて、保存も破棄もお好きな様にできます。</p>
+
+<h2 id="認定アプリをデバッグする"><a name="Debugging_Certified_Apps">認定アプリをデバッグする</a></h2>
+
+<p>現状、開発ビルドであるFirefox OS 1.2以降を実行しているデバイスだけが認定アプリをデバックできます。開発ビルドがある場合、<code>プロファイルでdevtools.debugger.forbid-certified-appsの設定をfalseに変更することで認定アプリをデバッグできるようになります。そうするには、以下のステップに従って下さい:</code></p>
+
+<h3 id="実機を使用する">実機を使用する</h3>
+
+<ol>
+ <li>
+ <p>お使いのコンピューターで、ターミナル/コンソールから下記コマンドを打ち込んで、端末のファイルシステムのシェルに入ります:</p>
+
+ <pre class="brush: bash">adb shell</pre>
+
+ <p>プロンプトが<code>root@android</code>に変わります。</p>
+ </li>
+ <li>
+ <p>次に下記コマンドでB2Gを停止します:</p>
+
+ <pre class="brush: bash">stop b2g</pre>
+ </li>
+ <li>
+ <p>下記ディレクトリに移動します:</p>
+
+ <pre>cd /data/b2g/mozilla/*.default/</pre>
+ </li>
+ <li>
+ <p>ここで、以下のようにprefs.jsファイルを更新します:</p>
+
+ <pre class="brush: js">echo 'user_pref("devtools.debugger.forbid-certified-apps", false);' &gt;&gt; prefs.js</pre>
+ </li>
+ <li>
+ <p>ファイルの編集・保存が終わったら、下記コマンドでB2Gを再開します:</p>
+
+ <pre class="brush: bash">start b2g</pre>
+ </li>
+ <li>
+ <p>androidファイルシステムを<code>exitコマンドで終了します</code>; つまり普段のターミナルのプロンプトに戻ります。</p>
+ </li>
+ <li>
+ <p>次に、アプリマネージャに再接続すると、デバッグ用の認定アプリが見えるようになるでしょう。</p>
+ </li>
+</ol>
+
+<h3 id="B2Gデスクトップクライアントを使用する">B2Gデスクトップクライアントを使用する</h3>
+
+<p class="brush: js">B2Gデスクトップクライアントでは、B2Gデスクトップクライアントのルートフォルダにある<code>greprefs.js</code>のプロファイルに、設定が予め定義されています。B2Gデスクトップクライアントを停止して、<code>devtools.debugger.forbid-certified-apps</code> の設定を <code>false</code> になるよう編集します。次にB2Gデスクトップクライアントを再起動してアプリマネージャと接続します。全てのアプリを再起動見る事ができるでしょう。</p>
+
+<div class="note">
+<p><strong>記:</strong> この設定をGaiaのビルドに追加したい場合、"<code>make DEVICE_DEBUG=1 reset-gaia</code>"と実行します。</p>
+</div>
+
+<h2 id="トラブルシューティング"><a name="Troubleshooting">トラブルシューティング</a></h2>
+
+<p id="My_device_is_not_recognized">デバイスが認識されない時は:</p>
+
+<ul>
+ <li>Firefox OS機に関連付いたボタンをクリックしても何もならない場合、Android機とFirefox OS機を、同時にコンピューターに接続していないかを確認して下さい。</li>
+ <li><a href="#Configuring_device">端末とシステムの設定</a> の節を一通り読んで、全てのステップに従っていることを確認してください</li>
+ <li>端末は少なくともFirefox OS 1.2以上ですか?</li>
+ <li>全てのアプリが見えない? <a href="#Debugging_Certified_Apps">Certified Apps debugging</a>を有効にする必要があるのでは?</li>
+ <li>電話機の設定で"Remote Debugging"を有効にしていますか?</li>
+ <li><a href="#Adb_Helper_Add-on">ADB Helper add-on</a>を使用していない場合:
+ <ul>
+ <li><code>adb forward</code> コマンドの実行に成功していますか?</li>
+ </ul>
+ </li>
+ <li><a href="#Adb_Helper_Add-on">ADB Helper add-on</a>を使用していて、一番下のツールバーに端末が列挙されない場合:
+ <ul>
+ <li>Linuxを使用していれば <a href="http://developer.android.com/tools/device.html#setting-up">udevの設定が正しく設定されているか確認しましょう</a></li>
+ <li>Windowsを使用していれば<a href="http://developer.android.com/tools/device.html#setting-up"> 適切なドライバーをインストール済みか確認しましょう</a></li>
+ <li>解析情報を集めるため、冗長ログ出力(verbose logging)を有効にします:
+ <ul>
+ <li>about:config にて"<span class="message"><span class="content"><span class="email">extensions.adbhelper@mozilla.org.sdk</span>.console.logLevel"</span></span> の設定値を文字列 "all" に変更します</li>
+ <li>アドオンマネージャからADB Helperアドオンを無効化、再有効化するか、Firefoxを再起動します</li>
+ <li>アプリマネージャを再度開きます</li>
+ <li><a href="https://developer.mozilla.org/docs/Tools/Browser_Console">Browser Console</a>で、"adbhelper"と書いた追加出力行が見えるはずです。</li>
+ <li>見えるけど意味がわからない場合、<a href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">IRCの #devtools 部屋</a> に立ち寄るか、 ログ出力を <a href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&amp;assigned_to=nobody%40mozilla.org&amp;attach_text=&amp;blocked=&amp;bug_file_loc=http%3A%2F%2F&amp;bug_ignored=0&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_blocking_b2g=---&amp;cf_crash_signature=&amp;cf_status_b2g18=---&amp;cf_status_b2g_1_1_hd=---&amp;cf_status_b2g_1_2=---&amp;cf_status_firefox24=---&amp;cf_status_firefox25=---&amp;cf_status_firefox26=---&amp;cf_status_firefox27=---&amp;cf_status_firefox_esr17=---&amp;cf_status_firefox_esr24=---&amp;cf_tracking_b2g18=---&amp;cf_tracking_firefox24=---&amp;cf_tracking_firefox25=---&amp;cf_tracking_firefox26=---&amp;cf_tracking_firefox27=---&amp;cf_tracking_firefox_esr17=---&amp;cf_tracking_firefox_esr24=---&amp;cf_tracking_firefox_relnote=---&amp;cf_tracking_relnote_b2g=---&amp;comment=&amp;component=Developer%20Tools%3A%20App%20Manager&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;defined_groups=1&amp;dependson=&amp;description=&amp;flag_type-203=X&amp;flag_type-37=X&amp;flag_type-41=X&amp;flag_type-5=X&amp;flag_type-607=X&amp;flag_type-720=X&amp;flag_type-721=X&amp;flag_type-737=X&amp;flag_type-748=X&amp;flag_type-781=X&amp;flag_type-787=X&amp;flag_type-791=X&amp;flag_type-799=X&amp;flag_type-800=X&amp;flag_type-802=X&amp;flag_type-803=X&amp;flag_type-809=X&amp;flag_type-825=X&amp;form_name=enter_bug&amp;keywords=&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=All&amp;priority=--&amp;product=Firefox&amp;qa_contact=developer.tools%40firefox.bugs&amp;rep_platform=x86&amp;requestee_type-203=&amp;requestee_type-41=&amp;requestee_type-5=&amp;requestee_type-607=&amp;requestee_type-748=&amp;requestee_type-781=&amp;requestee_type-787=&amp;requestee_type-791=&amp;requestee_type-800=&amp;short_desc=&amp;status_whiteboard=&amp;target_milestone=---&amp;version=Trunk">バグに記録してください</a></li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+</ul>
+
+<ul>
+ <li>Linuxで端末名の代わりに <strong>"???????"</strong> と出る時、パーミッションの問題があります。<a href="http://developer.android.com/tools/device.html#setting-up">udevルールが正しくセットアップされているか確認してください。</a></li>
+ <li>電話のスクリーンはロック解除されていますか?</li>
+ <li>電話機が接続されてロック解除されているにもかかわらず "adb devices"コマンドの結果が帰ってこない場合、<a href="http://blog.fh-kaernten.at/wehr/?p=1182">adb_usb.iniを編集する</a>.必要があるかもしれません。</li>
+ <li>お使いのコンピュータと接続した電話機でのみ試行して、それ以外では使わないでください。"adb devices" コマンドが複数のエントリー表示する場合、トラブルの元となり、取り除く必要のある2つめの端末があるかもしれません (BlueStacksのようなエミュレータ端末を含みます、これは手動停止する必要のある場合があります)。</li>
+</ul>
+
+<p>端末がアプリマネージャと接続できなかったり、シミュレータが起動しない場合、<a href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">教えてください</a>。あるいは<a href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&amp;assigned_to=nobody%40mozilla.org&amp;attach_text=&amp;blocked=&amp;bug_file_loc=http%3A%2F%2F&amp;bug_ignored=0&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_blocking_b2g=---&amp;cf_crash_signature=&amp;cf_status_b2g18=---&amp;cf_status_b2g_1_1_hd=---&amp;cf_status_b2g_1_2=---&amp;cf_status_firefox24=---&amp;cf_status_firefox25=---&amp;cf_status_firefox26=---&amp;cf_status_firefox27=---&amp;cf_status_firefox_esr17=---&amp;cf_status_firefox_esr24=---&amp;cf_tracking_b2g18=---&amp;cf_tracking_firefox24=---&amp;cf_tracking_firefox25=---&amp;cf_tracking_firefox26=---&amp;cf_tracking_firefox27=---&amp;cf_tracking_firefox_esr17=---&amp;cf_tracking_firefox_esr24=---&amp;cf_tracking_firefox_relnote=---&amp;cf_tracking_relnote_b2g=---&amp;comment=&amp;component=Developer%20Tools%3A%20App%20Manager&amp;contenttypeentry=&amp;contenttypemethod=autodetect&amp;contenttypeselection=text%2Fplain&amp;data=&amp;defined_groups=1&amp;dependson=&amp;description=&amp;flag_type-203=X&amp;flag_type-37=X&amp;flag_type-41=X&amp;flag_type-5=X&amp;flag_type-607=X&amp;flag_type-720=X&amp;flag_type-721=X&amp;flag_type-737=X&amp;flag_type-748=X&amp;flag_type-781=X&amp;flag_type-787=X&amp;flag_type-791=X&amp;flag_type-799=X&amp;flag_type-800=X&amp;flag_type-802=X&amp;flag_type-803=X&amp;flag_type-809=X&amp;flag_type-825=X&amp;form_name=enter_bug&amp;keywords=&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=All&amp;priority=--&amp;product=Firefox&amp;qa_contact=developer.tools%40firefox.bugs&amp;rep_platform=x86&amp;requestee_type-203=&amp;requestee_type-41=&amp;requestee_type-5=&amp;requestee_type-607=&amp;requestee_type-748=&amp;requestee_type-781=&amp;requestee_type-787=&amp;requestee_type-791=&amp;requestee_type-800=&amp;short_desc=&amp;status_whiteboard=&amp;target_milestone=---&amp;version=Trunk">バグを記録してください。</a></p>
diff --git a/files/ja/archive/b2g_os/using_the_b2g_desktop_client/index.html b/files/ja/archive/b2g_os/using_the_b2g_desktop_client/index.html
new file mode 100644
index 0000000000..32c5292849
--- /dev/null
+++ b/files/ja/archive/b2g_os/using_the_b2g_desktop_client/index.html
@@ -0,0 +1,314 @@
+---
+title: B2G デスクトップクライアントを使用する
+slug: Archive/B2G_OS/Using_the_B2G_desktop_client
+tags:
+ - B2G OS
+ - Device
+ - Firefox OS
+ - Gaia
+ - Mobile
+ - simulator
+translation_of: Archive/B2G_OS/Building_the_B2G_OS_simulator
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p>B2G OS シミュレーターを使用すると、実際の端末に似た Gecko ベースの環境で Gaia やウェブアプリを実行することができます。端末のハードウェアをエミュレートしないので、端末 API のテストをするには不適切ですし、実際のハードウェア上でのテストの代替にはなりません。しかし例えば <a href="https://developer.mozilla.org/ja/docs/WebAPI/Contacts">連絡先</a> と <a href="https://developer.mozilla.org/en-US/docs/WebAPI/Settings">設定</a> API といったFirefox で利用できない API を持っています。よって、アプリケーション開発の間や Gaia ユーザインターフェイス自体を動かしている間は有益でしょう。この記事では Firefox OS デスクトップクライアントのダウンロード、もしくはビルド、同様に使用方法を取り扱います。</p>
+</div>
+
+<div class="note">
+<p><strong>記:</strong> Firefox OS デスクトップクライアントを使うのに最も簡単な方法は <a href="https://developer.mozilla.org/docs/Tools/WebIDE">WebIDE</a> から <a href="https://developer.mozilla.org/docs/Tools/Firefox_OS_Simulator">Firefox OS Simulator add-on </a>を使う事です。 デスクトップクライアントをビルドする必要はありません。</p>
+</div>
+
+<h2 id="Download_a_nightly_build" name="Download_a_nightly_build">ナイトリービルドをダウンロードする</h2>
+
+<p><a href="http://nightly.mozilla.org" title="http://nightly.mozilla.org">Firefox ナイトリー</a> のように、B2G OS シミュレーターのデスクトップクライアント ( b2g- で識別されます) は最新のソースコードから毎日自動的にビルドされます。最新のビルドは <a href="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/" title="http://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central/"> MozillaのFTP サーバから利用可能</a>です。必ずあなたの OS 向けの最新バージョンのアーカイブを選択してください。これで自分でビルドしなくてすむようになりますし、更にGaia のダウンロードもする必要がなくなります。</p>
+
+<p>アプリケーションは、必ず書き込み可能な場所にインストールしてください。アプリケーションはインクルードされた Gaia プロファイルを更新できる必要があります。</p>
+
+<p>自分自身でビルドしたい場合以外は、スキップして<a href="https://developer.mozilla.org/ja/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_desktop_client$edit#Running_the_simulator" title="#Running_the_simulator">シミュレーターを実行する</a>に進みましょう。それはコードベースに変更を加えてテストしたい場合に必要です。</p>
+
+<h2 id="Building_the_desktop_client" name="Building_the_desktop_client">シミュレーターをビルドする</h2>
+
+<p>初めにやらなければいけないことは、<a href="/ja/docs/Developer_Guide/Build_Instructions#.E3.81.AF.E3.81.98.E3.82.81.E3.81.AB" title="Developer_Guide/Build_Instructions#Build_prerequisites">標準 Mozilla ビルド環境</a>をセットアップすることです。これを一旦行えば、必要なコードをプルダウンして、Firefox OS デスクトップクライアントをビルドするように、構成を行えるようになります。</p>
+
+<h3 id="Downloading_the_code_for_the_first_time" name="Downloading_the_code_for_the_first_time">初回用コードをダウンロードする</h3>
+
+<p>ソースコードを置きたいディレクトリに行き、Gecko が全て入っている <code>mozilla-central</code> リポジトリを複製しましょう :</p>
+
+<pre class="brush: bash language-html">hg clone http://hg.mozilla.org/mozilla-central</pre>
+
+<p><span style="line-height: 21px;">もしくは、Githubから同じコードをダウンロードできます:</span></p>
+
+<pre class="brush: bash language-html">git clone https://github.com/mozilla/gecko-dev</pre>
+
+<h3 id="Updating_the_code" name="Updating_the_code">コードを更新する</h3>
+
+<p>後で追加でビルドする場合、確実に最新版のコードで make したいと思うでしょう。これが最新の変更をプルする方法です :</p>
+
+<pre>cd mozilla-central
+hg pull -u
+</pre>
+
+<p>または、</p>
+
+<pre class="brush: bash language-html">cd gecko-dev
+git pull</pre>
+
+<h3 id="Create_a_mozconfig" name="Create_a_mozconfig"><code>mozconfig</code> を作成する</h3>
+
+<p>次に、Firefox の代わりに Boot to Gecko クライアントをビルドするビルドシステムを構成するために、<code>mozilla-central</code> ディレクトリに <code>mozconfig</code> ファイルを作成する必要があります。このファイルは下記を含みます:</p>
+
+<pre>. "$topsrcdir/b2g/config/mozconfigs/common"
+
+mk_add_options MOZ_OBJDIR=../build
+# この行は gecko-dev または mozilla-central を使用する場合にはコメントアウトする必要があります
+mk_add_options MOZ_MAKE_FLAGS="-j9 -s"
+
+ac_add_options --enable-application=b2g
+ac_add_options --disable-libjpeg-turbo
+
+# このオプションは Gaia のテストを実行可能にしたい場合に必要になります
+ac_add_options --enable-tests
+
+# mozTelephony/mozSms インタフェースを有効にする
+# 転送したい開発スマートフォンを実際に所有している場合のみ
+# この行を有効にしてください。起動時にクラッシュしたら、
+# この行がコメントになっているか確認してください
+#ac_add_options --enable-b2g-ril
+</pre>
+
+<p>B2G デスクトップクライアントで <a href="https://developer.mozilla.org/ja/docs/Mozilla/Firefox_OS/Platform/Automated_testing/Mochitests">Mochitests</a> を実行したい場合(<code>mochitest-b2g-desktop</code> か <code>mochitest-plain</code> のいずれか) または <a href="https://developer.mozilla.org/ja/Firefox_OS/Platform/Automated_testing/gaia-ui-tests/Gaia_UI_Tests_Run_Tests">Gaia ユニットテスト</a>を実行したい場合、 <code>ENABLE_MARIONETTE=1</code> の行をこのファイルに含める必要もあります。</p>
+
+<h3 id="ビルドする">ビルドする</h3>
+
+<p>さて、デスクトップクライアントをビルドする準備ができましたので、以下のコマンドを <code>mozilla-central</code> ディレクトリの中で実行してください :</p>
+
+<pre>./mach build
+</pre>
+
+<p>ビルドクライアントは <code>objdir/dist/bin</code> ディレクトリ(<code>mozconfig</code> ファイルの <code>MOZ_OBJDIR</code> で指定した値に基づきます)の中に配置されます。</p>
+
+<div class="note">
+<p><strong>記:</strong> 問題がある場合、まず <a href="https://developer.mozilla.org/ja/docs/Developer_Guide/Build_Instructions#Build_prerequisites">ここ</a>で依存性を確認して下さい。</p>
+</div>
+
+<h2 id="Downloading_Gaia" name="Downloading_Gaia">Gaia をダウンロードする</h2>
+
+<p>デフォルトではデスクトップクライアントは空のスクリーンを表示します。というのはシステムアプリとしてどのウェブアプリを最初に読み込むのか知らないからです。システムアプリとデフォルトアプリの集合は Gaia と呼ばれる Firefox OS に搭載されていて、ダウンロードが必要です。</p>
+
+<p>Gaia を初めてダウンロードするには、GitHub にあるソースコードリポジトリを複製しましょう :</p>
+
+<pre>git clone https://github.com/mozilla-b2g/gaia
+cd gaia</pre>
+
+<p>既に存在する Gaia のクローンを更新するには、GitHub から最新の変更をプルできます :</p>
+
+<pre>cd gaia
+git pull
+</pre>
+
+<h2 id="custom-settings.json_を作成する">custom-settings.json を作成する</h2>
+
+<p>何をしているのかを知っていて、色々な調整オプションをセットしたい場合、<code>gaia/build/config/custom-settings.json</code> ファイルを作ってそこに追加できます、例えば:</p>
+
+<pre class="language-html"><code class="language-html">{
+ "lockscreen.enabled": false,
+ "lockscreen.locked": false,
+ "devtools.debugger.remote-enabled": true
+}</code></pre>
+
+<p>この例はロック画面をバイパスする便利な例で、そうしないとデスクトップではマウスやトラックパッドを使ってロック解除できないためバイパス不可能です。</p>
+
+<h3 id="Generating_a_profile" name="Generating_a_profile">プロファイルを生成する</h3>
+
+<p>次に、デスクトップクライアント用に Gaia のアプリをセットアップする必要があります。これはパッケージングされた Gaia アプリを端末にインストールするのと同じやり方で同梱し、また特権のあるシステムアプリ用のパーミッションも設定します。我々はこれをプロファイルを生成することで行います。以下のコマンドは(<code>gaia</code> ディレクトリでこれを実行してください) その処理を行います:</p>
+
+<pre>make DESKTOP_SHIMS=1 NOFTU=1 DEBUG=1
+</pre>
+
+<p>これで <code>gaia</code> ディレクトリの下に <code>profile-debug</code> ディレクトリが作成されたはずです。新しいプロファイルにはカスタマイズされた拡張機能と、B2G が正しく実行されるのに必要となるその他の構成が含まれています。</p>
+
+<h2 id="Running_the_desktop_client" name="Running_the_desktop_client">デスクトップクライアントを実行する</h2>
+
+<p>一旦クライアントをビルドして(もしくはナイトリーデスクトップアプリケーションをダウンロード、インストール)Gaia をダウンロードすれば、Firefox OS デスクトップクライアントを起動する準備が整います。</p>
+
+<h3 id="Running_on_Linux" name="Running_on_Linux">Linux で実行する</h3>
+
+<p>組み込まれた Gaia プロファイルを使用して、Linux でデスクトップクライアントを実行するには、単に <code>b2g</code> 実行可能ファイルを実行するだけです。そのバイナリは前にダウンロードしたアーカイブの中、もしくは、クライアントを自分でビルドした場合は <code>objdir/dist/bin</code> ディレクトリにあります。</p>
+
+<pre>b2g -profile gaia/profile-debug</pre>
+
+<p>あなたはうっとうしいレンダリングの問題で悩まされるかもしれません。それを回避するには、<code>gaia/profile/prefs.js</code> ファイルに以下の行を追加してください:</p>
+
+<pre>user_pref("layers.acceleration.disabled", true);
+</pre>
+
+<h3 id="Running_on_Mac" name="Running_on_Mac">Mac で実行する</h3>
+
+<p>ナイトリービルドをダウンロードした場合は、いつものように Finder から簡単に起動することができます。コンソールの出力は、Mac に含まれている標準コンソールユーティリティプログラムを実行すれば見ることができます。</p>
+
+<p>もし、異なる Gaia プロファイルを指定したい場合 (例えば上記と別にダウンロードしたGaiaプロファイル) は、<code>b2g</code> ラッパープログラムを使用しないで、<code>b2g</code> バイナリを実行する必要があります。<code>b2g</code> バイナリの場所と、プロファイルディレクトリの指定の際に絶対パスが必要な為に、コマンドラインは少し複雑です :</p>
+
+<pre>.../B2G.app/Contents/MacOS/b2g -profile /full/path/to/gaia/profile-debug
+</pre>
+
+<h3 id="Running_on_Windows" name="Running_on_Windows">Windows で実行する</h3>
+
+<p>Windows でナイトリービルドを実行するには、<code>b2g.exe</code> を起動するだけです。その代わりに <code>b2g-bin.exe</code> 実行可能ファイルを実行すると、実行内容のカスタマイズが可能です。これはバンドルされた Gaia を自動的に使用するラッパープログラムをバイパスします。</p>
+
+<h2 id="Command_line_options" name="Command_line_options">コマンドラインオプション</h2>
+
+<p>デスクトップクライアントを使っている時のランタイム体験を調整するのに、使用可能なコマンドラインオプションが多数存在します。<code>-help</code> オプションを使用することでオプションリストが取得できます。このセクションでは特に興味深いオプションのいくつかを取り上げます。</p>
+
+<h3 id="option-screen" name="option-screen">画面サイズを指定する</h3>
+
+<p><code>--screen</code> オプションを使用することでシミュレートしたい端末の画面サイズを指定できます :</p>
+
+<pre>b2g --screen=<em>&lt;width&gt;</em>x<em>&lt;height&gt;</em>[@<em>&lt;dpi&gt;</em>]</pre>
+
+<p><em>&lt;width&gt;</em>、<em>&lt;height&gt;</em>、<em>&lt;dpi&gt;</em> は、ほとんど見た目通りのパラメータです : 端末の画面の幅と高さはピクセルで、DPI で端末の解像度を指定します。例えば :</p>
+
+<pre>b2g --screen=320x480
+b2g --screen=320x480@160
+</pre>
+
+<p>オプションで、シミュレートしたい画面サイズと解像度を特定の端末名で指定可能です :</p>
+
+<ul>
+ <li><code>iphone</code></li>
+ <li><code>ipad</code></li>
+ <li><code>nexus_s</code></li>
+ <li><code>galaxy_nexus</code></li>
+ <li><code>galaxy_tab</code></li>
+ <li><code>wildfire</code></li>
+ <li><code>tattoo</code></li>
+ <li><code>salsa</code></li>
+ <li><code>chacha</code></li>
+</ul>
+
+<p><a href="https://github.com/mozilla/gecko-dev/blob/master/b2g/chrome/content/screen.js">screen.js</a>の中でこれらプリセット端末が定義されています。</p>
+
+<p>別の画面を選択するには、たぶん下記のようにプロファイルパスを指定する必要があります:</p>
+
+<div class="geckoVersionNote">
+<p>./b2g-bin --profile ./gaia/profile/ --screen=galaxy_tab</p>
+</div>
+
+<h3 id="option-console" name="option-console">JavaScript コンソールを開く</h3>
+
+<p>コマンドラインからの起動時に <code>-jsconsole</code> フラグを付けて起動すると、B2G デスクトップクライアントで JavaScript コンソールを開くことができます。ビルドが終わったら、実行するだけです :</p>
+
+<pre>.../b2g -jsconsole -profile <em>/path/to/your/profile</em></pre>
+
+<p>Mac にナイトリービルドをインストールした場合は、こんな感じに実行します :</p>
+
+<pre>/Applications/B2G.app/Contents/MacOS/b2g -jsconsole -profile <em>/path/to/your/profile</em></pre>
+
+<p id="option-runapp"><strong>記:</strong> Firefox OSの製品ビルドでは、デフォルトでコンソールログ出力 (例えば<a href="/ja/docs/Web/API/Console/log" title="デバッガの Web コンソールにメッセージを出力します。"><code>console.log()</code></a>) が無効です。有効にするには、 <a href="https://developer.mozilla.org/ja/Firefox_OS/Debugging/Developer_settings">開発者設定</a> を開き、<em>Console Enabled</em> 設定を有効にします。</p>
+
+<h3 id="option-runapp" name="option-runapp">起動時に指定したアプリケーションを起動する</h3>
+
+<p>デスクトップクライアントで b2g が起動する際に自動起動するアプリケーションを指定することも可能です。これはシステムが読み込みを完了した後、すぐに実行されます。これを行うには、<code>--runapp</code> オプションを使用して、実行するアプリケーションの名前をパラメータとして指定するだけです。例えば :</p>
+
+<pre> .../b2g -profile <em>/path/to/your/gaia/</em>profile-debug --runapp email</pre>
+
+<div class="note">
+<p><strong>記</strong>: 起動するアプリを探す前に、指定された名前は正規化が行われ、全て小文字へ変換され、全てのダッシュと全てのスペースは削除されます。正規化された名前はその後、利用可能なアプリのマニフェストのマニフェストから、同様に正規化された名前と比較されます。例えば、電子メールアプリの名前が現在 "E-mail" の場合、この正規化のおかげで <code>--runapp email</code> で動作します。</p>
+</div>
+
+<p>引数無しで、もしくは空の引数で <code>--runapp</code> オプションを指定した場合、シミュレーターは、使い方に関する概要メッセージと一緒に既知のアプリケーションのリストをターミナルに出力します。</p>
+
+<div class="note">
+<p><strong>注意 :</strong> <code>--runapp</code> オプションを使用する際は、副作用としてロック画面が無効になり、再有効化することができません。ロック画面をテストしたいプロファイルでは、このコマンドを使用しないか、設定アプリケーションを使用して手動で<em> Settings &gt; Screen Lock</em> を使って元に戻すことが前提になっています。もしそれが問題であれば、遠慮なくこの振る舞いを変更するパッチをコントリビュートしてください。</p>
+</div>
+
+<h2 id="Usage_tips" name="Usage_tips">使用法のヒント</h2>
+
+<p>このセクションは、B2G デスクトップクライアントを使用する いくつかの役立つヒントを提供します。</p>
+
+<ul>
+ <li>ESC キーは "back" ボタンと同じ機能を実行します。</li>
+ <li>Home キーは "home" ボタンと同じ機能を実行します。Mac では、Home キーは Fn + ← (Fn + 左矢印)で使用できます。</li>
+ <li>End キーは "電源" ボタンと同じ機能を実行します; Macでは、End キーは Fn + → (Fn + 右矢印)で使用できます。</li>
+ <li>Page Up と Page Down キーはそれぞれ"音量アップ" と "音量ダウン" ボタンと同じ機能を実行します;Macでは、Page Up キーは Fn + ↑ (Fn + 上矢印) で、Page Down キーは Fn + ↓ (Fn + 下矢印)で使用できます。</li>
+ <li>Home キーの長押しは "Card View"を開きます; Macでは、 Cmd + Fn + ← (Cmd + Fn + 左矢印) で "Card View"を開きます。</li>
+</ul>
+
+<h2 id="トラブルシューティング_シミュレーター起動時のブランク画面">トラブルシューティング: シミュレーター起動時のブランク画面</h2>
+
+<p><code>b2g -profile gaia/path/to/gaia/profile</code> を使ってb2gを起動した時、"Cannot reach app://system.gaiamobile.org" のエラーと一緒にブランク画面が表示されることがあります。これを修正するためにいくつか確認できることがあります:</p>
+
+<ul>
+ <li>gaiaディレクトリで <code>DEBUG=1 make</code> プロファイルを使ってリビルドする</li>
+ <li>b2g を再実行する</li>
+ <li>これで直らない場合、他のプロセスが 8080ポートをリッスンしていないか調べる。Gaia のデフォルトプロファイルは <code>httpd.js</code> を起動し、これは 8080ポートをリッスンします。デバッグプロファイル実行時に、B2G は localhost:8080 に接続します。ほかのプロセスが 8080ポート上で動いている場合、b2g はgaiaのホーム画面の表示に失敗するでしょう。
+ <ol>
+ <li>これに当てはまるのかを見つけ出すには、<code>httpd.js</code>のログ出力を有効にできます。このプロファイル内での <code>httpd.js</code> は<code>gaia/profile/extensions/httpd/content/httpd.js</code> の場所にいます。編集するのにこのファイルを開きます。</li>
+ <li><code>var DEBUG=false;</code> の行を <code>var DEBUG=true; に変更します。</code></li>
+ <li>ファイルを保存して B2G を再起動します。コンソールでhttpdのログを見る事ができるでしょう。</li>
+ </ol>
+ </li>
+</ul>
+
+<h2 id="Next_steps" name="Next_steps">次のステップへ</h2>
+
+<p>これでBoot to Gecko が動作するシミュレータービルドが手に入りましたので、テストしたり、開発したり、その他のことを実行させたりできるようになります :</p>
+
+<ul>
+ <li><a href="/ja/Firefox_OS/Debugging" title="Mozilla/Boot_to_Gecko/Debugging_on_Boot_to_Gecko">Boot to Gecko でデバッグする</a></li>
+ <li><a href="/ja/Firefox_OS/Platform/Testing" title="Mozilla/Boot_to_Gecko/Testing_Boot_to_Gecko">Boot to Gecko をテストする</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/using_the_b2g_emulators/index.html b/files/ja/archive/b2g_os/using_the_b2g_emulators/index.html
new file mode 100644
index 0000000000..f8e1040e66
--- /dev/null
+++ b/files/ja/archive/b2g_os/using_the_b2g_emulators/index.html
@@ -0,0 +1,182 @@
+---
+title: B2G エミュレータを使用する
+slug: Archive/B2G_OS/Using_the_B2G_emulators
+tags:
+ - Firefox OS
+translation_of: Archive/B2G_OS/Using_the_B2G_emulators
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<div class="summary">
+<p>この記事は、Boot to Gecko エミュレータを使用する際に知っておくべき重要な事項を要約したガイドです。完全なユーザマニュアルではなく、代わりにいくつかの有益な事項を、あなた自身が学ばなくてもいいように、簡単に説明します。</p>
+</div>
+
+<p>このガイドは、既にエミュレータをビルドしていることを前提としています。もしまだなら、<a href="/ja/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko" title="ja/Mozilla/Boot_to_Gecko/Building_and_installing_Boot_to_Gecko">FirefoxOS のビルドとインストール</a>に巻き戻ってください!</p>
+
+<h2 id="B2G_エミュレータについて">B2G エミュレータについて</h2>
+
+<p>B2G エミュレータは 2 種類あります。ひとつは、<code>config.sh</code> を実行する際に "emulator" 用に構成されたビルドによるもので、ARM デバイスエミュレータです。x86 プロセッサをエミュレートしたものよりもずっと遅いのですが、安定しており実際のデバイスが行うような正確な表示です。<code>config.sh</code> を実行する際に "emulator-x86" として構成したものは、x86 デバイスエミュレータとなります。</p>
+
+<div class="note"><strong>Note:</strong> 最近数ヶ月、自動化チームは安定性の問題のため、x86エミュレーターの使用を停止しました。すなわち、 emulator-x86の全てにおいて、うまく動作しない可能性がかなりあります。そうしない理由がない限り、ARMエミュレータを使用してください。</div>
+
+<p>一旦エミュレータを選択、構成して、ビルドしたら、残りの作業はユーザ的観点から同じやり方ですので、このガイドの残りの部分はどちらにも共通です。</p>
+
+<div class="note"><strong>注意 :</strong> Mac OS X では、B2G エミュレータは Core 2 Duo プロセッサ以降、Mac OS X 10.7 "Lion" と互換性のあるシステムが必要です。実際に Lion を稼働させている必要はありませんが、互換性がなければいけません。</div>
+
+<h2 id="エミュレータを起動する">エミュレータを起動する</h2>
+
+<p>B2G エミュレータを起動するには、以下のコマンドを入力してください :</p>
+
+<pre>./run-emulator.sh
+</pre>
+
+<p>これで、エミュレータのスタートアップタスクを全て処理します。では、エミュレー タが起動して、Boot to Gecko が立ち上がるのを根気よく待ってください。2 分程かかるかもしれませんが、我慢してください。</p>
+
+<h2 id="エミュレータが起動しなかった場合">エミュレータが起動しなかった場合</h2>
+
+<p>エミュレータは、よく起動に失敗します。超最先端テクノロジにようこそ!ここに問題を解決するいくつかのヒントがあります。</p>
+
+<h3 id="VM内で試していますか">VM内で試していますか?</h3>
+
+<p>VirtualBox とParallels はグラフィックアクセラレータのサポートに問題の多いことが原因で、エミュレータやOpenGL端末のブート時に失敗を起こします。端末がブート開始し、失敗し、再起動するループに入ったり、起動するがエミュレータ画面に何も表示されなかったりします。不幸にも解決方法はありません (VirtualBox用の<a href="http://www.digitalmihailo.com/setting-up-ubuntu-12-04-virtual-machine-for-firefox-os-build/">回避策</a>はあります) - VMWare Player (振込ウェア), Workstation あるいは Fusionを使う必要があります。VirtualBoxでは - ゲストのアドオンをインストールしない、またはvboxvideoモジュールを無効化します。</p>
+
+<h3 id="adb_サーバが動作しているか確認する">adb サーバが動作しているか確認する</h3>
+
+<p>通常エミュレータが動作しない原因は、エミュレート端末との対話を行う adb サーバが実行されないか、もしくは正しく機能していないことです。この場合、通常はエミュレータを起動したターミナル内に下記のエラーメッセージが見られます。</p>
+
+<pre class="language-html"><code class="language-html">emulator: control console listening on port 5554, ADB on port 5555
+emulator: can't connect to ADB server: Connection refused</code></pre>
+
+<div class="note">
+<p><strong>注意 :</strong> もし、B2G ビルドシステムによってビルドされた <code>adb</code> を使用しているなら(多分そのはずですが)<code> $B2G/out/host/&lt;platform&gt;/bin</code> ディレクトリにあります。Mac では、これが、例えば、<code> $B2G/out/host/darwin-x86/bin</code> にあります。</p>
+</div>
+
+<p><code>adb</code> が実行されているか確認するには、このようにしてください :</p>
+
+<pre>ps aux | grep adb
+</pre>
+
+<p>もし存在したら、多分正しく動作していないので、これを実行して強制停止してください。</p>
+
+<pre>adb kill-server
+</pre>
+
+<p>存在しなかったら、これを実行してください :</p>
+
+<pre>adb start-server
+</pre>
+
+<p>それから、もう一度エミュレータを実行してみてください。もし、それでも動作しなかったら、irc.mozilla.org の <a class="link-irc" href="irc://irc.mozilla.org/b2g" title="irc://irc.mozilla.org/b2g">#b2g</a> を訪れて、助けを求めるべき時です。</p>
+
+<h3 id="構成設定を削除する">構成設定を削除する</h3>
+
+<p>時々、エミュレートされたデバイス上にある無効な構成設定が、不具合の原因になります。これを修正するために、以下のやり方で IndexedDB データベースを削除することができます :</p>
+
+<ol>
+ <li><a href="/ja/docs/Mozilla/Boot_to_Gecko/Using_the_B2G_emulators#adb_.E3.82.B5.E3.83.BC.E3.83.90.E3.81.8C.E5.8B.95.E4.BD.9C.E3.81.97.E3.81.A6.E3.81.84.E3.82.8B.E3.81.8B.E7.A2.BA.E8.AA.8D.E3.81.99.E3.82.8B">adb サーバが動作しているか確認する</a> を参照して、adb が動作していることを確認します</li>
+ <li>エミュレータを起動します</li>
+ <li>ホストコンピュータのターミナルから、エミュレータのビルドディレクトリのルートで、次のように入力します : <code>out/host/&lt;platform&gt;/bin/adb -e shell</code> ; Mac の場合は、<code>out/host/darwin-x86/bin/adb -e shell</code> です</li>
+ <li>これで adb shell にいるはずですので、エミュレートされたデバイス上でシェルコマンドを実行可能になります。デバイス上で B2G を止めましょう : <code>stop b2g</code></li>
+ <li>IndexedDB データベースを削除します : <code>rm -rf /data/local/indexedDB</code></li>
+ <li>エミュレートされたデバイス上の B2G を再起動します : <code>start b2g</code></li>
+</ol>
+
+<p>この点で、できれば、あなたが Gaia インターフェースまで戻って解決するといいのですが。</p>
+
+<h2 id="エミュレータが開始してもmozilla_technologyのスプラッシュスクリーンが出る前後で画面が真っ黒な場合">エミュレータが開始しても"mozilla technology"のスプラッシュスクリーンが出る前後で画面が真っ黒な場合</h2>
+
+<p>これが起こる場合、エミュレータを動作させている機械のドライバのバグの可能性があります。Linuxのオープンソースの<span class="st"><em> nouveau </em></span>ドライバーで観測されます。最も簡単な方法は、機械のドライバーを変更することです。<span class="st"><em> nouveau </em>ドライバーの場合は代わりにプロプライエタリな(Ubuntuの<span class="st">"追加の"</span>) ドライバーをインストールします。</span>オンボードのIntelグラフィックのチップセットの場合、Linuxデフォルトのオープンソースドライバーは、エミュレータの'eglMakeCurrent failed'エラーを起こす事があり、どうやらOpenGLバージョン 2.0未満がGPUエミュレーション用に必要なようです。解決法はGPUをアクティベート解除することで、 <code>run-emulator.sh</code> スクリプトを編集するとできます (これは遅くなります).</p>
+
+<h2 id="エミュレータを構成する">エミュレータを構成する</h2>
+
+<p>エミュレートしたいデバイスにより近づけるために、エミュレータを調整する複数の変更可能なオプションがあります。このセクションでは、そのやり方に関するいくつかの基本的な情報を提供します。エミュレータの設定は <code>run-emulator.sh</code> スクリプトを(理想的にはコピーして)編集することで調整できます。ここに記述されているパラメータは、非常に有用なパラメータの極一部にすぎません。その他のパラメータの詳細情報は <a class="external" href="http://www.qemu.org/" title="http://www.qemu.org/">qemu のサイトで調べて</a>みてください。</p>
+
+<div class="note"><strong>ヒント :</strong> シミュレートしたいデバイス毎に <code>run-emulator.sh</code> のコピーを 1 つ作成してください。異なる構成で起動するのが楽になります。</div>
+
+<h3 id="スキンを変更する">スキンを変更する</h3>
+
+<p>デフォルトでは、エミュレータは HVGA モード、つまり half-VGA 、320×480 ピクセルで起動します。この値は、エミュレータが起動する際に与えられる <code>-skin</code> パラメータで指定されます。<code>run-emulator.sh</code> スクリプトを(理想的にはコピーして)編集することで、異なるディスプレイモードに切り替えることができます。提供されているスキンは以下の通りです :</p>
+
+<ul>
+ <li>HVGA (320x480)</li>
+ <li>QVGA (240x320)</li>
+ <li>WQVGA (240x400)</li>
+ <li>WQVGA432 (240x432)</li>
+ <li>WSVGA (1024x600)</li>
+ <li>WVGA800 (480x800)</li>
+ <li>WVGA854 (480x854)</li>
+ <li>WXGA720 (1280x720)</li>
+ <li>WXGA800 (1280x800)</li>
+</ul>
+
+<p>スキンは、<code>B2G/development/tools/emulator/skins</code> ディレクトリにあります。特筆すべきなのは、スキン用の書式がかなりシンプルになっていることです。内容を確認してみると、様々なユーザインターフェースオブジェクト用の PNG ファイルや、インターフェースと画面領域のレイアウトを説明する <code>layout</code> という名前のテキストファイルがたくさん入っている、シンプルなフォルダであることがわかるでしょう。カスタムスキンが必要なら、作成するのは非常に簡単です。</p>
+
+<h3 id="メモリサイズを変更する">メモリサイズを変更する</h3>
+
+<p>構成変更したい、もしくは変更する必要のある設定の、もう一つのオプションは、デバイスメモリサイズです。デフォルトでは 512MB ですが、エミュレートしているデバイスのメモリがもっと多いか少ない場合、取り組みたい基本デバイスでアプリを確実に動作させるには、設定が一致するよう調整するのは重要でしょう。これを行うには <code>-memory</code> パラメータの値を、必要とするサイズに MB 単位で変更してください。デフォルトの 512MB 以外では、256MB や 1024MB が、一番試してみたくなりそうな値です。</p>
+
+<p>デバイス用にエミュレートされた記憶容量を変更するには(これは、携帯電話のフラ ッシュストレージや、コンピュータのハードディスクのような、ローカルデータ用記憶域 のことです)<code>-partition-size</code> パラメータを変更してください。デフォルトは 512MB ですが、テストを要するデバイスの種類をシミュレートするために、必要となるどのようなサイズでも MB 単位で指定可能です。</p>
+
+<h3 id="ネットワーク接続">ネットワーク接続</h3>
+
+<p>何らかの理由でエミュレータがインターネットに接続できなかった場合、以下のコマ ンドをコマンドラインから実行してください :</p>
+
+<pre>adb shell setprop net.dns1 10.0.2.3</pre>
+
+<p>emulator-jb または emulator-kk を実行している場合、DNSサーバの設定コマンドは異なります。下記のコマンドを実行します:</p>
+
+<pre>adb shell ndc resolver setdefaultif eth0
+adb shell ndc resolver setifdns eth0 10.0.0.0 10.0.2.3</pre>
diff --git a/files/ja/archive/b2g_os/ux/style_guide/index.html b/files/ja/archive/b2g_os/ux/style_guide/index.html
new file mode 100644
index 0000000000..20ccd5598a
--- /dev/null
+++ b/files/ja/archive/b2g_os/ux/style_guide/index.html
@@ -0,0 +1,209 @@
+---
+title: Firefox OS style guide
+slug: Archive/B2G_OS/UX/Style_guide
+tags:
+ - Apps
+ - Design
+ - Firefox OS
+ - Firefox OS UX
+ - UX
+ - Writing
+ - copy
+translation_of: Archive/B2G_OS/Firefox_OS_apps/Copy_styleguide
+---
+<div class="summary">
+<p>このガイドは、Firefox OSアプリのコピーを書くために守るルールを概説しますが、アプリのインターフェイス用に良いコピーを書くための一般的なガイドとしても使えます。</p>
+</div>
+
+<article class="approved text-content">
+<div class="boxed translate-rendered">
+<p><span style="font-family: arial; font-size: 13px;">スタイルガイドには英語での内容も含まれており、そのまま翻訳しています。関連するものを選んで適用してください。</span></p>
+
+<h2 id="一般的な用語選択">一般的な用語選択</h2>
+
+<ul>
+ <li><strong>タップ</strong>: 「タップ」の用語を使います。誤り: 「選択」, 「クリック」, 「押下」, など。</li>
+ <li><strong>スペース</strong>: 「ストレージ」ではなく「スペース」を使用してください。</li>
+ <li><strong>電話機</strong>: 電話機専用のことを述べる時に使います。</li>
+ <li><strong>タブレット</strong>: タブレット専用のことを述べる時に使います。</li>
+ <li><strong>モバイル端末</strong>: 電話機とタブレットの両方りのことを述べる時に使います。特定端末の触れるかもしれない時には"モバイル端末"を使わないでください。</li>
+ <li><strong>アプリ</strong>: いつでも アプリケーションではなく、"アプリ" を使います。名詞の一部分でないときには大文字を使わないでください。</li>
+ <li><strong>Please と Thank you</strong>: 英語を書く時にはこれらの言葉は使わないでください。システム通知では、ユーザを邪魔する不必要な長さになることがあります。しかしながら、他の言語で"please" と “thank you” に対応する、ローカル文化に依存するローカル用語の使用は自由です。</li>
+ <li><strong>Firefox Marketplace</strong>: "Firefox Marketplace" が最初に挙がります。 "Marketplace" はそれに続く受け入れ可能なもので、常に大文字化します。また決して Mozilla Marketplace としないでください。</li>
+ <li><strong>フリー</strong>: この用語は国際化が難しいものです。それは英語で "コストのないもの" と "制限のないもの" の両方だからであり、しかしその他の言葉ではとても難しい意味だからです。全体を通して、使うか避けるかをはっきりとしてください。</li>
+ <li><strong>FxOS</strong>: これは Firefox OS の公式な略称ですが、外部のコミュニケーションに使用すべきではありません。</li>
+ <li><strong>サインイン</strong>: 「サインイン」を使用してください。動詞としては、ハイフンなしでスペースで別れた"Sign in"を使います。大文字化するかはコンテキストに依存します。大文字化の節を見てください。形容詞としては Sign-In を使用します。誤り: Login, Log in, Signin</li>
+ <li><strong>Wi-Fi</strong>: Wi-Fi の綴りは「WiFi」や「wifi」や「wifi」ではなく、WとFを大文字にしてハイフンをつけてた「Wi-Fi」を使用してください。</li>
+ <li><strong>email</strong>: 一語で、小文字で、ハイフンなしです。誤り: E-Mail, Email, など 例外: email が固有名詞でアプリ名として使われる時には、E-Mail の綴りを使うことができます。</li>
+</ul>
+
+<h2 id="フォーマット">フォーマット</h2>
+
+<ul>
+ <li><strong>http://</strong>: は通信のURLの前につけるべきではありません。</li>
+ <li><strong>Web</strong>: 複合語の一部でなければ「Web」の 1 文字目は大文字にしてください。</li>
+ <li><strong>頭字語</strong>: ピリオドなしの大文字を使用します。例外としてブランド名の一部であるとか、その結果別の用語の綴りになる場合を除きます。</li>
+ <li><strong>Internet</strong>: 常に大文字化します。</li>
+ <li><strong>Pancake</strong>:  タブレットのブラウジング機器について述べる時は大文字化し、おいしい朝食の食べ物について述べる時は小文字のままです。</li>
+ <li><strong>Sync</strong>: Firefox の中の機能について語る時は大文字化し、記述用語としてのみ使う場合は小文字のままです。</li>
+ <li><strong>URLs</strong>: 全て大文字で、ピリオドなしです。(頭字語を見よ)</li>
+ <li><strong>Numbers</strong>: 数字を書くのではなく、アラビア数字 (1, 2, 3 など) を使います。千とか100万とか大きな数字は数字を書きます。</li>
+ <li><strong>ファイルサイズの表示</strong>
+ <ul>
+ <li>1 KB 未満の場合の表示は、 &lt;1 KB</li>
+ <li>1 KB 〜 1,023 KB の時の表示は、 357 KB</li>
+ <li>1 MB 〜 1,047 MB の時の表示は、 2.5MB (小数第1位まで)</li>
+ <li>1 GB 以上の時の表示は、 3.8 GB (小数第1位まで)</li>
+ </ul>
+ </li>
+</ul>
+
+<h2 id="個別のインターフェイス機能">個別のインターフェイス機能</h2>
+
+<div class="column-container">
+<div class="column-half">
+<ul>
+ <li><strong>タイトル (A)</strong>:
+
+ <ul>
+ <li>センテンスケース (最初の単語と固有名詞の 1 文字目のみ大文字にする記法)。</li>
+ <li>疑問文以外は文末の句読点を省略してください。</li>
+ <li>1 行以内におさめてください。</li>
+ <li>核となる部分は、最初の数語に記載してください。</li>
+ </ul>
+ </li>
+ <li><strong>ボタン (B)</strong>:
+ <ul>
+ <li>タイトルケース (すべての単語の 1 文字目を大文字にする記法)。</li>
+ <li>1 〜 2 語以内におさめてください。</li>
+ <li>ボタンの動作は、明確な動詞で記述してください。例えば「キャンセル」「履歴を消去」「メールを追加」「すべて選択」など。</li>
+ </ul>
+ </li>
+</ul>
+</div>
+
+<div class="column-half">
+<p style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/9353/Writing%20Style1.png" style="max-width: 240px; width: 70%;"></p>
+</div>
+</div>
+
+<div class="column-container">
+<div class="column-half">
+<ul>
+ <li><strong>ダイアログ本文 (C):</strong>
+
+ <ul>
+ <li>センテンスケース (最初の単語と固有名詞の 1 文字目のみ大文字にする記法)。</li>
+ </ul>
+ </li>
+ <li><strong>ダイアログボタン (B):</strong>
+ <ul>
+ <li>タイトルケース (すべての単語の 1 文字目を大文字にする記法)。</li>
+ <li>1 〜 2 語以内におさめてください。</li>
+ <li>ボタンの動作は、上記のように、明確な動詞で記述してください。</li>
+ </ul>
+ </li>
+</ul>
+</div>
+
+<div class="column-half">
+<p style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/9355/Writing%20Style2.png" style="max-width: 240px; width: 70%;"></p>
+</div>
+</div>
+
+<div class="column-container">
+<div class="column-half">
+<ul>
+ <li><strong>リストボタン / リストアイテム (D):</strong>
+
+ <ul>
+ <li>タイトルケース (すべての単語の 1 文字目を大文字にする記法)。</li>
+ <li>副ラベルではセンテンスケース (最初の単語と固有名詞の 1 文字目のみ大文字にする記法)。</li>
+ <li>1 〜 2 語以内におさめてください。</li>
+ <li>それぞれの文末が、宣言文や疑問文になるよう厳密に守ってください。Firefox OS インターフェイス内のリストでは、絶対に必要な場合を除き、厳密に守る必要はありません。</li>
+ </ul>
+ </li>
+</ul>
+</div>
+
+<div class="column-half">
+<p style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/9357/Writing%20Style3.png" style="max-width: 240px; width: 70%;"></p>
+</div>
+</div>
+
+<div class="column-container">
+<div class="column-half">
+<ul>
+ <li><strong>値選択リスト (E):</strong>
+
+ <ul>
+ <li>センテンスケース (最初の単語と固有名詞の 1 文字目のみ大文字にする記法)。</li>
+ <li>1 〜 2 語以内におさめてください。</li>
+ <li>文末の句読点なし。</li>
+ </ul>
+ </li>
+</ul>
+</div>
+
+<div class="column-half">
+<p style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/9359/Writing%20Style4.png" style="max-width: 240px; width: 70%;"></p>
+</div>
+</div>
+
+<ul>
+ <li><strong>フォーム:</strong>
+
+ <ul>
+ <li>ネガティブボタンは左に、ポシティブボタンは右に配置してください。</li>
+ <li>汎用的なラベルは「キャンセル」と「OK」です。</li>
+ </ul>
+ </li>
+ <li><strong>タブ / フィルタ</strong>: タイトルケースで、文末の制限なしで扱われます。1 〜 2 語以内におさめてください。</li>
+ <li><strong>ステータス通知 / 確認 / バナー</strong>: センテンスケースで、疑問文以外では文末の句読点を避けます。</li>
+</ul>
+
+<h2 id="文法">文法</h2>
+
+<ul>
+ <li><strong>ダッシュ</strong>: ハイフン (-) は、2つ以上の言葉から成るアイデアを作る時に使われ、常に接続されます。エンダッシュ (–) は数字や日付といった範囲に使われ、これも接続されます。エムダッシュ (—) は関連づけるために使われますが、概念同士を分けます。これは文章内や続く文章の両方、また接続される/されない場合ともに当てはまります。</li>
+ <li><strong>感嘆符</strong>: 使ってもOKですが、使いすぎないで。</li>
+ <li>プレーンクォートではなくスマートクォートを (“このように”) 使用してください。一般的に句読点はクオート記号の中に付け、感嘆符と疑問符もそうします。例外として感嘆符や疑問符が単にクオート記号内の一部分ではなく、文全体にかかる場合を除きます。</li>
+ <li><strong>スラッシュ</strong>: URL では、前向きのスラッシュ “/” を使います … バックスラッシュ “\” ではなく。</li>
+ <li><strong>文末の句読点</strong>: Firefox OS 文章の全ての場合で使います。疑問文や、一緒に繋がった複数の文を除いて、OS自体の多くの場合は使用を避けます。</li>
+ <li><strong>タイトルケース</strong>: タイトルケースは、各単語の最初の文字を大文字化するものです。内容が疑問文形式である場合を除き、句読点は必要でありません。アラビア語のように、タイトルケースを用いない言語があるのに留意してください。作業している言語にとってタイトルケースが適切である場合にのみ使用してください。</li>
+ <li><strong>センテンスケース</strong>: センテンスケースは、最初の単語の最初の文字と、固有名詞のみ大文字化します。センテンスケースを用いない言語があるのに留意してください。作業している言語にとってセンテンスケースが適切である場合にのみ使用してください。</li>
+ <li><strong>大文字化</strong>:
+ <ul>
+ <li>タイトルと副タイトル/副ヘッダ: タイトルケースを使います。</li>
+ <li>アクションボタン: タイトルケースを使います。</li>
+ <li>リストボタン / リスト項目: ラベルにはタイトルケースを使います副ラベルにはセンテンスケースを使います。</li>
+ <li>タブ / フィルタ: タイトルケースを使います。</li>
+ <li>値選択リスト: センテンスケースを使います。</li>
+ <li>アプリ名: アプリケーション名はタイトルケースで表示されますが、個々のセッティングやモードは小文字で表示されます。</li>
+ <li>ステータス通知: センテンスケースを使います。</li>
+ <li>ヘッダ: タイトルケースを使います。</li>
+ <li>本文の中身:  センテンスケースを使います。</li>
+ </ul>
+ </li>
+ <li>縮約系: 縮約系は使用可能で、もっと人間らしい経験を提供ために推奨されます。</li>
+</ul>
+
+<h2 id="一般的なスタイルのベストプラクティス">一般的なスタイルのベストプラクティス</h2>
+
+<ul>
+ <li><strong>俗語</strong>: 技術的な俗語を避けます。</li>
+ <li><strong>カンマ</strong>: Mozilla の通信ではシリアル・カンマ (別名 オックスフォード・カンマ) は使いません。</li>
+ <li><strong>簡潔なエラー説明</strong>: そのときの状況や、ユーザが解決するためにできることを、簡潔に説明するようにしてください。</li>
+ <li><strong>ユーザの指定</strong>: たいていの状況で「あなた」「あなたが」といった表現は避けてください。ユーザとデバイスの境界は区別してください。 例えば、「あなたの画像は削除されました」の代わりに「画像は削除されました」と言います。</li>
+ <li><strong>アプリについての記事</strong>: アプリケーション名の前に冠詞を付けないでください。例えば「Take photos with the Camera」ではなく「Take photos with Camera」を使用してください。</li>
+</ul>
+</div>
+</article>
+
+<ul>
+</ul>
+
+<h2 id="Display_of_file_size_units" name="Display_of_file_size_units"> </h2>
+
+<ul>
+</ul>
diff --git a/files/ja/archive/b2g_os/web_telephony_api/index.html b/files/ja/archive/b2g_os/web_telephony_api/index.html
new file mode 100644
index 0000000000..e33833ad14
--- /dev/null
+++ b/files/ja/archive/b2g_os/web_telephony_api/index.html
@@ -0,0 +1,144 @@
+---
+title: Web Telephony API
+slug: Archive/B2G_OS/Web_Telephony_API
+tags:
+ - API
+ - Firefox OS
+ - Phone
+ - Telephony
+ - Voice
+ - Web Telephony
+translation_of: Archive/B2G_OS/Web_Telephony_API
+---
+<p>Web Telephony は、Web コンテンツが JavaScript を使用して音声通話を扱うことを可能にする API です。</p>
+
+<h2 id="コンセプトと使用例">コンセプトと使用例</h2>
+
+<p>Web Telephony API は、Firefox OS のテレフォニー機能を制御する API 要件を満たすため、Mozilla により作成されました。この API は、サードパーティの開発者にこのようなクリティカルな端末機能の制御を許可するとセキュリティの懸念事項となるため、システム内部からのみ使用できます。</p>
+
+<p>この API のエントリポイントは、<a href="/ja/docs/Web/API/Navigator/mozTelephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Navigator.mozTelephony</code></a> プロパティを通して提供されます。このプロパティは、<a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a> オブジェクトを返し、マイクやスピーカー、ダイヤルトーン (DTMF) の生成、通話の発着信、その他の機能を制御するためのメソッドとプロパティを含む、端末のテレフォニーシステムへのアクセスを提供します。</p>
+
+<p>端末が <a href="/ja/docs/Web/API/Telephony/dial" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony.dial()</code></a> を使用してダイヤル発信するか <a href="/ja/docs/Web/API/Telephony/onincoming" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony.onincoming</code></a> イベントハンドラを経由してどこかからの着信により通話が初期化されると、通話を表す <a href="/ja/docs/Web/API/TelephonyCall" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall</code></a> オブジェクトが生成されます。このオブジェクトのプロパティとメソッドを通して通話を操作でき、プログラム返答や通話終了、保留、異なる通話状態への応答などができます。</p>
+
+<p>複数人でのグループ通話を制御するための <a href="/ja/docs/Web/API/TelephonyCallGroup" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCallGroup</code></a> インターフェイスも利用できます。</p>
+
+<div class="note">
+<p><strong>注記</strong>: Web Telephony API を使い始めるためのサンプルコードは、<a href="/docs/Web/API/Web_Telephony_API/Using_the_Web_Telephony_API">Web Telephony API の使用</a> を参照してください。</p>
+</div>
+
+<h3 id="Manifest_の許可設定">Manifest の許可設定</h3>
+
+<p>この API を Firefox OS アプリで使用するには、<code>manifest.webapp</code> ファイルに以下を記述する必要があります:</p>
+
+<pre class="brush: json">"type": "certified",
+"permissions": {
+ "telephony": {
+ "description": "Required to control telephony functions"
+ }
+},
+</pre>
+
+<h2 id="Web_テレフォニーインターフェイス">Web テレフォニーインターフェイス</h2>
+
+<dl>
+ <dt><a href="/ja/docs/Web/API/Navigator/mozTelephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Navigator.mozTelephony</code></a></dt>
+ <dd>Web Telephony API のためのエントリポイント。<a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a> オブジェクトにアクセスできます。</dd>
+ <dt><a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a></dt>
+ <dd>端末のテレフォニー機能の制御を提供します。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCall" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall</code></a></dt>
+ <dd>電話の通話を表します。通話の着信や発信などの機能を制御できます。</dd>
+ <dt><a href="/ja/docs/Web/API/MMICall" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>MMICall</code></a></dt>
+ <dd>MMI コールを表します。通話の結果を受け取れるようにします。</dd>
+ <dt><a href="/ja/docs/Web/API/TelephonyCallGroup" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCallGroup</code></a></dt>
+ <dd>複数人でのグループ通話を表します。発信者がグループ通話を追加や削除したり、通話全体をハングアップする機能などを提供します。</dd>
+ <dt><a href="/ja/docs/Web/API/CallEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CallEvent</code></a></dt>
+ <dd>電話の通話に関連するイベントを表します。</dd>
+</dl>
+
+<h2 id="Specification" name="Specification">仕様</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Specification</th>
+ <th scope="col">Status</th>
+ <th scope="col">Comment</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a class="external" href="https://wiki.mozilla.org/WebAPI/WebTelephony" hreflang="en" lang="en" title="Web Telephonyの仕様書">Web Telephony</a></td>
+ <td><span class="spec-Draft">ドラフト</span></td>
+ <td>Draft</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>
+
+<p>明らかな理由により、サポートはモバイルブラウザが優先されます。</p>
+
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">We're converting our compatibility data into a machine-readable JSON format</a></strong>.
+ This compatibility table still uses the old format,
+ because we haven't yet converted the data it contains.
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">Find out how you can help!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>12.0 (12.0)</td>
+ <td>1.0.1</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<p><a href="/docs/Web/API/Web_Telephony_API/Using_the_Web_Telephony_API">Web Telephony API の使用</a></p>
diff --git a/files/ja/archive/b2g_os/web_telephony_api/using_the_web_telephony_api/index.html b/files/ja/archive/b2g_os/web_telephony_api/using_the_web_telephony_api/index.html
new file mode 100644
index 0000000000..c429f6e00a
--- /dev/null
+++ b/files/ja/archive/b2g_os/web_telephony_api/using_the_web_telephony_api/index.html
@@ -0,0 +1,268 @@
+---
+title: Web Telephony API の使用
+slug: Archive/B2G_OS/Web_Telephony_API/Using_the_Web_Telephony_API
+tags:
+ - Advanced
+ - B2G
+ - Certified
+ - Firefox OS
+ - Phone
+ - Telephony
+ - Web Telephony
+translation_of: Archive/B2G_OS/Web_Telephony_API/Using_the_Web_Telephony_API
+---
+<p></p><section class="Quick_links" id="Quick_Links">
+
+<ol>
+ <li class="toggle">
+ <details>
+ <summary>Build and install</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Building_for_Flame_on_OS_X">Building B2G OS for Flame on Mac OS X</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_update_packages">Creating and applying B2G OS update packages</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_Build_Variables_Reference_Sheet">B2G build variables reference sheet</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Porting B2G OS</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Porting_B2G_OS/Porting_on_CyanogenMod">Porting on CyanogenMod</a></li>
+ </ol>
+ </details>
+ </li>
+ <li class="toggle">
+ <details>
+ <summary>Developing Gaia</summary>
+ <ol>
+ <li><strong><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li>
+ </ol>
+ </details>
+ </li>
+ <li><a href="/ja/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li>
+</ol>
+</section><p></p>
+
+<p class="summary">この記事は、<a href="/docs/Web/API/Web_Telephony_API">Web Telephony API</a> を使い始めるための基本を説明します。</p>
+
+<h2 id="Manifest_許可設定">Manifest 許可設定</h2>
+
+<p>Firefox OS アプリでこの API を使用するには、<code>manifest.webapp</code> ファイルに次の内容を記述する必要があります:</p>
+
+<pre class="brush: json">"type": "certified",
+"permissions": {
+ "telephony": {
+ "description": "Required to control telephony functions"
+ }
+},
+</pre>
+
+<h2 id="Accessing_the_API" name="Accessing_the_API">API アクセス</h2>
+
+<p>端末の電話機能へアクセスするための開始点は、<code>Navigator.mozTelephony</code> です。このオブジェクトの参照を得れば、通話の発信と着信を始められます。</p>
+
+<pre class="brush: js">// Telephony object
+var tel = navigator.mozTelephony;
+</pre>
+
+<h2 id="Inspecting_the_device_hardware" name="Inspecting_the_device_hardware">端末ハードウェアの調査</h2>
+
+<p>返される <a href="/ja/docs/Web/API/Telephony" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony</code></a> オブジェクトは、電話機のハードウェアをプログラム的に表し、その多くのアスペクトを制御する機能を与えます。例えば、消音や消音解除、スピーカーフォンの有効化と無効化などです:</p>
+
+<pre class="brush: js">// Check if the phone is muted (read/write property)
+console.log(tel.muted);
+
+// Check if the speaker is enabled (read/write property)
+console.log(tel.speakerEnabled);
+</pre>
+
+<h2 id="Making_calls" name="Making_calls">発信</h2>
+
+<p>通話の発信は、<code>Telephony</code> オブジェクトで <a href="/ja/docs/Web/API/Telephony/dial" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony.dial</code></a> を呼び出すだけの簡単なものです。これは、Firefox OS 1.4 以降で使用できる Promise ベースの API です (以前は標準のコールバック関数でした)。これは、resolve で通話を表す <a href="/ja/docs/Web/API/TelephonyCall" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall</code></a> オブジェクトを返します。このオブジェクトには、いくつものプロパティ、メソッド、イベントハンドラが含まれており、通話のプロパティを監視し、通話の <a href="/ja/docs/Web/API/TelephonyCall/hangUp" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>ハングアップ</code></a> や <a href="/ja/docs/Web/API/TelephonyCall/hold" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>保留</code></a> などの操作ができ、通話状態の変化に対する動作も指定できます。</p>
+
+<pre class="brush: js">// Place a call
+var call = tel.dial("123456789").then(function(call) {
+
+ // Events for that call
+ call.onstatechange = function (event) {
+ /*
+ Possible values for state:
+ "dialing", "ringing", "busy", "connecting", "connected",
+ "disconnecting", "disconnected", "incoming"
+ */
+ console.log(event.state);
+ };
+
+ // Above options as direct events
+ call.onconnected = function () {
+ // Call was connected
+ };
+
+ call.ondisconnected = function () {
+ // Call was disconnected
+ };
+});
+</pre>
+
+<h2 id="Receiving_calls" name="Receiving_calls">着信</h2>
+
+<p>通話の着信は、発信と異なりますが単純です。着信時に発動する <a href="/ja/docs/Web/API/Telephony/onincoming" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony.onincoming</code></a> イベントリスナを書く必要があります。この関数は、<code>call</code> プロパティを含むイベントオブジェクト (<a href="/ja/docs/Web/API/CallEvent" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>CallEvent</code></a>) が含まれます。このプロパティは、通話の <a href="/ja/docs/Web/API/TelephonyCall" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>TelephonyCall</code></a> オブジェクトへのアクセスを取得し、<a href="/ja/docs/Web/API/TelephonyCall/answer" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>呼び出しへの応答</code></a> などの動作ができます。</p>
+
+<pre class="brush: js">// Receiving a call
+tel.onincoming = function (event) {
+ var incomingCall = event.call;
+
+ // Get the number of the incoming call
+ console.log(incomingCall.id);
+
+ // Answer the call
+ incomingCall.answer();
+
+ // Let's say we have a button set up to hang up the call when pressed.
+ hangupButton.onclick = function() {
+ // Disconnect a call
+ call.hangUp();
+ }
+};
+</pre>
+
+<p>複数の通話を端末上で同時にアクティブにすることが可能です。<a href="/ja/docs/Web/API/Telephony/calls" title="この項目についての文書はまだ書かれていません。書いてみませんか?"><code>Telephony.calls</code></a> プロパティを通じて各通話をイテレートし、それぞれに対して適切な動作を行ってください。</p>
+
+<pre class="brush: js">// Iterating over calls, and taking action depending on their changed status
+tel.oncallschanged = function (event) {
+ tel.calls.forEach(function (call) {
+ // Log the state of each call
+ console.log(call.state);
+ });
+};
+</pre>
+
+<h2 id="Specifications" name="Specifications">仕様</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">仕様</th>
+ <th scope="col">状態</th>
+ <th scope="col">コメント</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a class="external" href="https://wiki.mozilla.org/WebAPI/WebTelephony" hreflang="en" lang="en" title="Web Telephonyの仕様書">Web Telephony</a></td>
+ <td><span class="spec-Draft">ドラフト</span></td>
+ <td>Draft</td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザ実装状況</h2>
+
+<p>明らかな理由により、サポートはモバイルブラウザが優先されます。</p>
+
+<p></p><p class="warning"><strong><a href="https://github.com/mdn/browser-compat-data">現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。</a></strong>
+ この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
+ <strong><a href="/ja/docs/MDN/Contribute/Structures/Compatibility_tables">手助けしていただける場合は、こちらから!</a></strong></p>
+
+<div class="htab">
+ <a id="AutoCompatibilityTable" name="AutoCompatibilityTable"></a>
+ <ul>
+ <li class="selected"><a>デスクトップ</a></li>
+ <li><a>モバイル</a></li>
+ </ul>
+</div><p></p>
+
+<div id="compat-desktop">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Chrome</th>
+ <th>Firefox (Gecko)</th>
+ <th>Internet Explorer</th>
+ <th>Opera</th>
+ <th>Safari</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<div id="compat-mobile">
+<table class="compat-table">
+ <tbody>
+ <tr>
+ <th>機能</th>
+ <th>Android</th>
+ <th>Firefox Mobile (Gecko)</th>
+ <th>Firefox OS (Gecko)</th>
+ <th>IE Mobile</th>
+ <th>Opera Mobile</th>
+ <th>Safari Mobile</th>
+ </tr>
+ <tr>
+ <td>基本サポート</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>12.0 (12.0)</td>
+ <td>1.0.1</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ <tr>
+ <td><code>id</code> と <code>secondId</code></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>30.0 (30.0)</td>
+ <td>2.0</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ <tr>
+ <td><code>disconnectedReason</code></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td>37.0 (37.0)</td>
+ <td>2.2</td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ <td><span style="color: #f00;">未サポート</span></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+
+<h2 id="See_also" name="See_also">関連情報</h2>
+
+<ul>
+ <li><a href="/docs/Web/Guide/Telephony">WebTelephony</a></li>
+</ul>
diff --git a/files/ja/archive/b2g_os/トラブルシューティング/index.html b/files/ja/archive/b2g_os/トラブルシューティング/index.html
new file mode 100644
index 0000000000..34b4c19863
--- /dev/null
+++ b/files/ja/archive/b2g_os/トラブルシューティング/index.html
@@ -0,0 +1,60 @@
+---
+title: Firefox OS のトラブルシューティング
+slug: Archive/B2G_OS/トラブルシューティング
+tags:
+ - Firefox OS
+ - Mobile
+ - toublesooting
+translation_of: Archive/B2G_OS/Troubleshooting
+---
+<div class="summary">
+<p>この記事ではFirefox OSを使用している際に発生する可能性のある一般的な問題を解決するためのヒントを提供します。どうぞご自由にこのページにコンテンツを追加してください!</p>
+</div>
+
+<h2 id="ネットワークの問題">ネットワークの問題</h2>
+
+<p>もし、Wi-Fiネットワークの接続問題があるのであればデバイスからWi-Fiの構成ファイルを削除することが役に立つと思われます。以下のように行うことができます</p>
+
+<pre>adb shell rm /data/misc/wifi/wpa_supplicant.conf
+adb reboot
+</pre>
+
+<div class="note">
+<p><strong>記:</strong> この操作法は、端末の <a href="/docs/Mozilla/Firefox_OS/Installing_on_a_mobile_device#Configuring_the_udev_rule_for_your_device" title="en-US/docs/Mozilla/Firefox_OS/Installing_on_a_mobile_device#Configuring_the_udev_rule_for_your_device">udev設定を構成済み</a> と想定しています。</p>
+</div>
+
+<h2 id="電話の故障">電話の故障</h2>
+
+<p>電話を故障させてしまった場合、例えば間違ったイメージを焼こうとした場合、ブートローダ(端末によってfastboot やheimdal )で再起動してみます。正確なシーケンスは電話によって変わります。USBケーブルを外し、電池を外して再度取り付けたりしてみます。Unagi と Otoro用には、音量アップと電源ボタンを、スプラッシュ画面が見えるまで数秒間、長押しします。電話がブートローダモードに入っているのを <code>fastboot devices</code> (またはサムスンの電話のいくつかでは <code>heimdall devices</code> )で確認します。いったん<code>fastboot devices</code>を使って電話が見えるようになったら、ベースイメージか、端末メーカーの提供するSDのパッケージファイル(電話による)を含むフォルダを探します。いま、焼き込むには2つのオプションがあります:</p>
+
+<ul>
+ <li><code>./flash.sh を使用してイメージを焼く</code>(推奨)</li>
+ <li>ターミナルウィンドウから次のコマンドを実行する:</li>
+</ul>
+
+<pre class="brush: bash language-html"><code class="language-bash">fastboot flash boot boot.img
+fastboot flash userdata userdata.img
+fastboot flash system system.img
+fastboot flash recovery recovery.img
+fastboot erase cache
+fastboot reboot</code></pre>
+
+<h2 id="赤色LEDの点滅_(otorounagi)">赤色LEDの点滅 (otoro/unagi)</h2>
+
+<p>この動作は、起動するのに電池容量が少なすぎることを意味しています。(赤色LEDの点滅が止まってからもう少しまで) 再度充電をするか、USBケーブルを抜き、電池を取り外し、USBケーブルを差し、電池を再度取り付けてください。</p>
+
+<h2 id="iPhoneから切り替えた後にSMS受信に失敗する">iPhoneから切り替えた後にSMS受信に失敗する</h2>
+
+<p>SIM カードを iPhone から Firefox OS (またはその他の色々なプラットフォーム) の端末に切り替えた場合、iPhone ユーザからのテキストメッセージを一切受け取れない問題にぶち当たることがあります。これはiPhoneからiPhoneへのSMSメッセージは<a href="https://www.apple.com/ios/messages/">iMessage</a> を用いて送信されるためであり、これはiPhone同士のメッセージを実際のテキストメッセージとして送る代わりに、Appleのサーバ経由でルーティングしてユーザのお金をセーブするものです。あなたがiPhoneを離れると不幸にも、iMessage は離れた事を知るすべはなく、他のiPhoneユーザからのSMSは依然iMessage経由で送ろうとするため、つまりあなたはそれを受け取れなくなります。<br>
+ <br>
+ これを修正するには、SIMで iMessage を切ります; imore.com にその方法があります —  <a href="http://www.imore.com/text-issues-switching-iphone-android-heres-fix">Here's how to turn off iMessage</a> を読んで下さい。</p>
+
+<h2 id="OSXで_ADB_に端末が出てこない">OSXで ADB に端末が出てこない</h2>
+
+<p>OSXで <code>adb devices</code> を実行すると、いくつかの端末は端末リストに出てこないことがあり、これにはさまざまな理由があります。これはあなたの <code>~/.android/adb_usb.ini</code> ファイルに端末ベンダIDを追加して、ADBに端末を見つけるヒントを与えると直ります。</p>
+
+<div class="note">
+<p><strong>記</strong>: もっと詳細は <a href="http://stackoverflow.com/a/7136003/1027966">この stackoverflow ポスト</a> を見てください、ここには接続端末のベンダIDを見つける方法や、それを <code>adb_usb.ini</code> に追加する方法が載っています。</p>
+</div>
+
+<p> </p>