diff options
author | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 21:46:22 -0500 |
---|---|---|
committer | Peter Bengtsson <mail@peterbe.com> | 2020-12-08 21:46:22 -0500 |
commit | a065e04d529da1d847b5062a12c46d916408bf32 (patch) | |
tree | fe0f8bcec1ff39a3c499a2708222dcf15224ff70 /files/id | |
parent | 218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (diff) | |
download | translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.gz translated-content-a065e04d529da1d847b5062a12c46d916408bf32.tar.bz2 translated-content-a065e04d529da1d847b5062a12c46d916408bf32.zip |
update based on https://github.com/mdn/yari/issues/2028
Diffstat (limited to 'files/id')
56 files changed, 0 insertions, 8534 deletions
diff --git a/files/id/_wikihistory.json b/files/id/_wikihistory.json deleted file mode 100644 index c7e8317627..0000000000 --- a/files/id/_wikihistory.json +++ /dev/null @@ -1,2171 +0,0 @@ -{ - "Developer_Guide": { - "modified": "2019-03-23T23:27:41.297Z", - "contributors": [ - "bskari" - ] - }, - "Developer_Guide/Virtual_ARM_di_Lingkungan_Linux": { - "modified": "2019-03-23T23:27:45.214Z", - "contributors": [ - "ariestiyansyah" - ] - }, - "Games": { - "modified": "2020-07-23T02:23:56.130Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "firmanwyd", - "Alivanza", - "Dataware" - ] - }, - "Games/Publishing_games": { - "modified": "2020-07-23T02:24:59.333Z", - "contributors": [ - "wbamberg" - ] - }, - "Games/Publishing_games/Game_promotion": { - "modified": "2020-07-23T02:28:02.464Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Games/Techniques": { - "modified": "2019-04-21T11:17:49.913Z", - "contributors": [ - "wbamberg" - ] - }, - "Glossary": { - "modified": "2020-10-07T11:10:52.018Z", - "contributors": [ - "peterbe", - "SphinxKnight", - "wbamberg", - "bekti", - "Jeremie" - ] - }, - "Glossary/404": { - "modified": "2019-03-23T22:32:14.780Z", - "contributors": [ - "bekti" - ] - }, - "Glossary/AJAX": { - "modified": "2019-03-23T22:19:41.769Z", - "contributors": [ - "galuhsahid", - "yahyaman", - "bekti" - ] - }, - "Glossary/API": { - "modified": "2019-03-23T22:32:10.841Z", - "contributors": [ - "bekti" - ] - }, - "Glossary/Algoritma": { - "modified": "2019-03-23T22:41:10.845Z", - "contributors": [ - "yayansupiana", - "astrominion", - "agungprasetyosakti" - ] - }, - "Glossary/Asynchronous": { - "modified": "2019-03-23T22:29:53.061Z", - "contributors": [ - "adoel90" - ] - }, - "Glossary/CSS": { - "modified": "2019-03-23T22:19:46.534Z", - "contributors": [ - "galuhsahid", - "bekti" - ] - }, - "Glossary/HTML": { - "modified": "2019-03-18T21:44:41.786Z", - "contributors": [ - "galuhsahid" - ] - }, - "Glossary/HTTP": { - "modified": "2019-03-23T22:19:40.425Z", - "contributors": [ - "galuhsahid", - "bekti" - ] - }, - "Glossary/Identifier": { - "modified": "2019-03-23T22:10:10.171Z", - "contributors": [ - "sori-goklas-hutagalung" - ] - }, - "Glossary/JSON": { - "modified": "2019-03-18T21:44:43.807Z", - "contributors": [ - "galuhsahid" - ] - }, - "Glossary/JavaScript": { - "modified": "2019-03-23T22:19:47.350Z", - "contributors": [ - "galuhsahid", - "bekti" - ] - }, - "Glossary/Method": { - "modified": "2019-03-23T22:32:21.055Z", - "contributors": [ - "bekti" - ] - }, - "Glossary/Null": { - "modified": "2019-03-23T22:18:02.352Z", - "contributors": [ - "dinugr" - ] - }, - "Glossary/Primitive": { - "modified": "2019-03-23T22:09:59.397Z", - "contributors": [ - "sori-goklas-hutagalung" - ] - }, - "Glossary/Python": { - "modified": "2019-03-18T21:42:33.944Z", - "contributors": [ - "adityaharist19" - ] - }, - "Glossary/SEO": { - "modified": "2019-09-22T13:59:47.933Z", - "contributors": [ - "duduindo", - "rizkysaskiaputra" - ] - }, - "Glossary/SVG": { - "modified": "2019-03-23T22:19:38.489Z", - "contributors": [ - "galuhsahid", - "bekti" - ] - }, - "Glossary/Statement": { - "modified": "2019-03-23T22:09:58.650Z", - "contributors": [ - "sori-goklas-hutagalung" - ] - }, - "Glossary/URL": { - "modified": "2019-03-23T22:19:45.495Z", - "contributors": [ - "galuhsahid", - "bekti" - ] - }, - "Glossary/Variable": { - "modified": "2019-03-23T22:09:46.873Z", - "contributors": [ - "bekti" - ] - }, - "Glossary/XML": { - "modified": "2019-03-23T22:19:46.777Z", - "contributors": [ - "galuhsahid", - "bekti" - ] - }, - "Glossary/property": { - "modified": "2019-03-23T22:32:18.314Z", - "contributors": [ - "bekti" - ] - }, - "Learn": { - "modified": "2020-08-08T15:57:34.011Z", - "contributors": [ - "excelrtuhin", - "lisa.angraini.la", - "setyadi", - "Transamunos", - "SphinxKnight", - "svarlamov", - "padila50", - "milhamj", - "bekti", - "miftahafina", - "bang_eko", - "Andrew_Pfeiffer" - ] - }, - "Learn/Accessibility": { - "modified": "2020-07-16T22:39:57.425Z", - "contributors": [ - "zahrulseptian295" - ] - }, - "Learn/CSS": { - "modified": "2020-07-16T22:25:34.322Z", - "contributors": [ - "sideshowbarker" - ] - }, - "Learn/Common_questions": { - "modified": "2020-07-16T22:35:24.163Z", - "contributors": [ - "ashymee", - "dennisblight", - "stephaniehobson" - ] - }, - "Learn/Common_questions/Bagaimana_cara_kerja_Internet": { - "modified": "2020-07-16T22:35:36.880Z", - "contributors": [ - "xenavrt", - "dennisblight" - ] - }, - "Learn/Common_questions/Berfikir_sebelum_membuat_kode": { - "modified": "2020-07-16T22:35:34.339Z", - "contributors": [ - "wahyuakbarwibowo" - ] - }, - "Learn/Common_questions/Pages_sites_servers_and_search_engines": { - "modified": "2020-07-16T22:35:39.876Z", - "contributors": [ - "ilhamm11194011" - ] - }, - "Learn/Common_questions/set_up_a_local_testing_server": { - "modified": "2020-07-16T22:35:52.964Z", - "contributors": [ - "dennisblight" - ] - }, - "Learn/Getting_started_with_the_web": { - "modified": "2020-07-16T22:33:53.018Z", - "contributors": [ - "Transamunos", - "thickkoezz", - "dennisblight", - "galuhsahid", - "bekti", - "miftahafina", - "adeyahya", - "chrisdavidmills" - ] - }, - "Learn/Getting_started_with_the_web/Akan_terlihat_seperti_apa_website_anda": { - "modified": "2020-07-16T22:34:16.825Z", - "contributors": [ - "thickkoezz", - "bekti", - "dovjay", - "yayansupiana" - ] - }, - "Learn/Getting_started_with_the_web/CSS_basics": { - "modified": "2020-07-16T22:34:58.859Z", - "contributors": [ - "thickkoezz", - "galuhsahid" - ] - }, - "Learn/Getting_started_with_the_web/HTML_basics": { - "modified": "2020-07-16T22:34:45.914Z", - "contributors": [ - "thickkoezz", - "adangwihanda", - "yasminzy", - "oktafh", - "bangyasri" - ] - }, - "Learn/Getting_started_with_the_web/How_the_Web_works": { - "modified": "2020-07-16T22:34:00.538Z", - "contributors": [ - "dennisblight", - "bekti" - ] - }, - "Learn/Getting_started_with_the_web/Installing_basic_software": { - "modified": "2020-07-16T22:34:08.020Z", - "contributors": [ - "Transamunos", - "thickkoezz", - "dennisblight", - "bekti", - "yayansupiana", - "agus_nurcholis" - ] - }, - "Learn/Getting_started_with_the_web/JavaScript_basics": { - "modified": "2020-07-16T22:35:10.743Z", - "contributors": [ - "willi-dev", - "MichaelSipayung", - "bekti", - "Fidelstu", - "miftahafina", - "adeyahya" - ] - }, - "Learn/Getting_started_with_the_web/Mengelola_file": { - "modified": "2020-07-16T22:34:33.806Z", - "contributors": [ - "thickkoezz", - "galuhsahid", - "BPiVcarD", - "vdanny" - ] - }, - "Learn/Getting_started_with_the_web/Publishing_your_website": { - "modified": "2020-07-16T22:34:25.723Z", - "contributors": [ - "bekti" - ] - }, - "Learn/HTML": { - "modified": "2020-07-16T22:22:18.743Z", - "contributors": [ - "bayuYudhaSaputra", - "fikrirazor" - ] - }, - "Learn/HTML/Howto": { - "modified": "2020-08-21T10:36:52.641Z", - "contributors": [ - "ikramwadudu99" - ] - }, - "Learn/HTML/Multimedia_dan_embedding": { - "modified": "2020-07-16T22:24:25.764Z", - "contributors": [ - "SphinxKnight", - "putrapuices", - "thickkoezz" - ] - }, - "Learn/HTML/Multimedia_dan_embedding/Adding_vector_graphics_to_the_Web": { - "modified": "2020-07-16T22:24:40.529Z", - "contributors": [ - "mujahid-it" - ] - }, - "Learn/HTML/Multimedia_dan_embedding/Responsive_images": { - "modified": "2020-07-16T22:24:34.275Z", - "contributors": [ - "mujahid-it" - ] - }, - "Learn/HTML/Pengenalan_HTML": { - "modified": "2020-07-30T01:00:05.720Z", - "contributors": [ - "setyadi", - "Zen-Akira", - "thickkoezz", - "ariaenggar" - ] - }, - "Learn/HTML/Pengenalan_HTML/Document_and_website_structure": { - "modified": "2020-07-16T22:24:04.997Z", - "contributors": [ - "mujahid-it" - ] - }, - "Learn/HTML/Pengenalan_HTML/HTML_text_fundamentals": { - "modified": "2020-07-16T22:23:32.925Z", - "contributors": [ - "Transamunos" - ] - }, - "Learn/HTML/Pengenalan_HTML/Structuring_a_page_of_content": { - "modified": "2020-07-16T22:24:19.411Z", - "contributors": [ - "mujahid-it" - ] - }, - "Learn/HTML/Tabel": { - "modified": "2020-07-16T22:25:12.167Z", - "contributors": [ - "jatmikaekachandra" - ] - }, - "Learn/How_to_contribute": { - "modified": "2020-07-16T22:33:44.062Z", - "contributors": [ - "SphinxKnight", - "bekti", - "ariestiyansyah" - ] - }, - "Learn/JavaScript": { - "modified": "2020-07-16T22:29:39.927Z", - "contributors": [ - "triashand", - "ariebrainware", - "bekti", - "miftahafina" - ] - }, - "Learn/JavaScript/Building_blocks": { - "modified": "2020-11-07T05:27:42.212Z", - "contributors": [ - "cxvq", - "Fidelstu" - ] - }, - "Learn/JavaScript/Client-side_web_APIs": { - "modified": "2020-07-16T22:32:39.540Z", - "contributors": [ - "awim" - ] - }, - "Learn/JavaScript/Client-side_web_APIs/Introduction": { - "modified": "2020-07-16T22:32:45.404Z", - "contributors": [ - "rizkypjt" - ] - }, - "Learn/JavaScript/First_steps": { - "modified": "2020-11-09T23:42:16.586Z", - "contributors": [ - "inbox.jen96", - "bekti" - ] - }, - "Learn/JavaScript/First_steps/What_is_JavaScript": { - "modified": "2020-07-16T22:30:08.653Z", - "contributors": [ - "ajiprio01", - "windykurniawan-windcode" - ] - }, - "Learn/JavaScript/Objects": { - "modified": "2020-07-16T22:31:50.305Z", - "contributors": [ - "thickkoezz", - "Fidelstu" - ] - }, - "Learn/JavaScript/Objects/Dasar-dasar": { - "modified": "2020-07-16T22:31:59.183Z", - "contributors": [ - "indrayoganata" - ] - }, - "Learn/Server-side": { - "modified": "2020-07-16T22:35:58.563Z", - "contributors": [ - "chrisdavidmills" - ] - }, - "Learn/Server-side/Django": { - "modified": "2020-09-27T09:04:00.240Z", - "contributors": [ - "MuhamadAzizi", - "AgungWiyono", - "aps2201", - "fikrirazor" - ] - }, - "Learn/Server-side/Django/Tutorial_local_library_website": { - "modified": "2020-09-27T09:52:56.557Z", - "contributors": [ - "MuhamadAzizi" - ] - }, - "Learn/Server-side/Django/development_environment": { - "modified": "2020-09-27T09:24:51.296Z", - "contributors": [ - "MuhamadAzizi", - "mujahid-it" - ] - }, - "Learn/Server-side/First_steps": { - "modified": "2020-07-16T22:36:09.052Z", - "contributors": [ - "ferdian89" - ] - }, - "Learn/Web_Mechanics": { - "modified": "2020-07-16T22:22:13.418Z", - "contributors": [ - "miftahafina" - ] - }, - "MDN": { - "modified": "2020-08-29T05:39:32.291Z", - "contributors": [ - "excelrtuhin", - "jswisher", - "SphinxKnight", - "wbamberg", - "bekti", - "Sheppy" - ] - }, - "MDN/About": { - "modified": "2020-08-09T11:25:04.711Z", - "contributors": [ - "harikun" - ] - }, - "MDN/Contribute": { - "modified": "2019-01-16T19:12:55.469Z", - "contributors": [ - "wbamberg", - "bekti", - "ariestiyansyah", - "Sheppy" - ] - }, - "MDN/Contribute/Feedback": { - "modified": "2020-09-30T17:51:12.443Z", - "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "thickkoezz", - "wbamberg", - "chorie", - "viankakrisna", - "afishop", - "jswisher", - "pieteru_insekai" - ] - }, - "MDN/Contribute/Getting_started": { - "modified": "2020-09-30T17:12:29.554Z", - "contributors": [ - "chrisdavidmills", - "SphinxKnight", - "excelrtuhin", - "kangsantripaud", - "ISO", - "devmio", - "agenbaccaratnet", - "wbamberg", - "nsiregar", - "chorie", - "arifpedia", - "firmanwyd", - "bekti", - "bayuah", - "Mohdsalleh", - "Bobypurnomo", - "rio.putra", - "helloeny" - ] - }, - "MDN/Contribute/Howto": { - "modified": "2019-01-16T19:12:51.064Z", - "contributors": [ - "wbamberg", - "bekti", - "Sheppy" - ] - }, - "MDN/Contribute/Howto/Create_an_MDN_account": { - "modified": "2019-03-23T22:38:48.748Z", - "contributors": [ - "wbamberg", - "padila50", - "firmanwyd", - "taqiyyuki02", - "Lukman04" - ] - }, - "MDN/Contribute/Howto/Do_a_technical_review": { - "modified": "2019-03-23T22:32:05.940Z", - "contributors": [ - "wbamberg", - "heasanking" - ] - }, - "MDN/Contribute/Howto/Do_an_editorial_review": { - "modified": "2019-03-23T22:31:28.587Z", - "contributors": [ - "wbamberg", - "ElangSBP", - "bekti", - "Pieteru" - ] - }, - "MDN/Contribute/Howto/Set_the_summary_for_a_page": { - "modified": "2019-01-16T19:13:18.495Z", - "contributors": [ - "wbamberg", - "zekaras" - ] - }, - "MDN/Contribute/Howto/Tag": { - "modified": "2019-03-23T23:04:03.858Z", - "contributors": [ - "wbamberg", - "yayasl" - ] - }, - "MDN/Contribute/Processes": { - "modified": "2019-03-23T22:33:46.372Z", - "contributors": [ - "ignchristian", - "wbamberg", - "jswisher" - ] - }, - "MDN/Contribute/Tugas": { - "modified": "2019-01-16T19:13:42.819Z", - "contributors": [ - "wbamberg", - "firmanwyd", - "Cr7Pramana" - ] - }, - "MDN/Guidelines": { - "modified": "2020-09-30T15:29:57.815Z", - "contributors": [ - "chrisdavidmills", - "wbamberg", - "bekti", - "Sheppy" - ] - }, - "MDN/Guidelines/Writing_style_guide": { - "modified": "2020-09-30T15:29:58.831Z", - "contributors": [ - "chrisdavidmills", - "alvisolikah0507" - ] - }, - "MDN/Komunitas": { - "modified": "2019-05-29T21:20:10.743Z", - "contributors": [ - "alattalatta", - "KLIWONJagung", - "wbamberg", - "Makarim", - "firmanwyd", - "padila50", - "bekti", - "eriskatp" - ] - }, - "MDN/Komunitas/Conversations": { - "modified": "2019-03-23T22:41:40.315Z", - "contributors": [ - "wbamberg", - "jswisher", - "randiproska" - ] - }, - "MDN/User_guide": { - "modified": "2020-12-07T17:30:15.270Z", - "contributors": [ - "wbamberg", - "Sheppy" - ] - }, - "MDN/User_guide/Menghapus_halaman": { - "modified": "2019-01-16T18:55:32.659Z", - "contributors": [ - "wbamberg", - "helloeny" - ] - }, - "Mozilla": { - "modified": "2019-03-23T23:28:31.556Z", - "contributors": [ - "wim449", - "Sheppy" - ] - }, - "Mozilla/Add-ons": { - "modified": "2019-09-09T13:11:45.968Z", - "contributors": [ - "SphinxKnight", - "bekti", - "soulast", - "LukmanTambose", - "pieteru_insekai", - "novita" - ] - }, - "Mozilla/Add-ons/WebExtensions": { - "modified": "2019-07-03T08:48:34.929Z", - "contributors": [ - "SphinxKnight", - "herliansyah", - "fesuydev", - "wbamberg" - ] - }, - "Mozilla/Add-ons/WebExtensions/API": { - "modified": "2019-11-26T22:19:27.565Z", - "contributors": [ - "wbamberg" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/browserSettings": { - "modified": "2020-10-15T22:32:28.909Z", - "contributors": [ - "SphinxKnight", - "joelinformaticien01", - "didikpramono" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/notifikasi": { - "modified": "2020-10-15T22:05:36.197Z", - "contributors": [ - "asiongtobing", - "wbamberg", - "Azhe403" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/windows": { - "modified": "2020-10-15T21:51:41.708Z", - "contributors": [ - "wbamberg", - "abbycar" - ] - }, - "Mozilla/Add-ons/WebExtensions/API/windows/CreateType": { - "modified": "2020-10-15T21:51:40.999Z", - "contributors": [ - "wbamberg", - "fesuydev" - ] - }, - "Mozilla/Add-ons/WebExtensions/Apa_Itu_WebExtensions": { - "modified": "2019-03-18T21:06:29.401Z", - "contributors": [ - "fesuydev" - ] - }, - "Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs": { - "modified": "2020-10-15T20:55:16.114Z", - "contributors": [ - "didikpramono" - ] - }, - "Mozilla/Add-ons/WebExtensions/Content_scripts": { - "modified": "2020-07-10T14:58:49.988Z", - "contributors": [ - "prajahutapea1980" - ] - }, - "Mozilla/Add-ons/WebExtensions/Your_first_WebExtension": { - "modified": "2019-03-18T21:06:21.389Z", - "contributors": [ - "fesuydev" - ] - }, - "Mozilla/Firefox": { - "modified": "2019-09-10T14:58:31.117Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "chorie", - "bekti", - "haris_haki89", - "StarGible" - ] - }, - "Mozilla/Firefox/Releases": { - "modified": "2019-03-23T23:09:29.710Z", - "contributors": [ - "wbamberg", - "bekti", - "ziyunfei" - ] - }, - "Pengembangan_Web": { - "modified": "2019-03-23T22:51:52.244Z", - "contributors": [ - "rahmatsubekti" - ] - }, - "Tools": { - "modified": "2020-07-16T22:44:15.262Z", - "contributors": [ - "SphinxKnight", - "wbamberg", - "srwicak", - "bekti", - "paleutoh", - "Rawoyo", - "agungprasetyosakti", - "abdulrahmandwn@gmail.com", - "bg17me", - "romifzld@gmail.com", - "Rusli88", - "redkhila", - "Almizajuhazamjabila", - "Dera_kom", - "InyoezzRusty", - "dodo_tgrcity" - ] - }, - "Tools/Accessibility_inspector": { - "modified": "2020-07-16T22:36:39.804Z", - "contributors": [ - "BrilliantFikri" - ] - }, - "Tools/Debugger": { - "modified": "2020-07-16T22:35:04.572Z", - "contributors": [ - "wbamberg", - "fscholz", - "trevorh", - "aslam" - ] - }, - "Tools/Page_Inspector": { - "modified": "2020-07-16T22:34:27.903Z", - "contributors": [ - "wbamberg", - "bekti" - ] - }, - "Tools/Page_Inspector/How_to": { - "modified": "2020-07-16T22:34:31.302Z" - }, - "Tools/Remote_Debugging": { - "modified": "2020-07-16T22:35:37.379Z", - "contributors": [ - "wbamberg", - "fahrizalsaler", - "Rizal712", - "zemaryal" - ] - }, - "Web": { - "modified": "2020-08-01T17:04:48.178Z", - "contributors": [ - "Transamunos", - "padila50", - "firmanwyd", - "TIYAN", - "Pieteru", - "bekti", - "nochis", - "srifqi", - "enda34", - "jefriebdn", - "groovecoder", - "Dhinicarnetta", - "pieteru_insekai", - "Jan.Ruzicka" - ] - }, - "Web/API": { - "modified": "2019-03-23T23:29:04.875Z", - "contributors": [ - "teoli", - "Rodin", - "ethertank", - "Sheppy", - "pieteru_insekai" - ] - }, - "Web/API/API_Push": { - "modified": "2019-03-23T22:39:12.627Z", - "contributors": [ - "bayuah" - ] - }, - "Web/API/AbstractWorker": { - "modified": "2019-03-23T22:32:36.681Z", - "contributors": [ - "bekti" - ] - }, - "Web/API/CacheStorage": { - "modified": "2020-10-15T22:30:28.579Z", - "contributors": [ - "AprilSylph" - ] - }, - "Web/API/Canvas_API": { - "modified": "2020-04-30T13:42:37.733Z", - "contributors": [ - "Thor-x86", - "her82man" - ] - }, - "Web/API/Console": { - "modified": "2019-03-23T22:06:01.155Z", - "contributors": [ - "chaosrock" - ] - }, - "Web/API/Document": { - "modified": "2019-03-23T22:31:44.953Z", - "contributors": [ - "teoli" - ] - }, - "Web/API/Document/createElement": { - "modified": "2019-03-18T21:40:57.940Z", - "contributors": [ - "srwicak" - ] - }, - "Web/API/Document/links": { - "modified": "2019-03-23T22:31:46.942Z", - "contributors": [ - "bekti" - ] - }, - "Web/API/Document/write": { - "modified": "2019-03-23T22:31:16.420Z", - "contributors": [ - "bekti" - ] - }, - "Web/API/Event": { - "modified": "2019-03-23T22:34:07.571Z", - "contributors": [ - "bekti" - ] - }, - "Web/API/Event/currentTarget": { - "modified": "2019-03-23T22:02:04.056Z", - "contributors": [ - "agengdp" - ] - }, - "Web/API/Event/target": { - "modified": "2020-10-15T22:29:42.203Z", - "contributors": [ - "mujahid-it" - ] - }, - "Web/API/Fetch_API": { - "modified": "2020-10-15T22:15:10.618Z", - "contributors": [ - "arifirmansyah" - ] - }, - "Web/API/Navigator": { - "modified": "2019-03-23T22:33:55.930Z", - "contributors": [ - "bekti", - "jpmedley" - ] - }, - "Web/API/Navigator/mediaDevices": { - "modified": "2020-10-15T22:35:18.495Z", - "contributors": [ - "ajid2" - ] - }, - "Web/API/Navigator/serviceWorker": { - "modified": "2019-03-23T22:33:57.198Z", - "contributors": [ - "bekti" - ] - }, - "Web/API/ServiceWorker": { - "modified": "2019-03-23T22:33:58.500Z", - "contributors": [ - "bekti" - ] - }, - "Web/API/ServiceWorkerContainer": { - "modified": "2020-10-15T22:30:32.905Z", - "contributors": [ - "Wind1808" - ] - }, - "Web/API/ServiceWorkerRegistration": { - "modified": "2019-03-23T22:24:55.454Z", - "contributors": [ - "lostsource" - ] - }, - "Web/API/ServiceWorkerRegistration/pushManager": { - "modified": "2019-03-23T22:25:01.542Z", - "contributors": [ - "bekti" - ] - }, - "Web/API/Service_Worker_API": { - "modified": "2019-03-23T22:34:03.819Z", - "contributors": [ - "chrisdavidmills" - ] - }, - "Web/API/Service_Worker_API/Using_Service_Workers": { - "modified": "2019-03-23T22:34:11.113Z", - "contributors": [ - "bekti" - ] - }, - "Web/API/SpeechSynthesis": { - "modified": "2020-10-15T22:26:55.754Z" - }, - "Web/API/SpeechSynthesis/onvoiceschanged": { - "modified": "2020-10-15T22:28:05.104Z", - "contributors": [ - "azaddogan0688" - ] - }, - "Web/API/Storage": { - "modified": "2020-10-15T22:14:31.365Z", - "contributors": [ - "daengbaco" - ] - }, - "Web/API/WebGL_API": { - "modified": "2020-04-29T19:32:33.970Z", - "contributors": [ - "bekti", - "fscholz", - "bassam", - "agungprasetyosakti" - ] - }, - "Web/API/WebRTC_API": { - "modified": "2019-03-23T22:16:11.428Z", - "contributors": [ - "fitra" - ] - }, - "Web/API/Window": { - "modified": "2019-03-23T22:04:16.389Z", - "contributors": [ - "jpmedley" - ] - }, - "Web/API/Window/getSelection": { - "modified": "2020-10-15T22:25:06.790Z", - "contributors": [ - "fsodic" - ] - }, - "Web/API/Window/window": { - "modified": "2019-03-23T22:04:14.512Z", - "contributors": [ - "Makarim" - ] - }, - "Web/API/XMLHttpRequest": { - "modified": "2020-10-15T22:29:42.073Z", - "contributors": [ - "mconley" - ] - }, - "Web/API/XMLHttpRequest/Using_XMLHttpRequest": { - "modified": "2020-10-15T22:29:44.031Z", - "contributors": [ - "cupsmaniak" - ] - }, - "Web/CSS": { - "modified": "2020-10-11T06:34:07.941Z", - "contributors": [ - "liimep", - "SphinxKnight", - "okabrionz", - "bekti", - "pieteru_insekai" - ] - }, - "Web/CSS/:active": { - "modified": "2019-03-23T22:39:29.350Z", - "contributors": [ - "fscholz", - "dedy_serang" - ] - }, - "Web/CSS/@font-face": { - "modified": "2020-10-15T22:29:43.073Z", - "contributors": [ - "Speich" - ] - }, - "Web/CSS/@font-face/font-display": { - "modified": "2020-10-15T22:29:40.410Z", - "contributors": [ - "yhogalampung" - ] - }, - "Web/CSS/CSS_Box_Model": { - "modified": "2019-11-12T01:36:35.726Z" - }, - "Web/CSS/CSS_Box_Model/Introduction_to_the_CSS_box_model": { - "modified": "2020-04-14T11:30:15.446Z", - "contributors": [ - "AndrEndru" - ] - }, - "Web/CSS/CSS_Selectors": { - "modified": "2019-03-23T22:39:36.340Z", - "contributors": [ - "dedy_serang", - "Sebastianz" - ] - }, - "Web/CSS/CSS_Selectors/Using_the_:target_pseudo-class_in_selectors": { - "modified": "2019-03-23T22:39:39.136Z", - "contributors": [ - "dedy_serang" - ] - }, - "Web/CSS/Type_selectors": { - "modified": "2019-03-23T22:39:33.121Z", - "contributors": [ - "dedy_serang" - ] - }, - "Web/CSS/background-color": { - "modified": "2020-10-15T22:13:54.838Z", - "contributors": [ - "Fairsu" - ] - }, - "Web/CSS/flex-direction": { - "modified": "2020-10-15T22:33:04.876Z", - "contributors": [ - "tegar97" - ] - }, - "Web/CSS/mask-border-width": { - "modified": "2020-11-28T00:13:02.295Z", - "contributors": [ - "alifudinashfa7" - ] - }, - "Web/CSS/referensi": { - "modified": "2020-10-11T06:52:29.728Z", - "contributors": [ - "liimep" - ] - }, - "Web/CSS/text-transform": { - "modified": "2020-10-15T22:00:17.057Z", - "contributors": [ - "fowlplay" - ] - }, - "Web/Events": { - "modified": "2019-04-30T14:00:32.443Z", - "contributors": [ - "wbamberg", - "bep" - ] - }, - "Web/Events/error": { - "modified": "2019-03-23T22:33:54.573Z", - "contributors": [ - "fscholz", - "bekti" - ] - }, - "Web/Guide": { - "modified": "2019-03-23T23:29:05.952Z", - "contributors": [ - "firmanwyd", - "bekti", - "rahmatsubekti", - "ethertank", - "Sheppy" - ] - }, - "Web/Guide/API": { - "modified": "2019-09-11T09:41:53.158Z", - "contributors": [ - "SphinxKnight", - "steffix.h2" - ] - }, - "Web/Guide/API/WebRTC": { - "modified": "2019-03-23T22:55:51.386Z", - "contributors": [ - "fitra", - "yuan8" - ] - }, - "Web/Guide/CSS/Getting_started": { - "modified": "2019-03-23T23:14:57.144Z", - "contributors": [ - "mahfudhi" - ] - }, - "Web/Guide/CSS/Media_queries": { - "modified": "2019-03-23T23:17:04.703Z", - "contributors": [ - "Sebastianz", - "mrstork", - "malayaleecoder", - "dpitaloka" - ] - }, - "Web/Guide/Grafis": { - "modified": "2019-03-23T23:29:12.829Z", - "contributors": [ - "firmanwyd", - "bekti", - "pieteru_insekai" - ] - }, - "Web/Guide/HTML/Forms": { - "modified": "2020-07-16T22:20:57.894Z", - "contributors": [ - "ariona_rian" - ] - }, - "Web/Guide/HTML/HTML5": { - "modified": "2019-04-27T02:10:19.507Z", - "contributors": [ - "eragone394", - "teoli", - "andi-sholihin", - "dac" - ] - }, - "Web/HTML": { - "modified": "2020-03-30T02:20:45.667Z", - "contributors": [ - "SphinxKnight", - "teriray23", - "Transamunos", - "GhalibPutra879", - "globalnet", - "Pieteru", - "bekti", - "pieteru_insekai", - "noorAddianna" - ] - }, - "Web/HTML/Element": { - "modified": "2020-05-04T02:43:50.266Z", - "contributors": [ - "SphinxKnight", - "ISO", - "Transamunos", - "bekti", - "kscarfone" - ] - }, - "Web/HTML/Element/base": { - "modified": "2019-09-22T14:03:48.366Z", - "contributors": [ - "duduindo", - "Ariansnirwana" - ] - }, - "Web/HTML/Element/dialog": { - "modified": "2020-10-15T22:00:58.630Z", - "contributors": [ - "jpmakangiras" - ] - }, - "Web/HTML/Element/image": { - "modified": "2019-03-23T22:11:52.537Z", - "contributors": [ - "Fidelstu" - ] - }, - "Web/HTTP": { - "modified": "2019-03-23T22:10:11.130Z", - "contributors": [ - "srwicak", - "Joe_Brown", - "Jasakontraktor", - "fscholz" - ] - }, - "Web/HTTP/Basics_of_HTTP": { - "modified": "2020-07-05T03:38:29.103Z", - "contributors": [ - "setyadi", - "mfuji09" - ] - }, - "Web/HTTP/Gambaran": { - "modified": "2020-11-29T00:41:21.794Z", - "contributors": [ - "mzgndrg", - "bcnight" - ] - }, - "Web/HTTP/Methods": { - "modified": "2020-10-15T21:55:31.625Z", - "contributors": [ - "bekti", - "fscholz" - ] - }, - "Web/HTTP/Methods/GET": { - "modified": "2020-10-15T21:55:31.974Z", - "contributors": [ - "bekti" - ] - }, - "Web/HTTP/Proxy_servers_and_tunneling": { - "modified": "2020-10-19T13:06:42.068Z", - "contributors": [ - "jwerre" - ] - }, - "Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_(PAC)_file": { - "modified": "2020-10-20T02:03:59.798Z", - "contributors": [ - "SphinxKnight", - "worabaiyan" - ] - }, - "Web/HTTP/Status": { - "modified": "2020-07-11T00:04:04.381Z", - "contributors": [ - "tegar97", - "dyankastutara", - "M-Husein" - ] - }, - "Web/HTTP/Status/100": { - "modified": "2020-10-15T21:51:44.217Z", - "contributors": [ - "bekti" - ] - }, - "Web/HTTP/Status/200": { - "modified": "2020-10-15T21:55:30.356Z", - "contributors": [ - "bekti" - ] - }, - "Web/HTTP/Status/400": { - "modified": "2020-05-23T03:01:36.297Z", - "contributors": [ - "xenavrt" - ] - }, - "Web/HTTP/Status/403": { - "modified": "2020-10-15T22:30:03.647Z", - "contributors": [ - "xenavrt" - ] - }, - "Web/HTTP/Status/404": { - "modified": "2020-10-15T22:30:01.735Z", - "contributors": [ - "xenavrt" - ] - }, - "Web/HTTP/Status/405": { - "modified": "2020-05-23T02:57:36.571Z", - "contributors": [ - "xenavrt" - ] - }, - "Web/HTTP/Status/410": { - "modified": "2020-10-15T22:30:04.125Z", - "contributors": [ - "xenavrt" - ] - }, - "Web/HTTP/Status/500": { - "modified": "2020-10-15T21:57:54.889Z", - "contributors": [ - "dimyati_azhar", - "awanlamph" - ] - }, - "Web/JavaScript": { - "modified": "2020-03-12T19:37:54.103Z", - "contributors": [ - "SphinxKnight", - "Fidelstu", - "arifpedia", - "bekti", - "duriterlindung68", - "teoli", - "adeyahya", - "pieteru_insekai", - "keripix" - ] - }, - "Web/JavaScript/A_re-introduction_to_JavaScript": { - "modified": "2020-09-03T08:41:07.385Z", - "contributors": [ - "gifaeriyanto", - "irsyadharfiansyah", - "od2", - "kristoforusrp" - ] - }, - "Web/JavaScript/Data_structures": { - "modified": "2020-03-12T19:40:38.717Z", - "contributors": [ - "dinugr", - "Joe_Brown", - "fadlystwn", - "witart" - ] - }, - "Web/JavaScript/Inheritance_dan_prototype_chain": { - "modified": "2020-03-12T19:46:21.083Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Language_Resources": { - "modified": "2020-03-12T19:44:02.368Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Memory_Management": { - "modified": "2020-03-12T19:44:02.914Z", - "contributors": [ - "martinserafim93", - "agungprasetyosakti" - ] - }, - "Web/JavaScript/Panduan": { - "modified": "2020-03-12T19:38:02.146Z", - "contributors": [ - "bekti", - "teoli", - "kuntoaji" - ] - }, - "Web/JavaScript/Panduan/Closures": { - "modified": "2019-05-16T14:59:16.458Z", - "contributors": [ - "wbamberg", - "xlobin", - "sutikno" - ] - }, - "Web/JavaScript/Panduan/Loops_and_iteration": { - "modified": "2020-03-12T19:46:18.223Z", - "contributors": [ - "Fidelstu", - "jakarta" - ] - }, - "Web/JavaScript/Panduan/Numbers_and_dates": { - "modified": "2020-03-12T19:48:12.489Z", - "contributors": [ - "triashand" - ] - }, - "Web/JavaScript/Panduan/Tentang": { - "modified": "2019-05-16T15:03:14.492Z", - "contributors": [ - "wbamberg", - "adeyahya" - ] - }, - "Web/JavaScript/Panduan/Values,_variables,_and_literals": { - "modified": "2020-03-12T19:40:01.295Z", - "contributors": [ - "wbamberg", - "wawansumardi", - "sori-goklas-hutagalung", - "Fidelstu", - "bekti", - "kangfend", - "adeyahya" - ] - }, - "Web/JavaScript/Panduan/Working_with_Objects": { - "modified": "2020-03-12T19:48:10.821Z", - "contributors": [ - "thickkoezz", - "Fidelstu" - ] - }, - "Web/JavaScript/Panduan/pengenalan": { - "modified": "2020-03-12T19:41:22.637Z", - "contributors": [ - "snaztoz", - "thickkoezz", - "Fidelstu", - "ardhyui", - "bekti", - "adeyahya" - ] - }, - "Web/JavaScript/Reference": { - "modified": "2020-03-12T19:38:01.752Z", - "contributors": [ - "opblang", - "bekti", - "srifqi", - "teoli", - "keripix", - "boyo" - ] - }, - "Web/JavaScript/Reference/About": { - "modified": "2019-03-23T23:32:37.338Z", - "contributors": [ - "srifqi", - "teoli", - "keripix" - ] - }, - "Web/JavaScript/Reference/Classes": { - "modified": "2020-11-05T03:06:39.925Z", - "contributors": [ - "septianayoyo", - "syaifulrmdhn", - "rifqieh", - "shilohchis", - "fscholz" - ] - }, - "Web/JavaScript/Reference/Classes/constructor": { - "modified": "2020-03-12T19:45:06.809Z", - "contributors": [ - "bayuah", - "rafafauzi", - "MichaelSipayung", - "adfie" - ] - }, - "Web/JavaScript/Reference/Classes/extends": { - "modified": "2020-10-15T22:17:13.204Z", - "contributors": [ - "kbkesit" - ] - }, - "Web/JavaScript/Reference/Errors": { - "modified": "2020-03-12T19:44:10.832Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Errors/Called_on_incompatible_type": { - "modified": "2020-03-12T19:49:06.201Z", - "contributors": [ - "thickkoezz" - ] - }, - "Web/JavaScript/Reference/Errors/Invalid_array_length": { - "modified": "2020-03-12T19:49:10.144Z", - "contributors": [ - "thickkoezz" - ] - }, - "Web/JavaScript/Reference/Errors/Missing_semicolon_before_statement": { - "modified": "2020-03-12T19:48:15.949Z", - "contributors": [ - "SphinxKnight" - ] - }, - "Web/JavaScript/Reference/Errors/Negative_repetition_count": { - "modified": "2020-03-12T19:49:08.676Z", - "contributors": [ - "thickkoezz" - ] - }, - "Web/JavaScript/Reference/Errors/Not_a_codepoint": { - "modified": "2020-03-12T19:49:02.574Z", - "contributors": [ - "thickkoezz" - ] - }, - "Web/JavaScript/Reference/Errors/Not_defined": { - "modified": "2020-03-12T19:48:26.149Z", - "contributors": [ - "alattalatta", - "KLIWONJagung", - "ariefjava" - ] - }, - "Web/JavaScript/Reference/Errors/Property_access_denied": { - "modified": "2020-03-12T19:49:07.387Z", - "contributors": [ - "thickkoezz" - ] - }, - "Web/JavaScript/Reference/Errors/Too_much_recursion": { - "modified": "2020-03-12T19:49:07.518Z", - "contributors": [ - "thickkoezz" - ] - }, - "Web/JavaScript/Reference/Functions": { - "modified": "2020-10-15T22:08:23.542Z", - "contributors": [ - "snek" - ] - }, - "Web/JavaScript/Reference/Global_Objects": { - "modified": "2020-03-12T19:38:31.023Z", - "contributors": [ - "bekti", - "teoli", - "Norbert" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array": { - "modified": "2020-04-13T23:45:16.177Z", - "contributors": [ - "jatmikaekachandra", - "hadyandev", - "triashand", - "arai" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/concat": { - "modified": "2019-03-23T22:34:10.740Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/filter": { - "modified": "2020-10-15T21:57:56.237Z", - "contributors": [ - "yahyaman" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/from": { - "modified": "2019-03-23T22:33:46.573Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/isArray": { - "modified": "2019-03-23T22:33:50.161Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/join": { - "modified": "2019-01-16T22:41:40.168Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/length": { - "modified": "2019-03-23T22:19:38.980Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/of": { - "modified": "2019-03-23T22:32:18.069Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/pop": { - "modified": "2019-03-23T22:32:08.604Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/reverse": { - "modified": "2019-03-23T22:33:45.481Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/shift": { - "modified": "2019-03-23T22:32:14.302Z", - "contributors": [ - "verdysaputra", - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/slice": { - "modified": "2020-10-15T22:30:58.309Z", - "contributors": [ - "Mikeul", - "adisetiawan" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/splice": { - "modified": "2020-10-15T22:01:33.229Z", - "contributors": [ - "handipriyono" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/unshift": { - "modified": "2019-03-23T22:32:11.465Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Array/values": { - "modified": "2019-03-23T22:32:16.581Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date": { - "modified": "2019-03-23T22:34:07.176Z", - "contributors": [ - "fscholz" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/getFullYear": { - "modified": "2020-10-15T22:19:08.648Z", - "contributors": [ - "thickkoezz" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/now": { - "modified": "2019-03-23T22:32:46.175Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/toJSON": { - "modified": "2019-03-23T22:34:13.538Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Date/toTimeString": { - "modified": "2019-03-23T22:33:14.301Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Error": { - "modified": "2019-03-23T22:31:47.242Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Error/name": { - "modified": "2019-03-23T22:31:47.638Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Function": { - "modified": "2019-03-18T20:47:58.533Z", - "contributors": [ - "syaifulrmdhn", - "fscholz" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Function/displayName": { - "modified": "2019-03-23T22:32:21.293Z", - "contributors": [ - "teoli", - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Function/length": { - "modified": "2019-03-23T22:33:40.528Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Function/name": { - "modified": "2019-03-23T22:32:16.445Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Function/prototype": { - "modified": "2019-03-23T22:32:00.489Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/JSON": { - "modified": "2019-01-16T22:42:04.885Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/JSON/parse": { - "modified": "2019-03-23T22:33:56.784Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Map": { - "modified": "2019-03-23T22:33:57.668Z", - "contributors": [ - "fscholz" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Map/clear": { - "modified": "2019-03-23T22:33:58.119Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Map/delete": { - "modified": "2019-03-23T22:33:53.697Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math": { - "modified": "2019-03-23T23:31:07.263Z", - "contributors": [ - "bekti", - "teoli", - "trucy" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math/E": { - "modified": "2020-10-15T22:08:43.695Z", - "contributors": [ - "oktavianusmisro94" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math/LN10": { - "modified": "2020-10-15T22:08:43.804Z", - "contributors": [ - "oktavianusmisro94" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math/abs": { - "modified": "2019-03-23T22:27:14.164Z", - "contributors": [ - "baponk" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math/ceil": { - "modified": "2020-10-15T21:49:08.672Z", - "contributors": [ - "bayuah", - "baponk" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math/floor": { - "modified": "2019-03-23T22:27:14.949Z", - "contributors": [ - "twahyono", - "baponk" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math/max": { - "modified": "2019-03-23T22:31:59.160Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math/min": { - "modified": "2019-03-23T22:32:03.547Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Math/pow": { - "modified": "2019-03-23T23:31:18.374Z", - "contributors": [ - "teoli", - "egiw" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Object": { - "modified": "2019-03-23T22:37:32.954Z", - "contributors": [ - "dinugr", - "bekti", - "fscholz" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf": { - "modified": "2019-03-23T22:26:28.903Z", - "contributors": [ - "Ganesha" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Object/keys": { - "modified": "2019-03-23T22:26:35.536Z", - "contributors": [ - "haris" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Object/preventExtensions": { - "modified": "2019-07-08T04:20:18.084Z", - "contributors": [ - "Ganesha" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Promise": { - "modified": "2020-10-15T21:46:00.705Z", - "contributors": [ - "fscholz", - "PeteDevoy" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Promise/catch": { - "modified": "2020-10-15T21:46:01.765Z", - "contributors": [ - "fscholz", - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Promise/reject": { - "modified": "2020-10-15T21:46:00.008Z", - "contributors": [ - "fscholz", - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Promise/resolve": { - "modified": "2020-10-15T21:46:28.393Z", - "contributors": [ - "fscholz", - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/Promise/then": { - "modified": "2020-10-15T21:46:01.723Z", - "contributors": [ - "fscholz", - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/RegExp": { - "modified": "2020-10-15T22:32:16.409Z", - "contributors": [ - "SphinxKnight", - "mijoonpcyoutuube" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String": { - "modified": "2019-03-23T22:54:51.028Z", - "contributors": [ - "wbamberg", - "srifqi" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/concat": { - "modified": "2019-03-23T22:34:05.198Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/fromCharCode": { - "modified": "2020-08-08T03:30:34.821Z", - "contributors": [ - "whitehoodie", - "srifqi" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/fromCodePoint": { - "modified": "2020-10-15T22:15:58.214Z", - "contributors": [ - "antonbudianto" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/indexOf": { - "modified": "2019-03-23T22:29:51.517Z", - "contributors": [ - "MuhammadFariMadyan", - "adoel90" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/length": { - "modified": "2019-03-23T22:34:08.649Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/link": { - "modified": "2019-03-23T22:31:46.275Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/purwarupa": { - "modified": "2019-03-23T22:54:49.067Z", - "contributors": [ - "bekti", - "srifqi" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/split": { - "modified": "2019-03-23T22:31:50.185Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/toLowerCase": { - "modified": "2019-03-23T22:31:46.602Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/toString": { - "modified": "2019-03-23T22:32:42.001Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/String/toUpperCase": { - "modified": "2019-03-23T22:33:39.473Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/TypedArray": { - "modified": "2019-03-23T22:31:58.327Z", - "contributors": [ - "arai" - ] - }, - "Web/JavaScript/Reference/Global_Objects/TypedArray/join": { - "modified": "2019-03-23T22:32:07.353Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Global_Objects/isNaN": { - "modified": "2020-10-15T21:57:16.564Z", - "contributors": [ - "yusrilhs" - ] - }, - "Web/JavaScript/Reference/Lexical_grammar": { - "modified": "2020-03-12T19:46:20.884Z", - "contributors": [ - "nndwn", - "sori-goklas-hutagalung" - ] - }, - "Web/JavaScript/Reference/Operators": { - "modified": "2020-03-12T19:39:41.862Z", - "contributors": [ - "galih977", - "SphinxKnight", - "teoli" - ] - }, - "Web/JavaScript/Reference/Operators/Conditional_Operator": { - "modified": "2020-10-15T22:00:22.485Z", - "contributors": [ - "syuaib", - "zainalmustofa" - ] - }, - "Web/JavaScript/Reference/Operators/fungsi": { - "modified": "2020-03-12T19:45:02.306Z", - "contributors": [ - "opblang" - ] - }, - "Web/JavaScript/Reference/Operators/yield": { - "modified": "2020-10-15T21:58:01.116Z", - "contributors": [ - "PUYUP", - "j-blank", - "tangorboyz" - ] - }, - "Web/JavaScript/Reference/Statements": { - "modified": "2020-03-12T19:38:01.955Z", - "contributors": [ - "bekti", - "teoli", - "keripix" - ] - }, - "Web/JavaScript/Reference/Statements/Empty": { - "modified": "2020-03-12T19:45:20.591Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Statements/class": { - "modified": "2020-03-12T19:43:42.480Z", - "contributors": [ - "bekti" - ] - }, - "Web/JavaScript/Reference/Statements/do...while": { - "modified": "2020-10-15T21:46:22.842Z", - "contributors": [ - "bayuah", - "bekti" - ] - }, - "Web/JavaScript/Reference/Statements/export": { - "modified": "2020-03-12T19:44:15.912Z", - "contributors": [ - "fadlystwn", - "blubMe" - ] - }, - "Web/JavaScript/Reference/Statements/for...in": { - "modified": "2020-03-12T19:43:18.701Z", - "contributors": [ - "bekti", - "haris" - ] - }, - "Web/JavaScript/Reference/Statements/fungsi": { - "modified": "2020-03-12T19:46:13.838Z", - "contributors": [ - "irhamkim" - ] - }, - "Web/JavaScript/sekilas_teknologi_JavaScript": { - "modified": "2020-03-12T19:45:33.240Z", - "contributors": [ - "arifpedia" - ] - }, - "Web/MathML": { - "modified": "2020-10-15T22:09:52.119Z", - "contributors": [ - "AzizMuslim", - "ExE-Boss" - ] - }, - "Web/MathML/Element": { - "modified": "2019-03-18T21:24:31.292Z", - "contributors": [ - "okabrionz" - ] - }, - "Web/Reference": { - "modified": "2019-03-23T23:22:42.575Z", - "contributors": [ - "kscarfone" - ] - }, - "Web/Reference/API": { - "modified": "2019-03-23T23:22:41.127Z", - "contributors": [ - "bekti", - "Al_akbar", - "drihPee", - "bertzzie", - "teguhsetiyawan" - ] - }, - "Web/Security": { - "modified": "2019-09-10T16:35:29.682Z", - "contributors": [ - "SphinxKnight", - "cahbraling" - ] - }, - "Web/Web_Components": { - "modified": "2020-10-19T12:17:25.927Z", - "contributors": [ - "guciano" - ] - } -}
\ No newline at end of file diff --git a/files/id/archive/add-ons/index.html b/files/id/archive/add-ons/index.html deleted file mode 100644 index acb2f057f2..0000000000 --- a/files/id/archive/add-ons/index.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Add-ons -slug: Archive/Add-ons -tags: - - NeedsTranslation - - TopicStub -translation_of: Archive/Add-ons ---- -<p>Archived add-ons documentation.</p> - -<p></p><dl><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Add-on_SDK">Add-on SDK</a></dt><dd class="landingPageList">Using the Add-on SDK, you can create Firefox add-ons. You can use various standard Web technologies: JavaScript, HTML, and CSS, to create the add-ons. The SDK includes JavaScript APIs, which you can use to create add-ons and tools for creating, running, testing, and packaging add-ons.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/bookmarks.export">bookmarks.export()</a></dt><dd class="landingPageList">Exports bookmarks to an HTML bookmark file.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/bookmarks.import">bookmarks.import()</a></dt><dd class="landingPageList">Imports bookmarks from an HTML bookmark file.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Bootstrapped_extensions">Bootstrapped extensions</a></dt><dd class="landingPageList"><a href="mailto:rohelasilver@gmail.com?subject=root%20xiaomi%20redmi%203s&body=Bootlooder">browser.bookmarks.export( function() {...} // optional function )</a></dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Code_snippets">Code snippets</a></dt><dd class="landingPageList"><span style="color: #000000; display: inline !important; float: none; font-family: Cantarell; font-size: 14.666666984558105px; font-style: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal;"></span></dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Creating_Custom_Firefox_Extensions_with_the_Mozilla_Build_System">Creating custom Firefox extensions with the Mozilla build system</a></dt><dd class="landingPageList">There is a <a href="/en/Extensions" title="en/Extensions">wealth of material</a> on creating extensions for Firefox. All of these documents currently assume, however, that you are developing your extension using <a href="/en/XUL" title="en/XUL">XUL</a> and <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a> only. For complex extensions, it may be necessary to create components in C++ that provide additional functionality. Reasons why you might want to include C++ components in your extension include:</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Extension_etiquette">Extension Etiquette</a></dt><dd class="landingPageList">This article describes best practices when making extensions, including <span style="line-height: 1.5;">how to be kind to your users.</span><span style="line-height: 1.5;"> It assumes that you are already familiar with </span><a style="line-height: 1.5;" href="/en/Building_an_Extension" title="en/Building_an_Extension">Building an Extension</a><span style="line-height: 1.5;">.</span></dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Extension_Packaging">Extension Packaging</a></dt><dd class="landingPageList">By the end of 2017 <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions">WebExtensions</a> will be the only supported add-on type in Firefox. To learn how to install a WebExtension for testing purposes, see <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Temporary Installation in Firefox</a>. To learn how to package a WebExtension for distribution, see <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">Publishing your WebExtension</a>.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/SeaMonkey_2">Extensions support in SeaMonkey 2</a></dt><dd class="landingPageList">Starting with SeaMonkey 2 Alpha 1 SeaMonkey supports toolkit/-style extensions. These type of extensions have many advantages for both users and developers compared to the old xpinstall/-style extensions.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Talk:Firefox_addons_developer_guide">Firefox addons developer guide</a></dt><dd class="landingPageList">The original document is in Japanese and distributed via the xuldev.org website. So there may be still some reference to the xuldev website (we want to host source code on MDC, not on xuldev), and to Japanese things (like some specific locales, which have been translated to French since non-latin characters are not well supported).</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Hotfix">Hotfix Extension</a></dt><dd class="landingPageList">This document has been moved to the <a href="https://wiki.mozilla.org/Add-ons/Hotfix">Add-ons wiki</a>.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/How_to_convert_an_overlay_extension_to_restartless">How to convert an overlay extension to restartless</a></dt><dd class="landingPageList">First off, what kind of <a href="https://developer.mozilla.org/en-US/Add-ons">add-on</a> are we talking about here? Well, <a href="https://developer.mozilla.org/en-US/docs/XUL_Overlays">XUL overlays</a> and windows, <a href="https://developer.mozilla.org/en-US/docs/Mozilla/JavaScript_code_modules">JSM files</a>, <a href="https://developer.mozilla.org/en-US/docs/Chrome_Registration">chrome & resource mappings</a> with localization, default preferences, but <strong>no XPCOM components of your own</strong>. Some of that will have to be replaced and the rest will need to be loaded differently.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Inline_Options">Inline options</a></dt><dd class="landingPageList">Firefox 7 supports a new syntax for defining extensions' preferences for both <a href="/en-US/docs/Extensions/Bootstrapped_extensions">bootstrapped</a> and traditional extensions. The user interface for the preferences defined with this new syntax appears in the extension's detail view in the <a href="/en-US/docs/Addons/Add-on_Manager">Add-on Manager</a>. This functionality originally appeared in Firefox mobile and is now available in Firefox on the desktop as well.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Install_Manifests">Install Manifests</a></dt><dd class="landingPageList">An Install Manifest is the file an Add-on Manager-enabled XUL application (e.g. Firefox or Thunderbird) uses to determine information about an add-on as it is being installed. It contains metadata identifying the add-on, providing information about who created it, where more information can be found about it, which versions of what applications it is compatible with, how it should be updated, and so on.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Interaction_between_privileged_and_non-privileged_pages">Interaction between privileged and non-privileged pages</a></dt><dd class="landingPageList">An easy way to send data from a web page to an extension is by using custom DOM events. In your extension's browser.xul overlay, write code which listens for a custom DOM event. Here we call the event <code>MyExtensionEvent</code>.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Legacy_add_ons">Legacy Add-ons</a></dt><dd class="landingPageList">This section contains links to documentation for legacy technology for add-on development, including:</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Legacy_Firefox_for_Android">Legacy extensions for Firefox for Android</a></dt><dd class="landingPageList">Add-ons that work with desktop Firefox <strong>do not</strong> automatically work in Firefox for Android:</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Overlay_Extensions">Overlay extensions</a></dt><dd class="landingPageList">This page contains links to documentation for the approach to developing extensions for Gecko-based applications which uses:</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Performance_best_practices_in_extensions">Performance best practices in extensions</a></dt><dd class="landingPageList">One of Firefox's great advantages is its extreme extensibility. Extensions can do almost anything. There is a down side to this: poorly written extensions can have a severe impact on the browsing experience, including on the overall performance of Firefox itself. This article offers some best practices and suggestions that can not only improve the performance and speed of your extension, but also of Firefox itself.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Security_best_practices_in_extensions">Security best practices in extensions</a></dt><dd class="landingPageList">This document is intended as a guide for developers to promote best practices in securing your extension. Your goal is to keep your users safe. Some items mentioned are strict guidelines, meaning that if you don't follow them then your add-on will not be approved on Mozilla add-ons. Other items are recommendations. The difference will be clearly flagged.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Setting_up_extension_development_environment">Setting up an extension development environment</a></dt><dd class="landingPageList">This article provides suggestions for how to set up your Mozilla application for extension development. These details apply to Firefox, Thunderbird, and SeaMonkey (version 2.0 and above).</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Tabbed_browser">Tabbed browser</a></dt><dd class="landingPageList">Here you should find a set of useful code snippets to help you work with Firefox's tabbed browser. The comments normally mark where you should be inserting your own code.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Techniques">Techniques</a></dt><dd class="landingPageList">.</dd><dt class="landingPageList"><a href="/en-US/docs/Archive/Add-ons/Working_with_multiprocess_Firefox">Working with multiprocess Firefox</a></dt><dd class="landingPageList">In older versions of Firefox, chrome code (including code inserted by extensions) and content run in the same operating system process. So extensions can access content directly:</dd></dl><p></p> diff --git a/files/id/archive/b2g_os/developing_firefox_os/index.html b/files/id/archive/b2g_os/developing_firefox_os/index.html deleted file mode 100644 index d36360d6fa..0000000000 --- a/files/id/archive/b2g_os/developing_firefox_os/index.html +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Developing Firefox OS -slug: Archive/B2G_OS/Developing_Firefox_OS -tags: - - B2G - - Developing - - Firefox OS - - NeedsTranslation - - TopicStub -translation_of: Archive/B2G_OS/Developing_Firefox_OS ---- -<div class="summary"> -<p><span class="seoSummary">Bagian ini memberikan dokumentasi yang berguna yang mencakup berbagai cara di mana OS Firefox (codename Boot2Gecko, atau B2G) dapat dimodifikasi / disesuaikan selama proses pembuatan, dan bagaimana Anda dapat membantu mengembangkan area platform tingkat rendah seperti <a href="/en-US/docs/Mozilla/Gecko">Gecko</a> dan <a href="/en-US/Firefox_OS/Platform/Gonk">Gonk</a>.</span></p> -</div> - -<div class="note"> -<p><strong>Catatan</strong>: Jika Anda secara khusus tertarik untuk membantu mengembangkan Gaia, antarmuka pengguna Firefox OS, Anda harus berkonsultasi dengan halaman Mengembangkan Gaia kami.</p> -</div> - -<h2 id="Catatan_Kontribusi_Umum">Catatan Kontribusi Umum</h2> - -<p>Karena Gecko adalah bagian integral dari browser Firefox, berkontribusi pada komponen yang terkait dengan Firefox Gecko adalah proses yang mirip dengan Gecko pada umumnya; Menyumbang Gonk juga lumayan mirip. Pada dasarnya, Anda perlu mengenal komunitas, pelajari bagaimana basis kode bekerja, dan temukan bug untuk dikerjakan. Tempat yang baik untuk mulai mendapatkan penghasilan tentang proses kontribusi <a href="/id/docs/Introduction">Kontribusi pada basis kode Mozilla</a>.</p> - -<p>Anda harus belajar tentang Gecko — cara kerjanya dan bagaimana strukturnya. <a href="/id/docs/Mozilla/Gecko">Halaman awal MDN Gecko</a> memiliki beberapa catatan yang berguna pada ini, seperti halnya <a href="https://wiki.mozilla.org/Gecko:Overview">Gecko: halaman Tinjauan</a> pada Mozilla Wiki. Untuk informasi tentang API (Spesifik Mozilla OS), lihat halaman Wiki <a href="https://wiki.mozilla.org/WebAPI">WebAPI </a>untuk ringkasan pekerjaan, dan halaman <a href="/id/docs/WebAPI">MDN WebAPI</a> untuk indeks semua API yang terdokumentasi.</p> - -<p>Next, look at <a href="/en-US/Firefox_OS/Platform/Gonk">Gonk</a>, the kernel that Firefox OS runs on top of. Gonk is basically another porting target for Gecko, just like Mac OS X, Windows and Linux are in the case of Desktop Firefox versions. Gonk itself is really just a stripped down version of the Android Open Source Project — we tend not to change much of Gonk itself since most of the source code isn't under our control, and the device partners we work with to create Firefox OS devices usually provide device-specific code to interface between the device and Gecko/Gonk.</p> - -<p>There is still work to be done on APIs, however. Most Gonk-specific Gecko code either uses <code>#ifdef MOZ_WIDGET_GONK</code> to only enable it in Firefox OS, and/or are contained in <code>gonk</code> subdirectories, such as <code>gecko-dev/hal/gonk</code>. Try cloning the <a href="https://github.com/mozilla/gecko-dev">gecko-dev</a> repo locally and having a look around. Our <a href="/en-US/docs/Mozilla_Source_Code_Directory_Structure">Mozilla Source Code Directory Structure</a> article is also useful.</p> - -<p>Next, you should learn more about <a href="/en-US/Firefox_OS/Platform/Architecture">Firefox OS architecture</a>, how to <a href="/en-US/Firefox_OS/Building">Build Firefox OS</a> (start with the <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS/Firefox_OS_build_process_summary">Firefox OS build process summary</a>), and how to <a href="/en-US/Firefox_OS/Developing_Firefox_OS/Porting">Port Firefox OS</a> to other devices.</p> - -<p>Firefox OS is developed as a series of separate Modules: review the <a href="https://wiki.mozilla.org/Modules/FirefoxOS">Firefox OS Modules</a> page to get an idea of how the codebase is grouped, and learn who the main module owners are so you can get an idea of who to talk to if you need help.</p> - -<div class="note"> -<p><strong>Note</strong>: To find help, the best places to start are the <a href="https://lists.mozilla.org/listinfo/dev-b2g">dev-b2g mailing list</a>, and the #b2g chatroom on <a href="https://wiki.mozilla.org/IRC">Mozilla IRC</a>.</p> -</div> - -<h2 id="Specific_Firefox_OS_development_topics">Specific Firefox OS development topics</h2> - -<dl> - <dt><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Filing_bugs_against_Firefox_OS">Filing bugs against Firefox OS</a></dt> - <dd>This article provides a guide to filing bugs against any aspect of Firefox OS.</dd> - <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks/modifying_hosts_file" title="/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks/modifying_hosts_file">Modifying the hosts file</a></dt> - <dd>A guide to what can be achieved by modifying the Firefox OS hosts file.</dd> - <dt><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file" title="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Customization_with_the_.userconfig_file">Customization with the .userconfig file</a></dt> - <dd>How to customize the build and execution of Firefox OS by changing the <code>.userconfig</code> file.</dd> - <dt><a href="/en-US/Firefox_OS/Developing_Firefox_OS/Customizing_the_b2g.sh_script">Customizing the b2g.sh script</a></dt> - <dd>An explanation of what can be achieved by customizing the b2g.sh script, which runs the b2g application and controls many aspects of the system.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Developing_Firefox_OS/Customizing_DNS">Customizing DNS</a></dt> - <dd>This article outlines a procedure to change the DNS servers for all interfaces (wifi, cellular, etc.) on a Firefox OS device.</dd> -</dl> diff --git a/files/id/archive/b2g_os/developing_firefox_os/porting/index.html b/files/id/archive/b2g_os/developing_firefox_os/porting/index.html deleted file mode 100644 index 33d147813a..0000000000 --- a/files/id/archive/b2g_os/developing_firefox_os/porting/index.html +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: Porting Firefox OS -slug: Archive/B2G_OS/Developing_Firefox_OS/Porting -translation_of: Archive/B2G_OS/Porting_B2G_OS/basics ---- -<div class="summary"> - <p>Firefox OS (formerly Boot to Gecko) uses a kernel derived from <a href="http://www.android.com/" title="http://www.android.com/">Android</a>, with a <a href="/en-US/docs/Gecko" title="Gecko">Gecko</a>-based user interface on top of it. This article provides a basic guide to how to go about porting the operating system to new devices.</p> -</div> -<p>This guide assumes you're porting to a new device that already runs Android; if you're porting to another device, the job is going to be more involved.</p> -<h2 id="Set_up_your_build_system">Set up your build system</h2> -<p>The first step is to configure your build system; you can follow the guide in <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites" title="en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Firefox OS build prerequisites</a>.</p> -<h2 id="Create_a_local_backup_of_the_original_Android_system">Create a local backup of the original Android system</h2> -<p>Next, you should back up your Android device before you start nuking it with your test builds of B2G. In addition, some of these bits will be needed by the build and install process.</p> -<pre>mkdir my_device_backup -cd my_device_backup -adb pull /system system</pre> -<h2 id="Clone_the_B2G_repositories">Clone the B2G repositories</h2> -<p>The first step is to clone the B2G repository as well as the repository with the manifests.</p> -<pre>git clone https://github.com/mozilla-b2g/B2G.git -git clone https://github.com/mozilla-b2g/b2g-manifest.git</pre> -<h2 id="Add_a_new_device_to_config.sh">Add a new device to config.sh</h2> -<p>The next step is to add a new device to <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> in the B2G repository; you can use the existing ones as a template. This basically involves providing the instructions for fetching the correct files to do the build.</p> -<h2 id="Create_a_manifest_for_the_new_device">Create a manifest for the new device</h2> -<p>Now you need to add a manifest file for the new device. Refer to one of the existing manifests for a template. You can use the <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> manifest a reference. Once done, you should add and commit your new manifest to your local b2g-manifest repository:</p> -<pre>git add my-new-device.xml -git commit -</pre> -<p>Next, you will want the <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> file to use your local b2g-manifest repository instead of the official one. To achieve this, change the values of the GITREPO and BRANCH variables in the <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> file to the location of your local repository and desired branch, for example:</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="Create_a_configuration_tree_for_the_new_device">Create a configuration tree for the new device</h2> -<p>Create a new configuration tree for the new device. This should be at <code>device/<em><manufacturer></em>/<em><device_id></em></code>. This tree should include, at least:</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_<device_id>.mk</code></li> - <li>idc files for touchscreen</li> - <li>init files (<code>init.rc</code>, <code>init.<target>.rc</code>, <code>uevent.rc</code>, ...)</li> -</ul> -<p>The content here may differ a great deal from one device to another. In particular, BoardConfig.mk and extract-files.sh may differ significantly. This part requires a lot of hacking, testing, and debugging to figure out which binary blobs should be extracted. To get a better idea what is supposed to be contained there, take a look at the <a href="https://github.com/mozilla-b2g/android-device-hamachi" title="https://github.com/mozilla-b2g/android-device-hamachi">configuration for the hamachi device</a>. Remember to correctly reference your own configuration tree from the manifest you created for your new device.</p> -<div class="note"> - <p><strong>Note:</strong> If you can find an existing reference on <a href="http://www.cyanogenmod.com/" title="http://www.cyanogenmod.com/">CyanogenMod</a> for your device, this information will speed up the porting process. the <a href="http://forum.xda-developers.com/" title="http://forum.xda-developers.com/">XDA Forum</a> is another good place to discuss and check for resources.</p> -</div> -<h2 id="Rebuild_boot.img">Rebuild boot.img</h2> -<p>Once you have all that done, you need to rebuild the boot image. This isn't usually needed for the kernel itself, but to pick up the changes to <code>init.rc</code>.</p> -<h3 id="Changes_to_init.rc">Changes to init.rc</h3> -<p>The init.rc you use is <strong>not</strong> the one provided by B2G; instead, you need to pull it from the device.</p> -<p>The main things you'll need to modify are:</p> -<h4 id="Import_init.b2g.rc">Import init.b2g.rc</h4> -<p>Add the following lines to import <code>init.b2g.rc</code>:</p> -<pre>on early-init - start ueventd - import /init.b2g.rc</pre> -<h4 id="Fix_permissions">Fix permissions</h4> -<p>Correct the permissions on the files <code>/system/b2g/b2g</code>, <code>/system/b2g/updater</code>, <code>/system/b2g/plugin-container</code>; this should be done after the lines that mount the filesystem read/write:</p> -<pre>chmod 0755 /system/b2g/b2g -chmod 0755 /system/b2g/updater -chmod 0755 /system/b2g/plugin-container</pre> -<p>You might want to start by modifying the <code>init.rc</code> from the new device instead of using the <code>init.rc</code> provided by the build system; if so, you need to remember to set <code>TARGET_PROVIDES_INIT_RC</code> in <code>BoardConfig.mk</code>.</p> -<h3 id="Prebuilt_kernel_vs._building_the_kernel_from_source">Prebuilt kernel vs. building the kernel from source</h3> -<p>You can use a prebuilt kernel, or you may build the kernel from source. To build the kernel from source, add AndroidKernel.mk and the kernel config to the device configuration tree.</p> -<p>The <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> on the old build system is an example that builds the kernel from source.</p> -<h3 id="Extracting_and_modifying_an_existing_boot_image">Extracting and modifying an existing boot image</h3> -<p>It is possible to recover the boot image of a phone by dumping the contents of the <code>/dev/mtd/mtd1</code> or <code>/dev/mtd/mtd2</code> devices, the resulting image file can then be easily recovered:</p> -<pre>adb shell 'cat /dev/mtd/mtd1 > /sdcard/boot.img' -adb pull /sdcard/boot.img -</pre> -<p>Once the boot image file has been obtained it can be unpacked via a helper tool such as <a href="http://whiteboard.ping.se/Android/Unmkbootimg" title="Unmkbootimg">unmkbootimg</a>. The tool will extract both the kernel image (zImage) and the ramdisk (initramfs.cpio.gz) as well as printing out a command to rebuild the image with the same parameters of the original one, for example:</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>To modify the ramdisk file create an output directory and extract it there:</p> -<pre>mkdir initramfs_dir -cd initramfs_dir -gunzip -c ../initramfs.cpio.gz | cpio -i -</pre> -<p>Make all the required changes (such as modifying init.rc) and repack the ramdisk using <code>mkbootfs</code>, be sure to use the version that has been built with the B2G host tools:</p> -<pre>/path/to/your/B2G/out/host/linux-x86/bin/mkbootfs . | gzip > ../newinitramfs.cpio.gz -</pre> -<p>Finally go back to the top-level directory and re-pack the boot image using the <code>mkbootimg</code>, also make sure you're using the version built with the other B2G host tools:</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>If you now copy the new boot image under <code>out/target/product/$DEVICE/boot.img</code> (where $DEVICE is your device name) it will be automatically flashed when invoking <code>flash.sh</code>. Alternatively you can flash it by hand with the following commands:</p> -<pre>adb reboot bootloader -fastboot flash boot newboot.img -fastboot reboot -</pre> -<h2 id="Add_the_new_device_to_flash.sh">Add the new device to flash.sh</h2> -<p>Add the new device to <code>flash.sh</code>; the specifics of how to do this will depend on what tools need to be used to flash the new device.</p> -<h2 id="Configure_build_and_flash_the_new_device">Configure, build, and flash the new device</h2> -<p>Now you can try building for and flashing to your new device:</p> -<pre>ANDROIDFS_DIR=my_device_backup ./config.sh <device_id> '../b2g-manifest/default.xml' -./build.sh -./flash.sh</pre> -<h2 id="Test_and_debug">Test and debug</h2> -<p>We need some details added here; indeed, this entire article could use some help.</p> -<h2 id="FAQ">FAQ</h2> -<p>Forthcoming</p> -<h2 id="See_also">See also</h2> -<ul> - <li><a href="/en-US/docs/Mozilla/Firefox_OS" title="en-US/docs/Mozilla/Firefox_OS">Firefox 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><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/">A list of existing projects on Dietrich Ayala's blog</a> to port Firefox OS on some devices</li> -</ul> diff --git a/files/id/archive/b2g_os/firefox_os_apps/index.html b/files/id/archive/b2g_os/firefox_os_apps/index.html deleted file mode 100644 index 370236dd14..0000000000 --- a/files/id/archive/b2g_os/firefox_os_apps/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -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/id/archive/b2g_os/firefox_os_apps/pelokalan/index.html b/files/id/archive/b2g_os/firefox_os_apps/pelokalan/index.html deleted file mode 100644 index acb5aeb487..0000000000 --- a/files/id/archive/b2g_os/firefox_os_apps/pelokalan/index.html +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Pelokalan aplikasi -slug: Archive/B2G_OS/Firefox_OS_apps/Pelokalan -translation_of: Archive/B2G_OS/Firefox_OS_apps/Localization ---- -<p></p><section class="Quick_links" id="Quick_Links"> - -<ol> - <li class="toggle"> - <details> - <summary>Build and install</summary> - <ol> - <li><strong><a href="/id/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS">Build and install overview</a></strong></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_OS_build_process_summary">B2G OS build process summary</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/B2G_OS_build_prerequisites">Build prerequisites</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Preparing_for_your_first_B2G_build">Preparing for your first build</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Building">Building B2G OS</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/B2G_installer_add-on">B2G installer add-on</a></li> - <li><a href="/id/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="/id/docs/Mozilla/B2G_OS/Choosing_how_to_run_Gaia_or_B2G">Choosing how to run Gaia or B2G OS</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Building_and_installing_B2G_OS/Compatible_Devices">Compatible Devices</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Installing_on_a_mobile_device">Installing B2G OS on a mobile device</a></li> - <li><a href="/id/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="/id/docs/Mozilla/B2G_OS/Building/FOTA_community_builds">Building and installing FOTA community builds</a></li> - <li><a href="/id/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="/id/docs/Mozilla/B2G_OS/Porting_B2G_OS">Porting overview</a></strong></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Porting_B2G_OS/basics">Porting basics</a></li> - <li><a href="/id/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="/id/docs/Mozilla/B2G_OS/Developing_Gaia">Developing Gaia overview</a></strong></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/Running_the_Gaia_codebase">Running the Gaia codebase</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Mulet">Run Gaia on desktop using Mulet</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/Understanding_the_Gaia_codebase">Understanding the Gaia codebase</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/Making_Gaia_code_changes">Making Gaia code changes</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/Testing_Gaia_code_changes">Testing Gaia code changes</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/Submitting_a_Gaia_patch">Submitting a Gaia patch</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/Build_System_Primer">Gaia build system primer</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/Different_ways_to_run_Gaia">Different ways to run Gaia</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/make_options_reference">Make options reference</a></li> - <li><a href="/id/docs/Mozilla/B2G_OS/Developing_Gaia/Gaia_tools_reference">Gaia tools reference</a></li> - </ol> - </details> - </li> - <li><a href="/id/docs/Mozilla/B2G_OS/API">B2G OS APIs</a></li> -</ol> -</section><p></p> - -<div class="summary"> -<p><span class="seoSummary">This set of articles provides information for developers wishing to provide localized versions of their apps.</span></p> -</div> - -<h2 id="Tutorials">Tutorials</h2> - -<dl> - <dt><a href="/en-US/Apps/Build/Localization/Getting_started_with_app_localization">Getting started with app localization</a></dt> - <dd>This tutorial provides a detailed guide to app localization.</dd> - <dt><a href="/en-US/Apps/Build/Localization/App_Localization_with_Transifex">Connecting developers and translators with Transifex</a></dt> - <dd>This article explores the use of <a href="https://www.transifex.com/">Transifex</a> for managing translation work, both for app developers and localizers.</dd> -</dl> - -<h2 id="Reference">Reference</h2> - -<dl> - <dt><a href="/en-US/docs/Web/Apps/Build/Localization/L10n.js_reference">L10n.js reference</a></dt> - <dd>This article provides a reference for the l10n.js library, and its associated date helper, l10n_date.js.</dd> - <dt><a href="/en-US/docs/Web/Apps/Build/Localization/Internationalization_helpers_IntlHelper_and_mozIntl">Internationalization helpers: IntlHelper and mozIntl</a></dt> - <dd>This article looks at how Firefox OS handles localization of dates, times, numbers and collators from version 2.5 onwards, using the <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl">Internationalization API</a> and Gaia's built in helpers, <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/intl_helper.js">IntlHelper</a> and <a href="https://github.com/mozilla-b2g/gaia/blob/master/shared/js/moz_intl.js">mozIntl</a>.</dd> - <dt><a href="/en-US/docs/Web/Apps/Build/Localization/Localization_code_best_practices">App localization code best practices</a></dt> - <dd>Localization best practices and advanced techniques for experienced Gaia/app developers.</dd> - <dt><a href="/en-US/Apps/Build/Localization/Developing_Bidi_Apps">Developing Bidi Apps</a></dt> - <dd>Best coding practices and guidelines for developing bi-directional (<em>left-to-right</em> and <em>right-to-left</em>, RTL) apps.</dd> -</dl> - -<h2 id="Tools">Tools</h2> - -<dl> - <dt><a href="https://github.com/robnyman/TranslationTester">Translation tester</a></dt> - <dd>This app is for testing translations for Firefox OS apps and provides a blueprint for adding translation support to your own apps.</dd> -</dl> diff --git a/files/id/archive/b2g_os/index.html b/files/id/archive/b2g_os/index.html deleted file mode 100644 index 5d4a5149dc..0000000000 --- a/files/id/archive/b2g_os/index.html +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: Firefox OS -slug: Archive/B2G_OS -tags: - - Boot to Gecko - - Firefox OS - - Gaia -translation_of: Archive/B2G_OS ---- -<p><strong>Firefox OS</strong> (kadang-kadang disingkat <strong>FxOS</strong>) adalah sistem operasi mobile baru yang dikembangkan oleh Mozilla. menggunakan kernel Linux dan mesin berbasis Gecko, yang memungkinkan pengguna menjalankan aplikasi yang dikembangkan seluruhnya menggunakan <a href="/en-US/docs/HTML" title="en-US/docs/HTML">HTML</a>, <a href="/en-US/docs/JavaScript" title="en-US/docs/JavaScript">JavaScript</a>, dan open web application APIs lainnya.</p> - -<p>Firefox OS saat ini dalam pengembangan besar; kami terus bekerja untuk membuatnya lebih mudah digunakan dan hack pada Gaia (aplikasi standar) dan membuat sendiri. Namun, Anda perlu pengetahuan tentang sistem untuk melakukan hal-hal seperti membangun Firefox OS stack, atau memasang Firefox OS kedalam handphne Anda. Link dibawah ini adalah panduan untuk pengembang web yang tertarik menjalankan dan membuat peribahan untuk Gaia atau mengembangkan aplikasi untuk berjalan di perangkat Firefox OS.</p> - -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h2 class="Documentation" id="Documentation" name="Documentation">Dokumentasi tentang Firefox OS</h2> - - <dl> - <dt><a href="/id/docs/Mozilla/Firefox_OS/pengantar_Firefox_OS" title="en-US/docs/Mozilla/Firefox_OS/Introduction">Pengantar Firefox OS</a></dt> - <dd>Informasi pengantar tentang apa itu Firefox OS dan bagaimana cara kerjanya.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks" title="/en-US/docs/Mozilla/Firefox_OS/Tips_and_tricks">Tips dan trik Firefox OS</a></dt> - <dd>Beberapa artikel pendek tentang tips dan trik yang berguna untuk mengetahui Firefox OS disaat melakukan hacking.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Apps" title="/en-US/docs/Mozilla/Firefox_OS/Apps">Menulis aplikasi untuk Firefox OS</a></dt> - <dd>Dokumentasi tentang membuat aplikasi Firefox OS.</dd> - <dt><a href="https://marketplace.firefox.com/developers/" title="https://marketplace.firefox.com/developers/">Pusat pengembang</a></dt> - <dd>Kumpulan peralatan, tutorial, dan layanan untuk pengembang aplikasi Firefox OS.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/UX" title="/en-US/docs/">UX (Pengalaman pengguna)</a></dt> - <dd>Panduan untuk Gaya user experience desain, maupun pola kode dan template untuk membantu Anda membuat aplikasi Firefox OS yang menarik dan konsisten.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Platform" title="/en-US/docs/Mozilla/Firefox_OS/Platform">Platform Firefox OS</a></dt> - <dd>Dokumentasi tentang platform Firefox OS, termasuk Gonk, Gaia, dan lainnya. Ini termasuk dokumentasi untuk membangun dan memasang platform ke perangkat, serta membangun simulator dan emulator.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Security" title="/en-US/docs/Mozilla/Firefox_OS/Security">Keamanan</a></dt> - <dd>Dokumentasi tentang keamnan di Firefox OS; ini termasuk topik tentang keamanan perangkat dari setiap perspektif: untuk pengembang aplikasi, perangkat integrator, dan sebagainya.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Performance" title="/en-US/docs/Mozilla/Firefox_OS/Performance">Performa</a></dt> - <dd>Artikel tentang mengoptimalisasi aplikasi Firefox OS.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Troubleshooting" title="/en-US/docs/Mozilla/Firefox_OS/Troubleshooting">Pemecahan Masalah</a></dt> - <dd>Panduan untuk mengatasi masalah umum pada Firefox OS.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Debugging" title="en-US/docs/Mozilla/Firefox_OS/Debugging">Debugging pada Firefox OS</a></dt> - <dd>Panduan untuk debugging aplikasi mobile dan Firefox OS itu sendiri.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Developer_phone_guide" title="/en-US/docs/Mozilla/Firefox_OS/Boot to Gecko developer phone guide">Panduan untuk Firefox OS developer phone</a></dt> - <dd>Panduan untuk Firefox OS developer phones, Mozilla memberikan telepon ke beberapa pengembang. Panduan ini juga berlaku jika sesorang memasang Firefox OS ke teleponnya</dd> - </dl> - - <p><span class="alllinks"><a href="/en-US/docs/tag/B2G" title="/en-US/docs/tag/B2G">Lihat Semua...</a></span></p> - </td> - <td> - <h2 class="Community" id="Community" name="Community">Dapatkan bantuan dari komunitas</h2> - - <p>Jika Anda bekerja dengan Firefox OS, atau mengembangkan aplikasi yang ingin dijalankan di perangkat Firefox OS, ada komunitas yang akan membantu Anda!</p> - - <ul> - <li>Ajukan pertanyaan Anda ke Mozilla Boot to Gecko IRC channel: <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 class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html">Jangan lupa tentang <em>netiquette</em>...</a></span></p> - - - <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Topik Terkait</h2> - - <ul> - <li><a href="/en-US/docs/Mobile" title="en-US/docs/Mobile">Mobile</a></li> - <li><a href="/en-US/docs/HTML" title="en-US/docs/HTML">HTML</a></li> - <li><a href="/en-US/docs/CSS" title="en-US/docs/CSS">CSS</a></li> - <li><a href="/en-US/docs/JavaScript" title="en-US/docs/JavaScript">JavaScript</a></li> - </ul> - - <h2 class="Tools" id="Sumber_Lain">Sumber Lain</h2> - - <ul> - <li><a class="link-https" href="https://wiki.mozilla.org/B2G/FAQ" title="B2G/FAQ">Mozilla wiki FAQ</a></li> - <li><a class="link-https" href="https://wiki.mozilla.org/B2G/Schedule_Roadmap" title="https://wiki.mozilla.org/B2G/Schedule_Roadmap">Roadmap</a></li> - <li><a href="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart">Feature support chart</a></li> - <li><a href="/en-US/docs/Mozilla/Firefox_OS/Geeksphone_FAQ" title="/en-US/docs/Mozilla/Firefox_OS/Geeksphone_FAQ">Geeksphone FAQ</a></li> - </ul> - </td> - </tr> - </tbody> -</table> diff --git a/files/id/archive/b2g_os/installing_on_a_mobile_device/index.html b/files/id/archive/b2g_os/installing_on_a_mobile_device/index.html deleted file mode 100644 index 9ee7eb6251..0000000000 --- a/files/id/archive/b2g_os/installing_on_a_mobile_device/index.html +++ /dev/null @@ -1,100 +0,0 @@ ---- -title: Installing Firefox OS on a mobile device -slug: Archive/B2G_OS/Installing_on_a_mobile_device -translation_of: Archive/B2G_OS/Installing_on_a_mobile_device ---- -<div class="summary"> - <p><span class="seoSummary">Once you've built Boot to Gecko for a <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites#Have_a_compatible_device_or_use_an_emulator">supported mobile device</a>, you can install it. This article will guide you through the process.</span></p> -</div> -<div class="note"> - <strong>Note:</strong> The first time you flash your phone, it <strong>must</strong> have Android 4 (Ice Cream Sandwich) installed. The process will not work correctly otherwise. Once you've done your first install of B2G, however, you can simply update on top of it.</div> -<h2 id="Installing_ADB">Installing ADB</h2> -<p><strong>On OSX</strong></p> -<p>If you have homebrew on OSX:</p> -<pre>brew install android-platform-tools</pre> -<p>Otherwise, download the Android Developer Tools and add the binaries to your PATH.</p> -<p><strong>On Ubuntu</strong></p> -<pre>sudo apt-get install android-tools-adb</pre> -<h2 id="Flashing_your_phone">Flashing your phone</h2> -<p>To flash everything to your phone, simply connect your phone and type:</p> -<pre>./flash.sh -</pre> -<p>That's it. The B2G you've currently got built will flash onto your device.</p> -<p>Note that If you are updating across revisions with significant Gaia changes, you might need also do:</p> -<pre class="brush: bash">cd gaia -make reset-gaia</pre> -<p>This will wipe all of your data stored in Gaia, but also clear out obsolete Gaia settings and prefs so that you'll boot into a "clean" Gaia. In theory <code>./flash.sh</code> should do this already, but for some devices (e.g. hamachi) <code>./flash.sh</code> only flashes a subset of modules (<code>./flash.sh -f</code> will force flash everything.)</p> -<h3 id="Configuring_the_udev_rule_for_your_device">Configuring the udev rule for your device</h3> -<p>On Linux, if you get this,</p> -<pre>< waiting for device ></pre> -<p>that probably means that you haven't added a udev rule for the fastboot device, which is not the same as the one for adb. (Though it also might just mean you need to run ./flash.sh with sudo) You can get the USB vendor ID by running <code>lsusb</code> now, but typically it's Google's: 18d1, so adding this line in your <code>/etc/udev/rules.d/51-android.rules</code> would work:</p> -<pre>SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"</pre> -<div class="note"> - <strong>Note:</strong> If you get a very helpful <code>libusb</code> error "-3" on Linux, it means you need to be root to have the needed access to the USB device. Run the script again using <code>sudo</code>.</div> -<div class="note"> - <strong>Note 2</strong>: If you have an Unagi or a Geeksphone Keon phone, you need two lines like this - one for the original phone vendor's ID, and one for Google's.</div> -<h3 id="Special_notes_for_Hamachi_Helix_and_Leo_devices">Special notes for Hamachi, Helix, and Leo devices</h3> -<p>If your phone is a hamachi, helix or leo device, the ./flash.sh script will now default to flashing only gecko and gaia. It is recommended that you flash with the OEM as a base build to get the firmware and the gonk layers and then flash the gecko and gaia on top. If you want to flash using the images, there is an override flash where you can ./flash.sh -f and it will use the image files to flash your device.</p> -<h3 id="Special_notes_for_the_Samsung_Galaxy_S2">Special notes for the Samsung Galaxy S2</h3> -<p>If your phone is a Galaxy S2 and you are using heimdall 1.3.2 (the latest version; use <code>heimdall version</code> to check), you may see an alarming error "FACTORYFS upload failed!" followed by "Heimdall flashing failed" and some additional information. This is actually a success condition, and you can ignore the advice.</p> -<p>To get rid of this strange behavior, grab a <a class="link-https" href="https://github.com/Benjamin-Dobell/Heimdall" title="https://github.com/Benjamin-Dobell/Heimdall">source copy</a> of heimdall, downgrading to the 1.3.1 release ("<code>git checkout fbbed42c1e5719cc7a4dceeba098981f19f37c06</code>"), then compile it according to the <code>README</code>, then install that to make the error go away. However, this isn't strictly necessary.</p> -<div class="note"> - <p>Note: the image size may not a problem. see the next tip</p> -</div> -<p>All versions of heimdall are unable to flash a system.img larger than 100MB. Do:</p> -<pre>ls -l ./out/target/product/galaxys2/system.img -</pre> -<p>to see how big yours is. If it's too large, ask in IRC for advice; there are ways to do it in two stages.</p> -<p>The argument of heimdall command may not work and result in fail when trying to flash. You'll need to change it in the ./flash.sh script, the argument must be in uppercase (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 && - update_time - ;; - esac</pre> -<p> </p> -<h2 id="Added_step_for_the_Samsung_Galaxy_S2">Added step for the Samsung Galaxy S2</h2> -<p>If you're flashing onto the Galaxy S2, there is an additional step to follow. Gaia does not get flashed automatically by the <code>flash.sh</code> script; you'll need to also do:</p> -<pre>./flash.sh gaia -</pre> -<h2 id="Flashing_specific_partitions_to_fastboot_phones">Flashing specific partitions to fastboot phones</h2> -<p>You can flash specific partitions to fastboot phones (that is, any phone other than the Samsung Galaxy S2). For example:</p> -<pre>./flash.sh system -./flash.sh boot -./flash.sh user -</pre> -<p><strong>WARNING</strong>: flashing user (at least) may delete your user-specific data (contacts, etc.).</p> -<h2 id="Updating_specific_modules">Updating specific modules</h2> -<p>You can update specific components of B2G by specifying their names when flashing. For example:</p> -<pre>./flash.sh gaia -./flash.sh gecko -</pre> -<p>In order to update only one application you can use BUILD_APP_NAME environment variable:</p> -<pre>BUILD_APP_NAME=calendar ./flash.sh gaia</pre> -<p>If your phone is not for developer (you aren't interested on test apps and/or require optimization), you can update gaia using:</p> -<pre>VARIANT=user ./flash.sh gaia</pre> -<h2 id="Next_steps">Next steps</h2> -<p>At this point, your phone should be running Boot to Gecko! It's time to experiment, <a href="/en-US/docs/Mozilla/Firefox_OS/Application_development" title="en-US/docs/Mozilla/Firefox_OS/Application_development">write some code</a>, <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Testing" title="en-US/docs/Mozilla/Firefox_OS/Platform/Testing">test</a>, or <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging" title="en-US/docs/Mozilla/Firefox_OS/Debugging">do some debugging</a>!</p> -<div class="note"> - <strong>Note:</strong> A helpful usage tip: if your build of B2G starts up with the lock screen requesting a pass code to unlock the phone, the default code is 0000.</div> -<h2 class="note" id="Troubleshooting">Troubleshooting</h2> -<p>Here are a some tips for what to do if your device doesn't work right after installing B2G, or updating it to a new version</p> -<h3 class="note" id="If_the_UI_doesnt_start_up">If the UI doesn't start up</h3> -<p>If you update your phone and the user interface doesn't start up, you can reset it to clear out out-of-date configuration and the like. This may bring it back to life, but note that it may also delete your user-specific data (contacts, etc.). Here's how:</p> -<pre>cd gaia -make reset-gaia -</pre> -<h3 class="note" id="If_you_want_change_from_developer_to_production_mode">If you want change from developer to production mode</h3> -<pre>cd gaia -make reset-gaia PRODUCTION=1</pre> -<p><strong>WARNING</strong>: reset-gaia may delete your user-specific data (contacts, etc.).</p> -<h3 class="note" id="image_is_too_large_error_message_on_.flash.sh_execution">"image is too large" error message on ./flash.sh execution</h3> -<p>It might mean that you phone needs to be rooted first before flashing it. As b2g needs to be written on root partition, your phone needs to be rooted in order to install it.</p> diff --git a/files/id/archive/b2g_os/introduction/index.html b/files/id/archive/b2g_os/introduction/index.html deleted file mode 100644 index 1c113d8712..0000000000 --- a/files/id/archive/b2g_os/introduction/index.html +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Pengantar Firefox OS -slug: Archive/B2G_OS/Introduction -tags: - - B2G - - Firefox OS -translation_of: Archive/B2G_OS/Introduction ---- -<p><strong>Firefox OS</strong> (juga disebut dengan codename "Boot to Gecko" atau "B2G") adalah sistem operasi open source Mozilla berbasis Linux dan teknologi Mozilla Gecko. Firefox OS adalah sistem operasi mobile yang bebas dari teknologi ekslusif saat ini menjadi platform yang kuat yang memberikan pengembang aplikasi kesempatan untuk menciptakan produk unggulan Selain itu, Firefox OS fleksibel dan cukup mampu membuat pengguna bahagia.</p> -<p>Untuk pengembang Web bagian yang paling penting untuk dipahami adalah bahwa seluruh antarmuka pengguna adalah aplikasi web, yang mampu menampilkan dan meluncurkan aplikasi Web lainnya. Modifikasi yang Anda buat ke antarmuka pengguna dan aplikasi yang Anda buat untuk berjalan di Firefox OS adalah halaman Web, meskipun dengan meningkatkan akses ke perangkat kerasa dan layanan mobile.</p> -<p>Anda dapat belajar bagaimana membangun dan memasang Firefox OS dengan <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS" title="en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">mengikuti panduan praktis kami</a>.</p> -<h2 id="Persyaratan_perangkat_keras">Persyaratan perangkat keras</h2> -<p>Perangakat mobile berbasis ARM terbaru cukup kuat untuk mendukung proting Firefox OS. Bagian ini mencakup persyaratan perangkat keras dasar serta fitur perangkat keras yang direkomendasikan.</p> -<table> - <thead> - <tr> - <th scope="col">Komponen</th> - <th scope="col">Minimum</th> - <th scope="col">Rekomendasi</th> - </tr> - </thead> - <tbody> - <tr> - <th scope="row">CPU</th> - <td>ARMv6</td> - <td>Cortex A5 class atau lebih<br> - ARMv7a dengan NEON</td> - </tr> - <tr> - <th scope="row">GPU</th> - <td>—</td> - <td>Adreno 200 class atau lebih</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> -<p>Untuk pengalaman pengguna yang baik, itu ide yang baik untuk memilih perangakat yang menawarkan profil warna seragam (Implementasi dengan graphics device driver) dan dukungan headphone untuk mematikan dan menyalakan dan untuk menghentikan dan memutar media. Fitur ini umumnya ada di kalangan smartphone modern.</p> -<h2 id="Tips_penggunaan">Tips penggunaan</h2> -<p>Bagian ini memberikan beberapa tips yang akan membantu Anda menggunakan Firefox OS. Ini adalah penampung sampai kita memiliki dokumentasi penggunaan nyata.</p> -<h3 id="Membuka_Kunci_telepone">Membuka Kunci telepone</h3> -<p>Jika Anda membangun Firefox OS, pada saat dijalankan meminta kode pass untuk membuka kunci perangkat Anda, kode standar adalah 0000. Beberapa Firefox OS akan melakukan ini seraya kami mengembangkan dan menguki layar kunci.</p> -<h3 id="Menangkap_screenshot">Menangkap screenshot</h3> -<p>Menangkap screenshot simpel dengan menekan tombol power dan home secara bersamaan. Gambar screenshot akan berada di <code>/sdcard/screenshots</code> pada perangkat Anda; Anda dapat mengaksesnya menggunakan aplikasi Galeri pada telepon Anda, juga.</p> -<p>Jika karena alasan tertentu tidak dapat bekerja, Anda juga dpaat melakukannya dari terminal Linux atau Mac OS X komputer yang memiliki sistem Firefox OS.</p> -<ol> - <li>Pastikan Anda telah memasang aplikasi ffmpeg. - <ol> - <li>Pada Mac, Jika Anda menggunakan, Anda dapat melakukan ini dengan <code>sudo port install ffmpeg</code>. untuk homebrew, jalankan <code>brew install ffmpeg</code>.</li> - <li>Pada Linux (Ubuntu/Debian), gunakan <code>sudo apt-get install ffmpeg</code>.</li> - </ol> - </li> - <li>Sambungkan telepon ke komputer menggunakan kabel USB.</li> - <li>Arahkan telepon Anda kedalam situasi apapun yang ingin Anda screenshot.</li> - <li><code>cd</code> ke direktori <code>B2G/gaia</code></li> - <li><code>make screenshot</code></li> - <li>Anda sekarang memiliki screenshot bernama <code>screenshot.png</code>.</li> -</ol> -<h3 id="Remote_debugging_dengan_ADB">Remote debugging dengan ADB</h3> -<p>Untuk mengaktifkan USB Debugging via adb, buka aplikasi Pengaturan dan arahkan ke Informasi Pernagkat > Informasi Lebih Lanjut > Pengembang. Dari daftar, berikan tanda centang pada Remote Debugging. Terakhir, hubungkan perankat via USB dengan komputer Anda.</p> -<h3 id="Tombol_dan_kontrol">Tombol dan kontrol</h3> -<p>sebuah perangkat Firefox OS memiliki sejumlah tombol fisik:</p> -<dl> - <dt> - Tombol Home</dt> - <dd> - Tombol ini umumnya berpusat dibawah layar. Menekannya akan mengembalikan Anda ke peluncur aplikasi. Menekannya secara lama membuka tampilan card switching; gesekan ke atas pada tampilan tersebut akan hilang.</dd> - <dt> - Volume rocker kontrol</dt> - <dd> - Pada sisi kiri adalah volume rocker; Menekan bagian atas dari rocker akan meningkatkan volume dan menekan bagian bawah akan menurunkan volume.</dd> - <dt> - Tombol Power</dt> - <dd> - Tombol power berada di pojok kanan atas perangkat.</dd> -</dl> diff --git a/files/id/archive/b2g_os/phone_guide/flame/index.html b/files/id/archive/b2g_os/phone_guide/flame/index.html deleted file mode 100644 index 697980244f..0000000000 --- a/files/id/archive/b2g_os/phone_guide/flame/index.html +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Flame -slug: Archive/B2G_OS/Phone_guide/Flame -tags: - - B2G - - Firefox OS - - Flame - - NeedsTranslation - - TopicStub - - developer phone - - official reference device -translation_of: Archive/B2G_OS/Phone_guide/Flame ---- -<p><img alt="A picture of the Flame device, showing the Firefox OS homescreen containing several app icons." src="https://mdn.mozillademos.org/files/8373/flame-dev-hud.png" style="float: left; margin-bottom: 20px; margin-right: 50px; width: 25%;"></p> - -<p><span class="seoSummary">The Flame device is the official reference device for developing, testing, and debugging Firefox OS and open web apps. This guide provides basic information about its hardware specifications as well as practical documentation specific to experimenting with, developing for, and testing of software compatible with this phone.</span></p> - -<p>The Flame hardware offers a representative set of specs — including FWVGA display and dual-core processor — to help developers build great content and experiences. A stable hardware platform is also good for testers, making it easier to test and address specific software issues without having to worry about device model-specific bugs, etc.</p> - -<p>If you have your phone in hand and want to start playing with it, developing and distributing apps, or contributing to the Firefox platform, the following links will also get you where you need to go:</p> - -<ul> - <li><a href="/en-US/Firefox_OS">Firefox OS zone</a>: For creating your own Firefox OS builds and contributing to the B2G and Gaia projects.</li> - <li><a href="/en-US/Apps">App Center zone</a>: For building open web apps compatible with Firefox OS.</li> - <li><a href="/en-US/Marketplace">Marketplace zone</a>: For information on publishing and distributing apps.</li> - <li><a href="https://marketplace.firefox.com/">Firefox Marketplace</a>: The best place to find and publish new Firefox OS apps.</li> -</ul> - -<p>If you’d like to find out more about updating the operating system, recovering it, pushing apps to it, or phone specs, you’ll find the information you need at the following two articles :</p> - -<ul> - <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">Initial setup</a>: Essential steps to follow for setting up your computer to work with your Flame.</li> - <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Updating_your_Flame">Updating your Flame</a>: How to update or upgrade Firefox OS on your Flame, push apps to it, and troubleshoot and test it.</li> -</ul> - -<h2 id="Get_a_device">Get a device</h2> - -<p>Flame sales have come to an end. There are still opportunities left for Mozilla contributors to get free Flames, including the upcoming Foxtrot program. If you have questions about getting a device for development or testing, please reach out to Asa Dotzler on the <a href="irc://irc.mozilla.org/fxos">#fxos</a> channel on IRC.</p> - -<h2 id="Device_specifications">Device specifications</h2> - -<p>You can find more of the device specifications listed on our <a href="/en-US/Firefox_OS/Phone_guide/Phone_specs">Phone and device specs page</a>.</p> - -<h3 id="Network"><strong>Network</strong></h3> - -<ul> - <li>GSM 850/900/1800/1900MHz</li> - <li>UMTS 850/900/1900/2100MHz</li> - <li>Wifi 802.11b/g/n</li> - <li>Bluetooth 3.0</li> -</ul> - -<h3 id="Hardware">Hardware</h3> - -<ul> - <li>Dual-SIM</li> - <li>NFC</li> - <li>Accelerometer</li> - <li>FM radio</li> - <li>Proximity Sensor</li> - <li>GPS W / A-GPS support</li> - <li>Ambient Light Sensor</li> -</ul> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">Initial setup</a>: Essential steps to follow for setting up your computer to work with your Flame.</li> - <li><a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Updating_your_Flame">Updating your Flame</a>: How to update or upgrade Firefox OS on your Flame, push apps to it, and troubleshoot and test it.</li> - <li><a href="https://hacks.mozilla.org/2014/08/videos-getting-started-with-your-flame-device/">Getting started with your Flame</a>: How-to videos by Chris Heilmann.</li> - <li><a href="http://mozilla.github.io/flame-on/">Flame On</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 announcement</a>: Press Announcement, February 23, 2014.</li> -</ul> diff --git a/files/id/archive/b2g_os/phone_guide/flame/updating_your_flame/index.html b/files/id/archive/b2g_os/phone_guide/flame/updating_your_flame/index.html deleted file mode 100644 index f3ca1ae59c..0000000000 --- a/files/id/archive/b2g_os/phone_guide/flame/updating_your_flame/index.html +++ /dev/null @@ -1,411 +0,0 @@ ---- -title: Updating your Flame -slug: Archive/B2G_OS/Phone_guide/Flame/Updating_your_Flame -translation_of: Archive/B2G_OS/Phone_guide/Flame/Updating_your_Flame ---- -<div class="summary"> -<p>This article covers how to update the software on your Flame — including updating Firefox OS and pushing new apps to your phone — along with backing up your data, and other useful troubleshooting and testing information. Before starting to do any of this, you should make sure you have run through the <a href="/en-US/Firefox_OS/Developer_phone_guide/Flame/Initial_setup">Initial setup</a> information.</p> -</div> - -<h2 id="Quick_guide_to_updating_your_device">Quick guide to updating your device</h2> - -<p>There is a lot of information in this article, so here we've included a quick start guide that takes you through the steps you need quickly to get your device updated. You can refer to the below sections for more detail if it is needed.</p> - -<h3 id="Full_flash_to_the_latest_base_image">Full flash to the latest base image</h3> - -<p>This set of steps needs to be done before you do anything else to your phone (see {{anch("Base image")}} and {{anch("Base image installation")}} if you require more details.)</p> - -<div id="magicdomid12"><span class="author-p-18262"><strong>Prerequisites</strong>: Make sure you have adb and fastboot installed and available in your system's <code>PATH</code> (see <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Installing_ADB">Installing ADB and Fastboot</a>.)</span><br> - </div> - -<ol> - <li id="magicdomid14"><span class="author-p-18262">Download the latest base image —</span><a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v4.zip" class="external external-icon">Base image v18D_nightly_v4</a> — <span class="author-p-18262">to your computer.</span></li> - <li id="magicdomid18"><span class="author-p-18262">On your Flame device, enable remote debugging by navigating to <em>Settings > Developer</em> and enabling the </span><a href="https://developer.mozilla.org/en-US/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">Debugging via USB</a><span class="author-p-18262"> option.</span></li> - <li id="magicdomid20"><span class="author-p-18262">Connect your Flame to your computer via a USB cable.</span></li> - <li id="magicdomid22"><span class="author-p-18262">Verify that the computer is connected to the device by typing this command:</span> - <pre class="brush: bash"><span class="author-p-18262 i">adb devices</span><span class="author-p-18262"> </span><span class="author-p-18262"> </span> -</pre> - You should see something like the following: - - <pre class="brush: bash">List of devices attached -94f7ce4c device</pre> - If you don't see your device attached (no second line), then try unplugging and replugging the USB cable and trying again; also check that <em>Debugging via USB</em> is enabled on the phone as mentioned in step 2. If you get a message saying that adb could not be found, you probably haven't set your path correctly (see prerequisites.)</li> - <li id="magicdomid28"><span class="author-p-18262">Extract the base image zip file and navigate to the new directory, using for example:</span> - <pre id="magicdomid31" class="brush: bash"><span class="author-p-18262 i"><em>cd </em></span><span class="author-p-18262 i url">v18D_nightly_v4</span></pre> - </li> - <li id="magicdomid33"><span class="author-p-18262">Run the flashing script by running the correct below command for your system</span> - <pre class="brush: bash"><span class="author-p-18262"># Windows</span> -<span class="author-p-18262 i"><em>flash.bat</em></span> - -<span class="author-p-18262"># Linux / OSX</span> -<span class="author-p-18262 i"><em>./flash.sh</em></span></pre> - </li> -</ol> - -<div class="note"> -<p><span class="author-p-18262"><strong>Note</strong>: if you don't see the right filename for your system, you can rename flash.bat or flash.sh back and forth as needed. The contents are the same.</span></p> -</div> - -<div class="note"> -<p>Note: Verify the contents of the base image using the checksum below:</p> - -<pre>Checksum: <strong>SHA512(v18D_nightly_v4.zip)= 9105e29fd39da1ae487b01da4431a803d619d31482147b4383002b8a10268905fd444b108a438395a78d289cfe4e8fba10c3fb6b0d187f3535f027bf90c2391a </strong>Build id<strong>: 20150527010201</strong></pre> -</div> - -<p>At this point you should be on the latest 2.5 base image, and be able to receive OTA updates.</p> - -<div class="note"> -<p><span class="author-p-18262"><strong>Note</strong>: if you want to be on the very latest builds of flame (that have not been smoke tested), go to settings -> developer, scroll down to the bottom, and change the channel to nightly-latest. Reboot the device, then go back to settings -> device info and check for updates. You can update to the latest version without having to shallow flash. For shallow flashing see the next section.</span></p> -</div> - -<h4 id="Update_channel_reset_bug">Update channel reset bug</h4> - -<p>As mentioned in {{bug(1217490)}}, some Firefox OS testers testing Firefox OS 2.5 latest OTA updates (on Flame, but also on other dogfooding devices) may find that when they install an OTA update, their update channel is reset to <code>nightly</code>, meaning that they won’t receive subsequent OTA updates coming through other channels. To avoid this, it is recommended that you set your update channel to <code>nightly-latest</code> in the Firefox OS settings via WebIDE. To do this:</p> - -<ol> - <li>Plug your phone into your computer via USB (make sure <em>Debugging via USB</em> is set to <em>ADB and DevTools</em> in the Phone's <a href="/en-US/docs/Mozilla/Firefox_OS/Debugging/Developer_settings">Developer Settings</a>)</li> - <li>Go to Firefox Desktop and open <a href="/en-US/docs/Tools/WebIDE">WebIDE</a>.</li> - <li>Connect WebIDE to your phone by selecting it under <em>USB Devices</em>. Accept the connection prompt that appears on your phone.</li> - <li>Under <em>Other</em> on the right hand side of the WebIDE UI, select <em>Device Settings</em>.</li> - <li>Find <code>app.update.channel</code> in the list, and change the setting value in the corresponding textbox to <code>nightly-latest</code>.</li> - <li>Find <code>app.update.channel.backup</code> and change the setting value to <code>nightly-latest</code> if you want it to persist after further updates.</li> -</ol> - -<h3 id="Shallow_Flash_to_the_latest_Firefox_OS_nightly_(Gaia_and_Gecko)">Shallow Flash to the latest Firefox OS nightly (Gaia and Gecko)</h3> - -<p>This set of steps only needs to be done if you want to update to the VERY latest builds (see {{anch("Updating your Flame to a nightly build")}} if you require more details.)</p> - -<div id="magicdomid50"><span class="author-p-18262"><strong>Prerequisites</strong>: Windows users will need to install <a href="https://cygwin.com/">Cygwin</a>, which provides a Linux-like environment on Windows.</span><span class="author-p-18262"> The instructions below include steps for how to automatically install the appropriate packages if you don't already have it installed.</span></div> - -<div id="magicdomid51"> </div> - -<ol> - <li id="magicdomid52"><span class="author-p-18262">Download the latest build from </span><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk/">Mozilla Central</a><span class="author-p-18262">. Download both the b2g-XX.XX.en-US.android-arm.tar.gz and gaia.zip files.</span></li> - <li id="magicdomid54"><span class="author-p-18262 b"><strong>All platforms:</strong></span><span class="author-p-18262"> Download the <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.sh">shallow flash script</a> in the same directory as the build files.</span></li> - <li id="magicdomid58"><span class="author-p-18262 b"><strong>Windows users:</strong></span><span class="author-p-18262"> Also download the <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.bat">shallow_flash.bat Windows</a> script in the same directory.</span><span class="author-p-18262"> If you don't already have Cygwin installed, also <a href="https://cygwin.com/setup-x86.exe">download the installation file</a> (you don't have to run it, the <code>shallow_flash.bat</code> script will use the installer to automatically configure the necessary packages).</span></li> - <li id="magicdomid60"><span class="author-p-18262">In your terminal, <code>cd</code> into the directory you saved the files in and flash the builds to your phone using the following:</span> - <pre class="brush: bash"><span class="author-p-18262 b"># Linux</span> -<span class="author-p-18262">./shallow_flash.sh --gaia=gaia.zip --gecko=b2g-XX.XX.en-US.android-arm.tar.gz</span> - -<span class="author-p-18262 b"># Mac</span> -<span class="author-p-18262">./shallow_flash.sh --gaia gaia.zip --gecko b2g-XX.XX.en-US.android-arm.tar.gz</span> - -<span class="author-p-18262 b"># Windows</span> -<span class="author-p-18262"># You could also double click the shallow_flash.bat icon (with the cogs) from Windows Explorer. -shallow_flash.bat</span></pre> - </li> -</ol> - -<p>This process will flash gaia.zip and a single b2g-XX.XX.en-US.android-arm.tar.gz file onto your phone. T<span class="author-p-18262">he files will be sent to the device and it will reboot after the process completes.</span></p> - -<div class="note"> -<p><span class="author-p-18262"><strong>Note</strong> : On Linux, if the script fails during </span>flashing Gaia, you can try replacing full options by their shortened version to see if that helps. Replace <span class="author-p-18262"><code>--gaia=gaia.zip</code> by <code>-g gaia.zip</code></span> and <span class="author-p-18262"><code>--gecko=b2g-XX.XX.en-US.android-arm.tar.gz</code> by <code>-G b2g-XX.XX.en-US.android-arm.tar.gz</code></span>.</p> -</div> - -<h2 id="Updating_upgrading_the_Flame's_software">Updating & upgrading the Flame's software</h2> - -<p>We have two main "channels" of Firefox OS software version releases for the Flame phone:</p> - -<ul> - <li>The first channel is our release channel. Flames ship with this channel and will receive over-the-air updates for future major versions, that is, Flames will update from 1.3 to 2.0 to 2.1, etc.</li> - <li>The second channel is our nightly channel. Flames can be flashed to this channel, and after the initial flashing will get over the air updates on a daily or nearly daily basis. </li> -</ul> - -<h3 id="Base_Image"><a name="Base Image">Base Image</a></h3> - -<p>You can get recovery files and tools at the following storage locations:</p> - -<h4 id="Up-to-date_(use_these_unless_you_have_a_good_reason_not_to)">Up-to-date (use these unless you have a good reason not to)</h4> - -<ul> - <li>Production: - <ul> - <li>Stable: <a href="http://cds.w5v8t3u9.hwcdn.net/v18D.zip">Base image v18D.zip</a>: The very latest stable archive, containing a Flame base production image of Firefox OS 2.0.</li> - <li>Nightly: <a href="http://cds.w5v8t3u9.hwcdn.net/v18D_nightly_v4.zip">Base image v18D_nightly_v4</a>: The very latest nightly archive, containing a Flame base production image of Firefox OS 2.5. This is the same as the previous one but with the updated system partition size (see {{Bug("1184980")}}.) Before updating your phone to a Nightly build you should flash the latest base image to make sure the underlying systems are up to date. - <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>: Contains a Flame base production image of Firefox OS 2.5 that includes security, font, NFC, camera, and other fixes (see {{bug(1154072)}} for more details.) - <pre>Checksum: <strong>SHA512(v18D_nightly_v3.zip)= 98ec1d24604eaed4a22e7d1439501544622788b30f8f2993409bfc2244a4886863d33238aa78ccb7cd5f9f71464058b81920cc0ba85806a1dbf0220d08a8444b</strong></pre> - </li> - </ul> - </li> - <li>Engineering: There is no engineering Base image. Use a production base image and <a href="#Updating_to_nightly_build">flash it to an engineering nightly build</a>.</li> -</ul> - -<div class="note"> -<p><strong>Note</strong>: You can find out what base image your device is running using the command <code>adb shell getprop ro.bootloader</code>. The version is the last four characters, with the last one then removed, prefixed by 'v' (e.g. L1TC000118D0 > v18D).</p> -</div> - -<div class="warning"> -<p><strong>Important</strong>: When running a shallow or full flash, your phone data will be overwritten: you should therefore back up your data before updating! See the {{anch("Backing up and restoring your Flame data")}} section for more details.</p> -</div> - -<h4 id="Outdated">Outdated</h4> - -<p>These base images are stable & production only.</p> - -<ul> - <li><a href="http://cds.w5v8t3u9.hwcdn.net/v188.zip">Base image v188.zip</a>: An updated archive containing a Flame base image of Firefox OS 2.0 with bug fixes from the previous image.</li> - <li><a href="http://cds.w5v8t3u9.hwcdn.net/Flame_2.0_v180_1.zip">Base image v180.zip</a>: An older archive containing a Flame base image of Firefox OS 2.0.</li> - <li><a href="http://cds.w5v8t3u9.hwcdn.net/v123.zip">Base image v123.zip</a>: A discontinued image of Firefox OS 1.3 based on Android Jellybean; you shouldn't use this anymore.</li> -</ul> - -<div class="note"> -<p><strong>Note</strong>: Using a locale with base image v188 produces a mixed UI with locale and English languages.</p> -</div> - -<div class="note"> -<p><strong>Note</strong>: Firefox OS images v180 and above are based on Android KK (Kitkat, 4.4); JB (Jellybean, 4.1–4.3) builds have now been discontinued and are no longer supported, so don't use anything older than v180.</p> -</div> - -<h3 id="Base_Image_installation">Base Image installation</h3> - -<p>To install the base image on your device:</p> - -<ol> - <li>Make sure remote debugging is enabled on your Flame, using the <em>Remote debugging/Debugging via USB</em> option in the device's <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Debugging_via_USB">Developer settings</a> (the option is different, depending on whether you have Firefox 1.3 and under, or Firefox 1.4+ installed).</li> - <li>Connect your Flame to your computer via a USB cable if it isn't already. Verify that the computer is connected to the device by running the <code>adb devices</code> command in a terminal.</li> - <li>Download the base image <code>.zip</code> file referenced above. Unzip it onto your Desktop.</li> - <li>Go into the directory you extracted the software into and run it: - <ul> - <li>On Windows, enter the directory in your command prompt, then run the <code>flash.bat</code> script using <code>flash.bat</code> (or double click the file in explorer).<br> - <strong>Note</strong>: If <code>flash.bat </code>is missing, simply rename the <code>flash.sh</code> file to <code>flash.bat</code>, then run that. Make sure you have <code>adb</code> and <code>fastboot</code> installed and available on <code>PATH</code>.</li> - <li>On Linux / OSX, enter the directory in your terminal, then run the <code>flash.sh</code> script using <code>./flash.sh</code> (previous instructions encouraged you to use sudo. Don't. It is <strong>really dangerous</strong> to use sudo with things you download from the Internet. If the flash script fails to see your device, please double-check that your <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev rules</a> are correct). If you do not see a <code>flash.sh</code> file, simply rename <code>flash.bat</code> to <code>flash.sh</code> first and then use the above command.</li> - </ul> - </li> -</ol> - -<div class="note"> -<p><strong>Note</strong>: If you get a "permission denied" error when running the above commands, your shell script probably doesn't have the right permissions. Running <code>chmod +x flash.sh</code> on it should solve this problem.</p> -</div> - -<div class="note"> -<p><strong>Note</strong>: If the flash script gets stuck at "< waiting for device >" while the display shows "ThunderSoft(R)", the script doesn't have permission to access the device while in fastboot mode. You need to setup the <a href="/en-US/Firefox_OS/Firefox_OS_build_prerequisites#For_Linux.3A_configure_the_udev_rule_for_your_phone">udev rules</a> to give it access. Also USB 3 ports may not work well with fastboot and can be the cause of this problem.</p> -</div> - -<div class="note"> -<p><strong>Note</strong>: You are also welcome to build your own builds to install on the Flame: see <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS">Building and installing Firefox OS</a>.</p> -</div> - -<h4 id="Font_fix">Font fix</h4> - -<div class="warning"> -<p><strong>Important</strong>: This step is only needed for base image v180.</p> -</div> - -<p>After updating Gecko and Gaia to nightly with the v180 base image, there will be a mismatch between the fonts that Gecko and Gaia expects and what the base image provides (this has been fixed as of v188). To fix this, you have two choices:</p> - -<ul> - <li>download our <a href="https://people.mozilla.org/~mwu/fira-font-update.zip">font update package</a>, extract it, navigate into the directory created by extracting, and run the supplied <code>flash.sh</code> script.</li> - <li>use the <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/update_system_fonts.sh"><code>update_system_fonts.sh</code></a> script, which will download and flash the system fonts automatically.</li> -</ul> - -<h3 id="Updating_your_Flame_to_a_nightly_build"><a name="Updating_to_nightly_build" id="Updating_to_nightly_build">Updating your Flame to a nightly build</a></h3> - -<div class="note"> -<p><strong>Note</strong>: For the current build, Nightly development builds of Firefox OS do not support A-GPS, which may lead to slow performance of GPS functionality. We plan to resolve this in an updated future Nightly channel.</p> -</div> - -<div class="warning"> -<p><strong>Important</strong>: When running a shallow or full flash, your phone data will be overwritten: you should therefore back up your data before updating! See the {{anch("Backing up and restoring your Flame data")}} section for more details.</p> -</div> - -<ol> - <li>Before updating your phone to a Nightly build you should flash the latest base image to make sure the underlying systems are up to date. Download a <a href="#Base Image">base image</a> <u>with the same or a higher version of Firefox OS than the version you intend to use in step 3 below</u> and use it to update your device's software, as explained above.</li> - <li>Because the above step installs a fresh operating system on your device, you'll need to enable remote debugging on your Flame again, using the <em>Remote debugging </em>option in the device's <a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings</a>.</li> - <li>Next, choose a build to install (found on <a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/">https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/</a>). You'll want one of the following: - <ul style="margin-left: 40px;"> - <li>Production builds (including locales) - <ul> - <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk/">Latest master builds</a> (currently 2.6)</li> - <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g44_v2_5-flame-kk/">Latest v2.5 builds</a></li> - <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g37_v2_2-flame-kk/">2.2 build</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/">2.1 build</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/">2.0 build</a></li> - </ul> - </li> - <li>Engineering builds (with test apps and only pseudo-locales) - <ul> - <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-central-flame-kk-eng/">Latest master builds</a> (currently 2.6)</li> - <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g44_v2_5-flame-kk-eng/">Latest v2.5 builds</a></li> - <li><a href="https://ftp.mozilla.org/pub/mozilla.org/b2g/nightly/latest-mozilla-b2g37_v2_2-flame-kk-eng/">2.2 build</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/">2.1 build</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/">2.0 build</a></li> - </ul> - </li> - </ul> - </li> - <li>Pick a version and download both the <code>b2g-XX.XX.en-US.android-arm.tar.gz</code> and <code>gaia.zip</code> files. Save them inside a directory on your Desktop called something like <code>fxos</code>.</li> - <li>Download the <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.sh">shallow flash script</a> and save it in the same directory as the above two files.</li> - <li><strong>For Windows users:</strong> Also download the <a href="https://raw.githubusercontent.com/Mozilla-TWQA/B2G-flash-tool/master/shallow_flash.bat">shallow_flash.bat</a> windows script and install <a href="https://cygwin.com">Cygwin</a>, which provides a Linux-like command environment on Windows. You will need to install the default Cygwin <em>base</em> category plus the <em>unzip</em> package but shallow_flash.bat will do this for you if you download and copy the Cygwin setup*.exe to the same folder as the script.</li> - <li> - <p>In your Terminal, <code>cd</code> into the directory you saved the files in and Flash the builds to your phone using the following:</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>Double click <code>shallow_flash.bat</code> (with the cogs icon) or run it from a command shell. It will flash <code>gaia.zip</code> and a single <code>b2g-XX.XX.en-US.android-arm.tar.gz</code> file.</p> - </li> -</ol> - -<div class="note"> -<p><strong>Note</strong>: If your update fails with an error "Flashing out/target/product/flame/system.img failed because the image was too large.", you will need to update to the newest {{anch("Base Image","base image")}}, then try applying the nightly build again. This is because the system partition size has been updated (see {{Bug("1184980")}}.)</p> -</div> - -<div class="note"> -<p><strong>Note</strong>: If you get a "permission denied" error when running the above commands, your shell script probably doesn't have the right permissions. Running <code>chmod +x shallow_flash.sh</code> on it should solve this problem.</p> -</div> - -<div class="note"> -<p><strong>Note</strong>: A "shallow flash" updates <a href="/en-US/docs/Mozilla/Gecko">Gecko</a> and <a href="/en-US/Firefox_OS/Platform/Gaia">Gaia</a> plus data directories, as opposed to a full flash, which updates Gecko/Gaia, but also the underlying <a href="/en-US/Firefox_OS/Platform/Gonk">Gonk</a> layer and associated binaries particular to that device type. This is why it is a good idea to update to the official <a href="#Base Image">base image</a> first, as suggested above, then shallow flash over the top of that, once you've got the Gonk/binary layer right.</p> -</div> - -<div class="note"> -<p><strong>Note</strong>: You can check the update status of each build on <a href="https://wiki.mozilla.org/B2G/QA/Flame_OTA">the Flame OTA status page</a>.</p> -</div> - -<p>Once the install procedure finishes the phone should reboot into the updated build and display the first time user workflow.</p> - -<h4 id="Switch_to_nightly_update_channel">Switch to nightly update channel</h4> - -<p>In v2.2 you can change the <strong>Update channel</strong> from <code>default</code> to <code>nightly</code> under <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Update_channel">Developer settings</a>.</p> - -<p>Below is the older method, if you don't find that setting in your device.</p> - -<ol> - <li>Make sure remote debugging is enabled on your Flame, using the <em>Remote debugging/Debugging via USB</em> option in the device's <a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings</a>.</li> - <li>Download the <a href="https://github.com/Mozilla-TWQA/B2G-flash-tool/blob/master/change_channel.sh">change channel</a> script: follow the link, press the <em>Raw</em> button, then use your browser's save functionality to save the page directly as <code>change_channel.sh</code>.</li> - <li>In your Terminal, <code>cd</code> into the directory you saved the script in and change the update channel on your phone using the following command:<br> - - <pre class="brush: bash">./change_channel.sh -v nightly</pre> - </li> - <li>Once the phone reboots, check for updates by going into <em>Settings > Device information > Check now.</em></li> -</ol> - -<div class="note"> -<p><strong>Note</strong>: This step isn't needed in newer versions of the Firefox OS software — you should just get OTA updates automatically.</p> -</div> - -<div class="note"> -<p><strong>Note:</strong> You can choose between several different update channels. Run "<code>./change_channel.sh -h</code>" to see the other channel options.</p> -</div> - -<h3 id="Fastboot_mode">Fastboot mode</h3> - -<p>If flashing a new build to your phone fails to work, your phone may become unresponsive, leading to the phone rebooting in recovery mode. The recovery mode provides few options (<em>Reboot</em>, <em>Update from adb</em>, <em>Wipe data</em>, <em>Wipe cache</em>, and <em>Update from sdcard</em>). Unfortunately, selecting <em>Update from adb</em> triggers a sideload mode in which you cannot use the other adb commands. The <code>adb sideload</code> command would work but the various flash scripts rely on other adb commands.</p> - -<p>You can force fastboot mode as follows:</p> - -<ol> - <li>Power off the phone (which may involve removing the battery in extreme cases...).</li> - <li>Plug in the USB cable.</li> - <li>Power the phone up again by pressing the Volume Down and Power buttons together.</li> -</ol> - -<p>The phone should now display the text "FASTBOOT": it is in fastboot mode and is waiting for a USB connection. At this point, a USB-connected, computer with adb installed should see the phone listed when the <code>fastboot devices</code> command is run. Note that regular adb would not see the device — only fastboot sees it. In this mode, you can use the flash script to install the last <a href="#Base Image">base image</a> as explained above. As the script does use both adb and fastboot commands, you may see some initial error and warnings from adb, but the device should be flashed properly at the end of the procedure.</p> - -<h3 id="Emergency_download_mode">Emergency download mode</h3> - -<p>If flashing a new build to your phone fails to work, your phone becomes unresponsive, and the phone cannot enter fastboot mode, you can use emergency mode for recovery. You'll need the provided emergency USB cable with the “Recovery Cable” red label on it and the <a href="http://cds.w5v8t3u9.hwcdn.net/Flame_Rescure_Tool_(updated_with_tutorial).zip">Emergency Download Tool</a> to enter this mode. For full instructions, see the Flame emergency rescue tool tutorial included in the download tool's files. Contact the device maker (flameservice [at] thundersoft.com) if you need any more technical support.</p> - -<p><img src="https://mdn.mozillademos.org/files/9787/EmergencyDownloadTool.jpg" style="height: 363px; width: 497px;" alt="Emergency download tool dialog box as it is when it start."></p> - -<div class="note"> -<p><strong>Note</strong>: The tool provided is Windows-only.</p> -</div> - -<h3 id="Recovery_mode">Recovery mode</h3> - -<p>You can enter recovery mode to clear your phone data or manually update the firmware. There are two ways to enter this mode:</p> - -<ul> - <li>If <a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a> tools are available, make sure Remote debugging is turned on in the phone's <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Remote_debugging">Developer settings</a>, connect your phone to your computer via USB and enter <code>adb reboot recovery</code> on the command line.</li> - <li>If your phone is powered off, press the Volume Up + Power buttons together.</li> -</ul> - -<p>When in recovery mode, press the Volume up/down keys to move the selection highlight, and the Power key to select. Make sure you have your phone data (Contacts, SMS, etc.) backed up before clearing data, and your upgrade packages downloaded before updating.</p> - -<h2 id="Backing_up_and_restoring_your_Flame_data">Backing up and restoring your Flame data</h2> - -<p>When using a Flame, you won't want to lose your phone's contacts and other data while upgrading to a new build (as explained earlier in this article). To backup and restore data you can use our Backup and restore profile 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>To use this, first open up your terminal/command line.</li> - <li>Clone the above repo (you'll need <a href="http://www.git-scm.com/downloads">Git installed</a>) using - <pre class="brush: bash">git clone https://github.com/Mozilla-TWQA/B2G-flash-tool</pre> - </li> - <li>The tool is a Python file: <code>backup_restore_profile.py</code>. Make sure you have <a href="https://www.python.org/downloads/">Python installed</a> (2.7.x is probably best.) Linux and Mac systems should have this out of the box.</li> - <li>Enter the directory you just cloned using <code>cd B2G-flash-tool</code>.</li> -</ol> - -<div class="note"> -<p><strong>Note</strong>: When using this tool, you'll also need to make sure that your phone is connected via USB to your computer, and that ADB (see {{anch("Important steps to follow first")}} above) and Debugging via USB (in your device's <a href="/en-US/Firefox_OS/Debugging/Developer_settings">Developer settings</a>) are enabled.</p> -</div> - -<div class="note"> -<p><strong>Note</strong>: If you get a message complaining about lack of permissions to execute this file, <code>cd</code> into the directory where you saved the file, and run the following command:</p> - -<pre class="brush: bash">chmod +x backup_restore_profile.py</pre> -</div> - -<h3 id="Backing_up_data_from_your_phone">Backing up data from your phone</h3> - -<p>Before backing up you should make sure your device is updated with the most recent OTA update. To do this, on your phone go to <em>Settings app > Device Information > Check for updates > click Check Now</em>. If there is an update available, you should shortly get a notification of an available update. Choose to install the update.</p> - -<p>Now, in the directory where you saved the <code>backup_restore_profile.py</code> file, run the following:</p> - -<pre class="brush: bash">python backup_restore_profile.py -b</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.</p> - -<div class="warning"> -<p>Warning: by default, it does not save the internal sd card content. So files like photos or videos from the gallery app will not be saved. If you want to backup the sd card content, add the --sdcard option</p> - -<pre class="brush: bash">python backup_restore_profile.py -b --sdcard</pre> -</div> - -<h3 id="Restoring_data_to_your_phone">Restoring data to your phone</h3> - -<p>Before restoring you should again make sure your device is updated with the most recent OTA update. Go to <em>Settings app > Device Information > Check for updates > click Check Now</em>. If there is an update available, you should shortly get a notification of an available update. Choose to install the update.</p> - -<p>In the directory where your <code>mozilla-profile</code> directory is located (see above section), run the following:</p> - -<pre class="brush: bash">python backup_restore_profile.py -r</pre> - -<div class="note"> -<p><strong>Note</strong>: You can get a list of all the options the tool supports by running <code>python backup_restore_profile.py -h</code>.</p> -</div> - -<h2 id="Pushing_apps_to_your_Flame">Pushing apps to your Flame</h2> - -<p>The <a href="/en-US/Firefox_OS/Using_the_App_Manager">App Manager</a> and <a href="/en-US/docs/Tools/WebIDE">WebIDE</a> tools make it easy to push apps to your phone, for testing, etc.</p> - -<h2 id="RAM_adjustment">RAM adjustment</h2> - -<p>You can adjust the available RAM capacity to see how apps perform on Firefox OS phones with lower memory footprints.</p> - -<p>This is accomplished by entering fastboot mode (install fastboot first, which is available on the same SDK page as <a href="/en-US/Firefox_OS/Debugging/Installing_ADB">ADB</a>) and typing:</p> - -<pre class="brush: bash">adb reboot bootloader -fastboot oem mem [0|256-1024]</pre> - -<p>“0” is the memory automatically detected and “256-1024” is the number of megabytes. For example, if you want to adjust device RAM capacity to 512M, enter <code>fastboot oem mem 512</code>.</p> - -<p>You'll need to then reboot your device for the settings to take effect. This can be done using:</p> - -<pre class="brush: bash">fastboot reboot</pre> - -<p>The current memory size can be returned by entering fastboot mode and typing:</p> - -<pre class="brush: bash">fastboot getvar mem -</pre> diff --git a/files/id/archive/b2g_os/phone_guide/index.html b/files/id/archive/b2g_os/phone_guide/index.html deleted file mode 100644 index bbfc5ecee3..0000000000 --- a/files/id/archive/b2g_os/phone_guide/index.html +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Firefox OS phone guide -slug: Archive/B2G_OS/Phone_guide -tags: - - Firefox OS - - Landing - - NeedsTranslation - - Phones - - TopicStub -translation_of: Archive/B2G_OS/Phone_guide ---- -<div class="summary"> -<p><span class="seoSummary">This section contains developer information relevant to specific phones that run Firefox OS — both developer and consumer devices.</span> We have general information available on <a href="/en-US/Firefox_OS/Building_and_installing_Firefox_OS" title="Building and installing Firefox OS">Building and installing Firefox OS</a> and <a href="/en-US/Firefox_OS/Developing_Firefox_OS" title="/en-US/docs/Mozilla/Firefox_OS/Hacking_Firefox_OS">Hacking Firefox OS</a>, so please go there for information about building and installing the platform from scratch. Developers with specific phones in their possession may however find the following articles useful.</p> -</div> - -<h2 id="Developer_phone_information">Developer phone information</h2> - -<p>The phones listed here are specifically geared towards developers wanting to experiment with Firefox OS, including developing apps and contributing to the operating system itself. As such, they typically have unlocked SIMs, system files, etc.</p> - -<dl> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Flame">Flame</a></dt> - <dd>The Flame device is the official reference device for developing, testing, and debugging Firefox OS and open web apps, produced in partnership with T<sup>2</sup>Mobile.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Geeksphone">Geeksphone</a></dt> - <dd>In this article we cover some basic tips on how to keep your Geeksphone up-to-date and how to tweak the system Gaia applications.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Phone_guide/Nexus_5">Nexus 5</a></dt> - <dd>This article provides information about using Firefox OS on a Nexus 5, including Flashing Firefox OS onto your device.</dd> - <dt><a href="/en-US/docs/Mozilla/Firefox_OS/Phone_guide/Nexus_4">Nexus 4</a></dt> - <dd>This article provides information about using Firefox OS on a Nexus 4, including Flashing Firefox OS onto your device.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/ZTE_OPEN">ZTE OPEN</a></dt> - <dd>This article contains information on the ZTE OPEN Firefox OS device.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/ZTE_OPEN_C">ZTE OPEN C</a></dt> - <dd>The ZTE Open C is an updated ZTE-produced Firefox OS device, with higher end hardware and newer software.</dd> -</dl> - -<h2 id="Consumer_phone_information">Consumer phone information</h2> - -<p>The phones listed here are consumer models, so not ideal for developers wanting to hack on devices. However, might be still useful for developers looking for more technical information on these consumer models. For a more complete list of devices, see our <a href="https://www.mozilla.org/en-US/firefox/os/devices/">Find Firefox OS near you</a> page.</p> - -<dl> - <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Alcatel_One_Touch_Fire">Alcatel One Touch Fire</a></dt> - <dd>Based on Firefox OS 1.3 and available in more than 5 countries.</dd> - <dt><a href="/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>High-end consumer smartphone, powered by Firefox OS 2.0, with a 2 megapixel camera.</span></dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Alcatel_Onetouch_Fire_C_4020D">Alcatel Onetouch Fire 2C 4020D</a></dt> - <dd>Based on Tarako Firefox OS (1.3T) and released in India.</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>Based on Tarako Firefox OS (1.3T) and released in India.</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>Available in 5 countries.</dd> - <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Cherry_Mobile_Ace">Cherry Mobile Ace</a></dt> - <dd>Based on Firefox OS 1.3T and available in the Philippines.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Fx0">Fx0</a></dt> - <dd>First Firefox OS phone released in Japan, by KDDI.</dd> - <dt><a href="https://developer.mozilla.org/en-US/Firefox_OS/Phone_guide/Huawei_Y300_II">Huawei Y300 II</a></dt> - <dd>Based on Firefox OS 1.1 and available in the Philippines and Mexico.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Intex_Cloud_FX">Intex Cloud FX</a></dt> - <dd>First Firefox OS Tarako phone released in India and based on Firefox OS 1.3T.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/LG_fireweb">LG Fireweb</a></dt> - <dd>Based on Firefox OS 1.1 and available in Uruguay and Brasil.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX1">Spice Firefox MI FX1</a></dt> - <dd>Based on Tarako Firefox OS (1.3T) and released in India.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Spice_Fire_One_MI_FX2">Spice Firefox MI FX2</a></dt> - <dd><span>High-end consumer 3G smartphone powered by FirefoxOS 1.4 with a 2 megapixel camera, released in India.</span></dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Symphony_GoFox_F15">Symphony GoFox F15</a></dt> - <dd>First Firefox OS Device to come with 3G video calling capability, launched in Bangladesh.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Zen_U105_Fire">Zen U105 Fire</a></dt> - <dd>Based on Firefox OS Tarako, available in India.</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;"><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">Has a</span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">1.2 GHz dual core </span><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;">processor and a </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;">Rear Camera</span>, available in 7 countries.</dd> - <dt style="font-size: 13.63636302948px; line-height: 19.0909080505371px;"><a href="/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>The Orange Klif is a 3G Smartphone, powered by Firefox OS 2.0, with a 2 megapixel camera. It is available in a number of African countries.</span></dd> -</dl> - -<h2 id="General_Firefox_OS_information">General Firefox OS information</h2> - -<dl> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Phone_specs">Firefox OS phone data</a></dt> - <dd>In this article we list the various available Firefox OS phones along with information such as their code names, availability, and specific hardware features.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Firefox_OS_device_features">General device features</a></dt> - <dd>This page lists typical Firefox OS hardware features and minimum hardware requirements.</dd> - <dt><a href="/en-US/Firefox_OS/Troubleshooting">Troubleshooting</a></dt> - <dd>This article provides tips for resolving common problems you may have while using Firefox OS.</dd> - <dt><a href="/en-US/Firefox_OS/Phone_guide/Best_practices_open_reference_devices">Best practices for open reference devices</a></dt> - <dd>A set of best practices that we believe should come highly recommended for any widely available open reference devices. All of the recent Firefox OS reference devices have followed these practices.</dd> -</dl> diff --git a/files/id/archive/b2g_os/platform/index.html b/files/id/archive/b2g_os/platform/index.html deleted file mode 100644 index ec17b4cd1d..0000000000 --- a/files/id/archive/b2g_os/platform/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: The Firefox OS platform -slug: Archive/B2G_OS/Platform -translation_of: Archive/B2G_OS/Platform ---- -<div class="summary"> - <p><span class="seoSummary">The Firefox OS platform consists of many components. While you don't need to understand its architecture in order to build applications that run on Firefox OS, if you're working on developing or porting the platform — or are simply curious — the following documentation may be of interest to you.</span></p> -</div> -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h2 class="Documentation" id="Documentation" name="Documentation">Documentation about the Firefox OS platform</h2> - <dl> - <dt> - <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Architecture" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Architecture">Firefox OS architecture overview</a></dt> - <dd> - An overview of how Firefox OS is structured internally; this is primarily of interest to platform developers and people doing porting work.</dd> - <dt> - <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Apps_architecture" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Apps_architecture">Firefox OS apps architecture</a></dt> - <dd> - An overview of the application model on Firefox OS.</dd> - <dt> - <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gaia">Gaia</a></dt> - <dd> - Documentation about Gaia, the user interface application for Firefox OS devices; this is a Web application running atop the Firefox OS software stack.</dd> - <dt> - <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Gonk">Gonk</a></dt> - <dd> - Documentation about Gonk, the operating system layer underneath Gaia. This consists of a Linux kernel and a hardware abstraction layer to which Gecko communicates.</dd> - <dt> - <a href="/en-US/docs/Mozilla/Gecko" title="/en-US/docs/Mozilla/Gecko">Gecko</a></dt> - <dd> - Gecko is the layer of Firefox OS that provides the same open web standards implementation used by Firefox and Thunderbird, as well as many other applications.</dd> - <dt> - <a href="/en-US/docs/Mozilla/Firefox_OS/Security" title="/en-US/docs/Mozilla/Firefox_OS/Security"> Security</a></dt> - <dd> - Documentation about security in Firefox OS; this includes topics about security devices from every perspective: for app developers, device integrators, and so forth.</dd> - <dt> - <a href="/en-US/Firefox_OS/Debugging/Out_of_memory_management_on_Firefox_OS">Out of memory management on Firefox OS</a></dt> - <dd> - This article explains how low memory situations are managed on Firefox OS, using the low memory killer and low memory notifications.</dd> - <dt> - <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Feature_support_chart">Feature support chart</a></dt> - <dd> - A chart of which features are available in which types of Firefox OS builds.</dd> - <dt> - <a href="/en-US/docs/Mozilla/Firefox_OS/Platform/Settings_list" title="/en-US/docs/Mozilla/Firefox_OS/Platform/Settings_list">Firefox OS settings list</a></dt> - <dd> - A list of common setting names that can be used with the <a href="/en-US/docs/WebAPI/Settings" title="/en-US/docs/WebAPI/Settings">Settings</a> API.</dd> - </dl> - <p><span class="alllinks"><a href="/en-US/docs/tag/B2G" title="/en-US/docs/tag/B2G">View All...</a></span></p> - </td> - <td> - <h2 class="Community" id="Community" name="Community">Getting help from the community</h2> - <p>If you're working with Firefox OS, or developing applications you'd like to run on Firefox OS devices, there are community resources to help you!</p> - <ul> - <li>Consult the Boot to Gecko project forum: {{ DiscussionList("dev-b2g", "mozilla.dev.b2g") }}</li> - </ul> - <ul> - <li>Ask your question on Mozilla's Boot to Gecko IRC channel: <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 class="external" href="http://www.catb.org/~esr/faqs/smart-questions.html" title="http://www.catb.org/~esr/faqs/smart-questions.html">Don't forget about the <em>netiquette</em>...</a></span></p> - <br> - <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related topics</h2> - <ul> - <li><a href="/en-US/docs/Mobile" title="en-US/docs/Mobile">Mobile</a></li> - <li><a href="/en-US/docs/HTML" title="en-US/docs/HTML">HTML</a></li> - <li><a href="/en-US/docs/CSS" title="en-US/docs/CSS">CSS</a></li> - <li><a href="/en-US/docs/JavaScript" title="en-US/docs/JavaScript">JavaScript</a></li> - </ul> - <h2 class="Tools" id="Resources">Resources</h2> - <ul> - <li><a class="link-https" href="https://wiki.mozilla.org/B2G/FAQ" title="B2G/FAQ">Mozilla wiki FAQ</a></li> - <li><a class="link-https" href="https://wiki.mozilla.org/B2G/Schedule_Roadmap" title="https://wiki.mozilla.org/B2G/Schedule_Roadmap">Roadmap</a></li> - <li><a href="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart" title="/en-US/docs/Mozilla/Firefox_OS/Feature_support_chart">Feature support chart</a></li> - </ul> - </td> - </tr> - </tbody> -</table> -<p> </p> diff --git a/files/id/archive/b2g_os/quickstart/aplikasi_pertama_kamu/index.html b/files/id/archive/b2g_os/quickstart/aplikasi_pertama_kamu/index.html deleted file mode 100644 index ecc95018a2..0000000000 --- a/files/id/archive/b2g_os/quickstart/aplikasi_pertama_kamu/index.html +++ /dev/null @@ -1,210 +0,0 @@ ---- -title: Aplikasi Pertama Kamu -slug: Archive/B2G_OS/Quickstart/aplikasi_pertama_kamu -translation_of: Archive/B2G_OS/Quickstart/Your_first_app ---- -<article class="brush: js"> - <div class="summary"> - <p>Aplikasi Open web memberikan kemudahan kepada Pengembang web persis seperti apa yang mereka inginkan selama ini: lingkungan cross-platform yang didedikasikan untuk aplikasi yang diinstal dan dibuat hanya dengan menggunakan HTML, CSS, dan JavaScript saja - dengan Firefox OS sebagai yang pertama yang mendedikasikan platform Aplikasi Open web ini. Panduan ini bertujuan untuk membuat Anda belajar dan membangun aplikasi, dengan petunjuk arsitektur dasar dan petunjuk membangun Aplikasi sehingga Anda dapat membuat aplikasi besar berikutnya!</p> - </div> - <p>Jika Anda tidak ingin mengikuti panduan ini, Anda dapat men-download template aplikasi <a href="https://github.com/chrisdavidmills/mdn-app-template">quick start </a>kami. Cari tahu lebih banyak tentang apa ini, dengan membaca panduan <a href="https://developer.mozilla.org/en-US/docs/Project:MDN/Style_guide/Sample_app_coding_guidelines#Apps_template">Template aplikasi</a> kami.</p> - <h2 id="Struktur_Aplikasi">Struktur Aplikasi</h2> - <h3 id="Paket_vs._Aplikasi_yang_dihost">Paket vs. Aplikasi yang dihost</h3> - <p>Ada dua jenis aplikasi Open web yaitu: dikemas dan dihosting.</p> - <ul> - <li>Aplikasi dikemas dasarnya berformat file zip yang berisi semua aset aplikasi: HTML, CSS, JavaScript, gambar, manifest, dll.</li> - <li>Aplikasi Hosted dijalankan dari server di domain yang diberikan, seperti situs web standar.</li> - </ul> - <p>Kedua jenis aplikasi ini memerlukan file manifest yang valid. Ketika tiba saatnya Anda ingin untuk mendaftarkan aplikasi Anda di Firefox Marketplace, Anda akan meng-upload aplikasi Anda sebagai file .zip atau memberikan URL di mana aplikasi anda dihosting.</p> - <div style="width: 480px; margin: 0 auto;"> - <p><iframe frameborder="0" height="270" src="https://www.youtube.com/embed/Q7x-B13y33Q/?feature=player_detailpage" width="480"></iframe></p> - <div class="video-caption"> - <p><span class="long_text short_text" id="result_box" lang="id"><span class="hps">Dibuat</span> <span class="hps">dalam kemitraan dengan</span> <span class="hps">Treehouse</span><span>:</span></span> <a class="button" href="http://teamtreehouse.com/?cid=1154"><span class="long_text short_text" id="result_box" lang="id"><span class="hps">Periksa mereka</span><span>!</span></span></a></p> - </div> - </div> - <p>Untuk tujuan panduan ini, Anda akan membuat aplikasi host yang akan tinggal di alamat localhost Anda. Setelah aplikasi Anda sudah siap untuk daftar di Firefox Marketplace, Anda dapat membuat keputusan untuk bundel sebagai aplikasi dikemas atau meluncurkannya sebagai aplikasi host.</p> - <h3 id="Manifests_Aplikasi">Manifests Aplikasi</h3> - <p>Every Firefox app requires a manifest.webapp file at the app root. The <a href="/en-US/docs/Web/Apps/Manifest"><code>manifest.webapp</code></a> file provides important information about the app, such as version, name, description, icon location, locale strings, domains the app can be installed from, and much more. Only the name and description are required. The simple manifest included within the app template is similar to the following:</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><iframe frameborder="0" height="270" src="https://www.youtube.com/embed/dgAUgHQOm8M#t/?feature=player_detailpage" width="480"></iframe></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 basic manifest is all you need to get started. For more details about manifests, read <a href="/en-US/docs/Web/Apps/Manifest">App Manifest</a>.</p> - <h2 id="App_Layout_Design">App Layout & Design</h2> - <p>Responsive design has become increasingly important as more screen resolutions become standard on different devices. Even if the main target of your app is mobile platforms such as Firefox OS, other devices will likely have access to it as well. <a href="//developer.mozilla.org/docs/CSS/Media_queries">CSS media queries</a> allow you to adapt layout to device, as shown in this skeleton CSS example:</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>There are many JavaScript and CSS frameworks available to aid in responsive design and mobile app development (<a href="http://twitter.github.com/bootstrap">Bootstrap</a>, etc.) Choose the framework(s) that best fit your app and development style.</p> - <h2 id="Web_APIs">Web APIs</h2> - <p>JavaScript APIs are being created and enhanced as quickly as devices are. Mozilla's <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> effort brings dozens of standard mobile features to JavaScript APIs. A list of device support and status is available on the <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> page. JavaScript feature detection is still the best practice, as shown in the following example:</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>In the following example, the display style of a <code><div></code> is modified based on changes in the battery state of the device:</p> - <pre class="brush: java">// 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>In the code sample above, once you confirm that the <a href="https://developer.mozilla.org/en-US/docs/DOM/window.navigator.battery">Battery API</a> is supported, you can add event listeners for <code>chargingchange</code> and <code>levelchange</code> to update the element's display. Try adding the following to the quickstart template, and see if you can get it working.</p> - <p>Check the <a href="https://wiki.mozilla.org/WebAPI">WebAPI</a> page frequently to keep up to date with device API statuses.</p> - <h3 id="Install_API_functionality">Install API functionality</h3> - <p>In our sample quickstart app template, we've implemented an install button that you can click when viewing the app as a standard Web page, to install that site on Firefox OS as an app. The button markup is nothing special:</p> - <pre class="brush: html"><button id="install-btn">Install app</button></pre> - <p>This button's functionality is implemented using the Install API (see 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>Let's run through briefly what is going on:</p> - <ol> - <li>We get a reference to the install button and store it in the variable <code>button</code>.</li> - <li>We use <code>navigator.mozApps.checkInstalled</code> to check whether the app defined by the manifest at <code>http://people.mozilla.com/~cmills/location-finder/manifest.webapp</code> is already installed on the device. This test is stored in the variable <code>installCheck</code>.</li> - <li>When the test is successfully carried out, its success event is fired, therefore <code>installCheck.onsuccess = function() { ... }</code> is run.</li> - <li>We then test for the existence of <code>installCheck.result</code> using an <code>if</code> statement. If it does exist, meaning that the app is installed, we hide the button. An install button isn't needed if it is already installed.</li> - <li>If the app isn't installed, we add a click event listener to the button, so the <code>install()</code> function is run when the button is clicked.</li> - <li>When the button is clicked and the <code>install()</code> function is run, we store the manifest file location in a variable called <code>manifest_url</code>, and then install the app using <code>navigator.mozApps.install(manifest_url)</code>, storing a reference to that installation in the <code>installLocFind</code> variable. You'll notice that this installation also fires success and error events, so you can run actions dependent on whether the install happened successfully or not.</li> - </ol> - <p>You may want to verify the <a href="/en-US/docs/Web/Apps/JavaScript_API">implementation state of the API</a> when first coming to Installable web apps.</p> - <div class="note"> - <p>Note: Installable open web apps have a "single app per origin" security policy; basically, you can't host more than one installable app per origin. This makes testing a bit more tricky, but there are still ways around this, such as creating different sub-domains for apps, testing them using the Firefox OS Simulator, or testing the install functionality on Firefox Aurora/Nightly, which allows you to install installable web apps on the desktop. See <a href="/en-US/docs/Web/Apps/FAQs/About_app_manifests">FAQs about apps manifests</a> for more information on origins.</p> - </div> - <h2 id="WebRT_APIs_(Permissions-based_APIs)">WebRT APIs (Permissions-based APIs)</h2> - <p>There are a number of WebAPIs that are available but require permissions for that specific feature to be enabled. Apps may register permission requests within the <code>manifest.webapp</code> file like so:</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>The three levels of permission are as follows:</p> - <ul> - <li>Normal — APIs that don't need any kind of special access permissions.</li> - <li>Privileged — APIs available to developers to use in their applications, as long as they set access permissions in the app manifest files, and distribute them through a trusted source.</li> - <li>Certified — APIs that control critical functions on a device, such as the call dialer and messaging services. These are generally not available for third party developers to use.</li> - </ul> - <p>For more information on app permission levels, read <a href="https://developer.mozilla.org/en-US/docs/Web/Apps/Packaged_apps#Types_of_packaged_apps" title="/en-US/docs/Web/Apps/Packaged_apps#Types_of_packaged_apps">Types of packaged apps</a>. You can find out more information about what APIs require permissions, and what permissions are required, at <a href="/en-US/docs/Web/Apps/App_permissions">App permissions</a>.</p> - <div class="note"> - <p>It's important to note that not all Web APIs have been implemented within the Firefox OS Simulator.</p> - </div> - <h2 id="Tools_Testing">Tools & Testing</h2> - <p>Testing is incredibly important when supporting mobile devices. There are many options for testing installable open web apps.</p> - <h3 id="Firefox_OS_Simulator">Firefox OS Simulator</h3> - <p>Installing and using the <a href="https://marketplace.firefox.com/developers/docs/firefox_os_simulator">Firefox OS Simulator</a> is the easiest way to get up and running with your app. After you install the simulator, it is accessible from the Tools -> Web Developer -> Firefox OS Simulator menu. The simulator launches with a JavaScript console so you can debug your application from within the simulator.</p> - <h3 id="App_Manager">App Manager</h3> - <p>The new kid on the block with regards to testing tools is called the <a href="/en-US/docs/Mozilla/Firefox_OS/Using_the_App_Manager">App Manager</a>. This tool allows you to connect desktop Firefox to a compatible device via USB (or a Firefox OS simulator), push apps straight to the device, validate apps, and debug them as they run on the device.</p> - <h3 id="Unit_Testing">Unit Testing</h3> - <p>Unit tests are extremely valuable when testing on different devices and builds. jQuery's <a href="http://qunitjs.com">QUnit</a> is a popular client-side testing utility, but you can use any set of testing tools you'd like.</p> - <h3 id="Installing_Firefox_OS_on_a_Device">Installing Firefox OS on a Device</h3> - <p>Since Firefox OS is an open source platform, code and tools are available to build and install Firefox OS on your own device. Build and installation instructions, as well as notes on what devices it can be installed on, can be found on <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Firefox_OS/Platform">MDN</a>.</p> - <p>Dedicated Firefox OS developer preview devices are also available: read our <a href="https://marketplace.firefox.com/developers/dev_phone">Developer preview phone page</a> for more information.</p> - <h2 id="App_Submission_and_Distribution">App Submission and Distribution</h2> - <p>Once your app is complete, you can host it yourself like a standard web site or app (read <a href="/en-US/docs/Web/Apps/Publishing/Self-publishing_Apps">Self-publishing apps</a> for more information), or it can be <a href="https://marketplace.firefox.com/developers/submit/app/manifest">submitted</a> to the <a href="https://marketplace.firefox.com">Firefox Marketplace</a>. Your app's manifest will be validated and you may choose which devices your app will support (e.g. Firefox OS, Desktop Firefox, Firefox Mobile, Firefox Tablet). Once validated, you can add additional details about your app (screenshots, descriptions, price, etc.) and officially submit the app for listing within the Marketplace. Once approved, your app is available to the world for purchase and installation.</p> - <h3 id="More_Marketplace_Listing_Information">More Marketplace & Listing Information</h3> - <ol> - <li><a href="/en-US/docs/Web/Apps/Publishing/Submitting_an_app">Submitting an App to the Firefox OS Marketplace </a></li> - <li><a href="/en-US/docs/Web/Apps/Publishing/Marketplace_review_criteria">Marketplace Review Criteria </a></li> - <li><a href="http://s.vid.ly/embeded.html?link=8k2n4w&autoplay=false">App Submission Video Walkthrough </a></li> - </ol> -</article> diff --git a/files/id/archive/b2g_os/quickstart/index.html b/files/id/archive/b2g_os/quickstart/index.html deleted file mode 100644 index ebe1f7c220..0000000000 --- a/files/id/archive/b2g_os/quickstart/index.html +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Build -slug: Archive/B2G_OS/Quickstart -tags: - - NeedsTranslation - - TopicStub -translation_of: Archive/B2G_OS/Quickstart ---- -<div class="summary"> - <p>Quickstart information on coding open web apps.</p> -</div> -<dl> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_open_web_apps">Introduction to open web apps</a></dt> - <dd> - What are open web apps? How they differ from regular web pages? Why is this significant? This article aims to answer these questions and more.</dd> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/Your_first_app">Your first app</a></dt> - <dd> - This article takes you through the basic steps and additional knowledge on top of regular web development required to create installable open web apps.</dd> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_Firefox_OS">Introduction to Firefox OS</a></dt> - <dd> - An introduction to Firefox OS, Mozilla's new open web app-based mobile platform.</dd> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/Intro_to_manifests">Introduction to manifests</a></dt> - <dd> - An FAQ designed to answer any questions you may have about manifests, hosting apps, origins, and other such topics.</dd> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/For_Web_developers">App development for web developers</a></dt> - <dd> - If you're a web developer, how do open web apps differ from what you're used to? This article explains all.</dd> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/For_mobile_developers">App development for mobile developers</a></dt> - <dd> - If you're a native mobile application developer, what advantages can open web apps bring to you, and how do they differ from what you are used to? Here are some ideas.</dd> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/Developing_app_functionality">Developing app functionality</a></dt> - <dd> - This page talks about the kinds of different functionality that you might want to build into your apps, with links to further information.</dd> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/Payments">Payments</a></dt> - <dd> - How do you build functionality to make people pay for installing your open web apps? Here is the lowdown.</dd> - <dt> - <a href="/en-US/docs/Web/Apps/Quickstart/Build/App_tools">App tools</a></dt> - <dd> - Last for this section, we provide some links to more information on the tools available to help you develop great open web apps.</dd> -</dl> diff --git a/files/id/archive/b2g_os/simulator/index.html b/files/id/archive/b2g_os/simulator/index.html deleted file mode 100644 index 6bc32a3c38..0000000000 --- a/files/id/archive/b2g_os/simulator/index.html +++ /dev/null @@ -1,120 +0,0 @@ ---- -title: Firefox OS Simulator -slug: Archive/B2G_OS/Simulator -translation_of: Archive/B2G_OS/Simulator ---- -<div class="note"> -<p><span class="notranslate">Halaman ini menjelaskan Firefox OS Simulator untuk pengembang menargetkan Firefox OS 1.2 atau yang lebih baru.</span> <span class="notranslate"> Jika Anda sedang mengembangkan aplikasi untuk Firefox OS 1.1, maka Anda harus memeriksa dokumentasi untuk <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/Tools/Firefox_OS_1.1_Simulator&usg=ALkJrhjLGmEfIFMgZfT5XpZ_Sly2k5a4QQ">Firefox OS 1.1 Simulator</a> gantinya.</span></p> -</div> - -<p><span class="notranslate"><span style="line-height: 1.5;">Firefox OS Simulator adalah versi dari lapisan yang lebih tinggi dari Firefox OS yang mensimulasikan perangkat Firefox OS, tapi berjalan pada desktop.</span></span> <span class="notranslate"> <span style="line-height: 1.5;">Ini berarti bahwa dalam banyak kasus, Anda tidak perlu perangkat nyata untuk menguji dan men-debug aplikasi Anda. Ini berjalan di jendela ukuran yang sama sebagai perangkat Firefox OS, termasuk antarmuka pengguna Firefox OS dan built-in aplikasi, dan mensimulasikan banyak dari Firefox OS perangkat API.</span></span></p> - -<p> </p> - -<p><span class="notranslate"><span style="line-height: 1.5;">Simulator ini dikemas dan didistribusikan sebagai Firefox add-on.</span></span> <span class="notranslate"> <span style="line-height: 1.5;">Setelah Anda download dan diinstal di Firefox, Anda dapat menjalankannya, mendorong aplikasi untuk itu, dan melampirkan alat pengembang untuk itu menggunakan <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/Firefox_OS/Using_the_App_Manager&usg=ALkJrhhiU_VHfZmBfFqWM876lmojeCcK0Q">App Manajer</a> alat atau <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/docs/Tools/WebIDE&usg=ALkJrhg95QnRVJFRYvYWSZqZ7xKohU0MDw">WebIDE.</a></span></span></p> - -<h2 id="Instalasi"><span class="notranslate"><span style="line-height: 1.5;">Instalasi</span></span></h2> - -<p><span class="notranslate"><span style="line-height: 1.5;">Untuk menginstal simulator, menggunakan <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/docs/Tools/WebIDE/Setting_up_runtimes&usg=ALkJrhgPJxcVX3YxJ-BpvTbvIveBUD_nSQ#Adding_a_Simulator">WebIDE ini Mengelola penambahan Komponen panel</a> (tersedia sebagai bagian dari Firefox 34 dan seterusnya).</span></span> <span class="notranslate"> <span style="line-height: 1.5;">Beberapa versi yang tersedia, dan Anda disarankan untuk menginstal mereka semua, untuk fleksibilitas maksimum.</span></span></p> - -<div class="note"> -<p><span class="notranslate"><span style="line-height: 1.5;">Dimulai dengan Firefox 43, tentang: halaman addons mungkin menampilkan peringatan tentang addon Anda menjadi unsigned.</span></span> <span class="notranslate"> <span style="line-height: 1.5;">Simulator yang benar ditandatangani pada waktu menginstal, namun mereka kemudian dimodifikasi sehingga muncul "rusak".</span></span> <span class="notranslate"> <span style="line-height: 1.5;">Mereka akan terus berjalan dengan sukses meskipun pesan peringatan ini.</span></span> <span class="notranslate"> <span style="line-height: 1.5;">Rinciannya di <a class="external external-icon" href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://bugzilla.mozilla.org/show_bug.cgi%3Fid%3D1197262&usg=ALkJrhh8Nr70Eiyi7fTUlTWRBzBuY4UIvg" title="Simulator harus berhenti mengubah isinya">bug 1.197.262.</a></span></span></p> -</div> - -<p><span class="notranslate">Untuk memulai Simulator, Anda memilih dari daftar runtime WebIDE ini.</span> <span class="notranslate"> Untuk lebih jelasnya, lihat <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/docs/Tools/WebIDE/Setting_up_runtimes&usg=ALkJrhgPJxcVX3YxJ-BpvTbvIveBUD_nSQ#Selecting_a_runtime" style="font-size: 14px; font-weight: normal; line-height: 1.5;">petunjuk pada dokumentasi WebIDE.</a></span> <span class="notranslate"> Setelah menjalankan Simulator, Anda dapat mendorong aplikasi untuk itu dan debug mereka menggunakan WebIDE, seperti yang Anda bisa dengan perangkat nyata.</span></p> - -<p><span class="notranslate">Jika Anda menggunakan <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/Firefox_OS/Using_the_App_Manager&usg=ALkJrhilhaVxZ6vwknqLTSb4902e4mkm7w">Manajer App</a> (alat tua tersedia sebelum WebIDE), Anda dapat menginstal simulator melalui tombol berikut:</span></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;">Install Simulator</a></p> - -<h2 id="Simulator_UI" style="line-height: 30px;"><span class="notranslate">Simulator UI</span></h2> - -<p><span class="notranslate"><span style="line-height: 22.00800132751465px;">Simulator muncul sebagai jendela terpisah, berukuran sehingga area layar simulasi adalah 320x480 piksel. Untuk mensimulasikan peristiwa sentuhan Anda dapat mengklik tombol mouse dan tarik sambil memegang tombol ke bawah.</span></span> <span class="notranslate"> <span style="line-height: 22.00800132751465px;">Jadi dengan mengklik dan menyeret kanan-ke-kiri dari Home Screen, Anda akan melihat aplikasi built-in, serta setiap aplikasi yang telah ditambahkan:</span></span></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><span class="notranslate">Simulator ini memiliki dua tombol di toolbar di bagian bawah:</span></p> - -<ul> - <li><span class="notranslate">tombol di sebelah kiri membawa Anda ke layar Home, atau switch Simulator off jika Anda terus ke bawah</span></li> - <li><span class="notranslate">tombol di sebelah kanan switch Simulator antara potret dan orientasi landscape.</span> <span class="notranslate"> Ini akan menghasilkan <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/WebAPI/Managing_screen_orientation&usg=ALkJrhia-icPKIA4rWz0jVVStupylXzb-w#Listening_orientation_change" title="/ en-US / docs / WebAPI / Detecting_device_orientation">orientationchange</a> acara.</span></li> -</ul> - -<h2 id="Emulasi_kartu_SD"><span class="notranslate">Emulasi kartu SD</span></h2> - -<p><span class="notranslate">Dalam Simulator kartu SD perangkat dipetakan ke "fake-sdcard" direktori di profil Simulator ini, yang itu sendiri terletak di dalam "ekstensi" direktori di bawah profil Firefox yang Simulator diinstal.</span> <span class="notranslate"> Sebagai contoh:</span></p> - -<pre>/path/to/Firefox/Profiles/Firefox-profile-name/extensions/fxos_2_2_simulator@mozilla.org/profile/fake-sdcard</pre> - -<p><span class="notranslate">File membaca atau menulis menggunakan <code><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/Web/API/Navigator.getDeviceStorage&usg=ALkJrhgI8i4x7Pb6fpAI6dNl1Xnbktkcjw">getDeviceStorage</a></code> API akan muncul di sini.</span></p> - -<p><span class="notranslate">Sebelum versi 2.2 dari Simulator, Anda harus menciptakan "palsu-sdcard" direktori secara manual untuk bekerja.</span> <span class="notranslate"> Dari 2,2 dan seterusnya, "palsu-sdcard" direktori dibuat untuk Anda secara otomatis.</span></p> - -<p><span class="notranslate">Juga dari versi 2.2 dan seterusnya, jika Anda menjalankan Simulator dari baris perintah Anda dapat menentukan direktori yang berbeda dengan melewati <code>--storage-path</code> option.</span></p> - -<p>.</p> - -<div class="note"><span class="notranslate"><strong>Catatan:</strong> ini sebagian besar dimaksudkan untuk pengujian API.</span> <span class="notranslate"> Musik akan dibaca tidak dari "palsu-sdcard" direktori, tapi dari sistem anda <code>~/Music</code> gambar dari <code>~/Pictures</code> video dari <code>~/Videos</code></span> <span class="notranslate"> Download pergi ke <code>~/Downloads</code></span> <span class="notranslate"> user-dirs.dirs redefinitions didukung.</span></div> - -<h2 id="Keterbatasan_Simulator"><span class="notranslate">Keterbatasan Simulator</span></h2> - -<p><span class="notranslate">Perhatikan bahwa Firefox OS Simulator bukan simulasi sempurna.</span></p> - -<h3 id="Keterbatasan_hardware"><span class="notranslate">Keterbatasan hardware</span></h3> - -<p><span class="notranslate">Terlepas dari ukuran layar, Simulator tidak mensimulasikan keterbatasan perangkat keras dari perangkat Firefox OS seperti memori yang tersedia atau kecepatan CPU.</span></p> - -<h3 id="Codec_audio_video"><span class="notranslate">Codec audio / video</span></h3> - -<p><span class="notranslate">Codec berikut tergantung pada decoding hardware-accelerated dan karena itu belum didukung:</span></p> - -<ul> - <li><span class="notranslate">MP3</span></li> - <li><span class="notranslate">AAC</span></li> - <li><span class="notranslate">H.264 (MP4)</span></li> - <li><span class="notranslate">WebM</span></li> -</ul> - -<p><span class="notranslate">Ini berarti tidak mungkin untuk menggunakan Simulator untuk pemutaran video tes di aplikasi dan di website seperti Youtube yang mengandalkan codec ini.</span></p> - -<h3 id="API_yang_tidak_didukung"><span class="notranslate"><a name="Unsupported-APIs">API yang tidak didukung</a></span></h3> - -<p><span class="notranslate">API tertentu yang bekerja pada perangkat tidak akan bekerja pada Simulator, umumnya karena hardware pendukung tidak tersedia pada desktop.</span> <span class="notranslate"> Kami telah menerapkan simulasi untuk beberapa API seperti geolocation, dan berharap untuk menambahkan lebih banyak dalam rilis mendatang.</span> <span class="notranslate"> Namun, saat ini API tidak didukung.</span> <span class="notranslate"> Menggunakan mereka mungkin melemparkan kesalahan atau hanya mengembalikan hasil yang salah:</span></p> - -<ul> - <li><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/WebAPI/WebTelephony&usg=ALkJrhh_j20hjW62I2PCym0uEk6ZDkC5Xg" title="/ en-US / WebAPI / WebTelephony">Telephony</a></span></li> - <li><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/WebAPI/WebSMS&usg=ALkJrhh0fNSSadvAgfRc9m70E6kKQZJGEw" title="/ en-US / docs / WebAPI / WebSMS">WebSMS</a></span></li> - <li><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/WebAPI/WebBluetooth&usg=ALkJrhjXZD0gnn2DdWRATWs9oCF_kPonGA" title="/ en-US / docs / WebAPI / WebBluetooth">WebBluetooth</a></span></li> - <li><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/WebAPI/Using_Light_Events&usg=ALkJrhjOPaB1T9SgcUHrHvlW1t4OQMDxNg" title="/ en-US / docs / WebAPI / Using_Light_Events">Ambient Light</a></span></li> - <li><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/WebAPI/Proximity&usg=ALkJrhi2L5Fy4geflJxjlU_qpL01_j7Cnw" title="/ en-US / docs / WebAPI / Proximity">Kedekatan</a></span></li> - <li><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/WebAPI/Network_Information&usg=ALkJrhhGKVIjQCodDQ084RRO-Ae72XkRqw" title="/ en-US / docs / WebAPI / Network_Information">Jaringan Informasi</a></span></li> - <li><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/Online_and_offline_events&usg=ALkJrhjP-JiIr8ZtxgMe3IkezGhTVaZM-w" title="/ en-US / docs / Online_and_offline_events">navigator.onLine dan acara offline</a></span></li> - <li><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/WebAPI/Vibration&usg=ALkJrhh_8iOJaMHxPBtgnmqCyAoSLAJfzg" title="/ en-US / docs / WebAPI / Getaran">Getaran</a></span></li> -</ul> - -<p> </p> - -<h2 id="Mendapatkan_bantuan"><span class="notranslate">Mendapatkan bantuan</span></h2> - -<p><span class="notranslate"><span style="line-height: 1.5;">Jika Anda memiliki pertanyaan, mencoba meminta kami pada</span> <a class="external external-icon" href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://lists.mozilla.org/listinfo/dev-developer-tools&usg=ALkJrhhBFGFa27xpIxOaSVb4c839Bbe4gQ" style="line-height: 1.5;">daftar dev-pengembang-alat mailing</a> <span style="line-height: 1.5;">atau</span> <a href="irc://irc.mozilla.org/#devtools" style="line-height: 1.5;">#devtools pada <span style="line-height: 1.5;">irc.mozilla.org.</span></a></span></p> - -<h3 id="Cara_mengaktifkan_verbose_logging"><a name="Simulator-verbose-logging"></a> <span class="notranslate"> Cara mengaktifkan verbose logging</span></h3> - -<p><span class="notranslate">Anda dapat melihat pesan login dari aplikasi Anda di <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/Tools/Web_Console&usg=ALkJrhiZzzNSS8b4UW2tadz4NXa5XpKhBw">Web Console,</a> yang dapat Anda melampirkan ke aplikasi Anda menggunakan <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/docs/Tools/WebIDE/Troubleshooting&usg=ALkJrhhlei8rYKFPh9dfWSZTe603GWFmKA">WebIDE.</a></span> <span class="notranslate"> Jika Anda ingin menangkap pesan awal terjadi selama startup aplikasi, sebelum konsol akan terhubung dan bekerja, Anda dapat mengaktifkan verbose logging di Simulator.</span></p> - -<p><span class="notranslate">Kunjungi about: config <strong>dan</strong> menciptakan preferensi baru.</span> <span class="notranslate"> Nama preferensi yang berbeda untuk setiap versi Simulator:</span></p> - -<ul> - <li>extensions.fxos_1_3_simulator@mozilla.org.sdk.console.logLevel untuk Firefox OS 1.3</li> - <li>extensions.fxos_1_2_simulator@mozilla.org.sdk.console.logLevel untuk Firefox OS 1.2</li> -</ul> - -<p><span class="notranslate">Set ke nilai string "semua", dan menonaktifkan, kemudian mengaktifkan kembali, add-on di Add-on manajer.</span> <span class="notranslate"> Sekarang pesan tambahan tentang operasi Simulator akan muncul di <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/docs/Tools/Browser_Console&usg=ALkJrhi-YOakQ7mjFwTBMJ03WnwFGnM_TQ">Browser Console.</a></span></p> - -<h2 id="Membangun_Simulator"><span class="notranslate">Membangun Simulator</span></h2> - -<p><span class="notranslate">Jika Anda ingin menguji patch ke Gecko atau Gaia kode yang Simulator mengandung, Anda mungkin tertarik dalam <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/Firefox_OS/Running_custom_builds_in_the_App_Manager&usg=ALkJrhjAsJ_jEMen5cjEL52j67pWM6pJ9A">memodifikasi simulator</a> untuk menggunakan kustom Gecko membangun atau profil Gaia.</span> <span class="notranslate"> Atau, Anda dapat <a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/Firefox_OS/Building_the_Firefox_OS_simulator&usg=ALkJrhgT9AvDL9qx7tKDFir9gbYZUI1kOA">membangun Simulator baru</a> dari checkout Gecko Anda.</span></p> - -<h2 id="Alternatif"><span class="notranslate">Alternatif</span></h2> - -<p><span class="notranslate"><a href="https://translate.googleusercontent.com/translate_c?act=url&depth=1&hl=id&ie=UTF8&prev=_t&rurl=translate.google.com&sl=en&tl=id&u=https://developer.mozilla.org/en-US/Firefox_OS/Developing_Gaia/Different_ways_to_run_Gaia&usg=ALkJrhgLVoOC-gJPhHeon-XAPX5KUhI3zg">Berbagai cara untuk menjalankan Gaia</a> - termasuk daftar <em>mereka</em> dalam rangka kemudahan untuk menjalankan <em>dan</em> ketertiban kedekatan <em>membalikkan</em> untuk produk dikirim (sesuai dengan itu, Firefox OS Simulator paling mudah tapi terjauh.</span></p> diff --git a/files/id/archive/b2g_os/using_the_app_manager/index.html b/files/id/archive/b2g_os/using_the_app_manager/index.html deleted file mode 100644 index 39a43a9762..0000000000 --- a/files/id/archive/b2g_os/using_the_app_manager/index.html +++ /dev/null @@ -1,233 +0,0 @@ ---- -title: Using the App Manager -slug: Archive/B2G_OS/Using_the_App_Manager -translation_of: Archive/B2G_OS/Using_the_App_Manager ---- -<div class="summary"> -<p>The App Manager is a new tool available in Firefox for Desktop, which provides a number of useful tools to help you test, deploy and debug HTML5 web apps on Firefox OS phones and the Firefox OS Simulator, directly from your browser.</p> -</div> - -<p>{{EmbedYouTube("z1Bxg1UJVf0")}}</p> - -<p>The App Manager is composed of:</p> - -<ul> - <li>An <a href="#Apps_panel"><em>Apps panel</em></a>, which manages local apps (app source code located on your computer) and apps hosted externally, allowing you to package and install them on your device or simulator, and debug them using Toolboxes</li> - <li>A <a href="#Device_panel"><em>Device panel</em></a>, which displays information about the connected device including Firefox OS version installed, permissions required for using device APIs on the device, and apps installed</li> - <li><a href="/en-US/docs/Tools_Toolbox"><em>Toolboxes</em></a>, which are are sets of developer tools (web console, inspector, debugger, etc.) that can be connected to a running app via the Apps panel to perform debugging operations</li> -</ul> - -<h2 id="Quick_setup"><a name="Configuring_device">Quick setup:</a></h2> - -<p>This section is designed to get you up and running as soon as possible; if you need some more detail please skip forward to the {{ anch("Device and system configuration") }} section and start reading from there. Also see the {{ anch("Troubleshooting") }} section for help if you are having trouble.</p> - -<ol> - <li>Make sure you have Firefox Desktop 26+ installed</li> - <li>Open the App Manager (in the URL bar, type <code>about:app-manager</code>)</li> - <li>If you don't have a real device: - <ol> - <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Install the Firefox OS Simulator</a></li> - <li>In App Manager's bottom toolbar, click on <em>Start Simulator</em>, then click on the name of the installed simulator, which should appear there.</li> - </ol> - </li> - <li>If you have a real device: - <ol> - <li>Make sure your device is running Firefox OS 1.2+</li> - <li>In the Settings of your device, disable Screen Lock (<code>Settings > <code>Screen Lock</code></code>) and enable Remote Debugging (<code>Settings > Device information > More information > Developer</code>)</li> - <li><a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Install the ADB Helper</a> add-on in Firefox Desktop</li> - <li>Connect your device to your machine via a USB cable</li> - <li>You should see the name of your device in the App Manager's bottom bar. Click on it.</li> - </ol> - </li> - <li>The bottom bar should show "Connected to: xxx"</li> - <li>Click on the <em>Apps</em> panel and add an app (packaged or hosted)</li> - <li>The <em>Refresh</em> button validates your app and installs it on the Simulator/Device</li> - <li>The <em>Debug</em> button connects the developer tools to the running app</li> -</ol> - -<h2 id="Device_and_system_configuration">Device and system configuration</h2> - -<p>The first thing you'll need to do when using the App Manager is make sure your system and phone are set up correctly. This section will run thrugh all the steps required.</p> - -<h3 id="Firefox_1.2_required">Firefox 1.2+ required</h3> - -<p>Make sure your device is running Firefox OS 1.2/Boot2Gecko 1.2 or higher. To check which version of Firefox OS the device is runing, go to <code>Settings > Device Information > Software</code>.</p> - -<p>If you don't have a high enough version installed, depending on what phone you have you will need to either install an available nightly build of Firefox 1.2+, or configure and build it yourself from source.</p> - -<p>Builds available:</p> - -<ul> - <li><a href="http://downloads.geeksphone.com/">Geeksphone Keon/Peak builds</a> (to find out more about using these, read <a href="/en-US/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> - -<p>To build your own Firefox OS 1.2+ distribution, follow the instructions located at <a href="/en-US/docs/Mozilla/Firefox_OS/Building_and_installing_Firefox_OS">Building and installing Firefox OS</a>, starting with <a href="/en-US/docs/Mozilla/Firefox_OS/Firefox_OS_build_prerequisites">Firefox OS build prerequisites</a>.</p> - -<h3 id="Remote_debugging">Remote debugging</h3> - -<p>Next, you need to enable remote debugging in Firefox OS. To do so, go to <code>Settings > Device information > More information > Developer</code> and check the Remote Debugging checkbox.</p> - -<h3 id="Adb_Helper_Add-on" name="Adb_Helper_Add-on">ADB or ADB helper</h3> - -<p>The process uses the Android Debug Bridge (ADB) to handle the device-computer connection and communication. There are two options for running ADB:</p> - -<ul> - <li> - <p>Let Firefox handle ADB (recommended). <a href="https://ftp.mozilla.org/pub/mozilla.org/labs/fxos-simulator/">Install the ADB Helper add-on</a>, which makes the process easier. With this installed, there's no need to install the ADB, and no need to type the <code>adb forward</code> command: everything is handled by the add-on.</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;" title="https://addons.mozilla.org">Download ADB Helper Add-on</a></li> - <li>Use ADB manually. You need to have it installed on your computer - download and install <code>adb</code> (see the <a href="http://developer.android.com/sdk/index.html">Get the Android SDK</a>) as part of the Android SDK package. You'll need to enable port forwarding by entering the following command into your terminal: - <pre>adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</pre> - Note that you'll need to do this every time the phone is restarted or unplugged then re-plugged.</li> -</ul> - -<div class="note"> -<p>Note: There's no need to run this command if you installed the ADB Helper Add-on.</p> -</div> - -<h2 id="Connecting_your_device_to_the_App_Manager">Connecting your device to the App Manager</h2> - -<p>With all your configuration done, it's now time to plug your device into your computer and start the App Manager:</p> - -<ol> - <li>Plug the device into your computer via USB.</li> - <li>Disable Screen lock on your device by going to <code>Settings > Screen Lock</code> and unchecking the <code>Lock Screen</code> checkbox. This is a good idea because when the screen gets locked, the phone connection gets lost, meaning it is no longer available for debugging.</li> - <li>Start the App Manager — In Firefox Desktop select the <code>Tools > Web Developer > App Manager</code> menu option, or type <code>about:app-manager</code> in the URL bar.</li> - <li>At the bottom of the App Manager tab, you will see a connection status bar (see screenshot below). You should be able to connect your device by clicking the "Connect to localhost:6000" button.</li> - <li>If this works successfully, a prompt should appear on your device: "An incoming request to permit remote debugging connection was detected. Allow connection?". Tap the OK button (You may also have to press the power button on the phone so you can see the prompt.) The connection status bar should update to say "Connected to B2G", with a Disconnect button available to press if you want to cancel the connection.</li> -</ol> - -<p><img alt="" src="https://mdn.mozillademos.org/files/6263/connection-status.png" style="width: 600px; height: 30px; display: block; margin: 0px auto;"></p> - -<div class="note"> -<p>Note that the other controls in the connection status bar allow you to connect a simulator to the App Manager, which we cover in the next section, below, and change the port that the connection happens on. If you change the port, you'll also need to enable port forwarding for this port as well, as instructed in the {{anch("Enable port forwarding")}} section, above.</p> -</div> - -<h2 id="Using_a_Firefox_OS_Simulator_Add-on"><a name="Simulator">Using a Firefox OS Simulator Add-on</a></h2> - -<p>If you haven't got a real device available to use with App Manager, you can still try it out using a <a href="/en-US/docs/Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> Add-on. To start off, install the appropriate simulator for your operating system:</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> - -<div class="note"> -<p>Note that currently there is only a Firefox OS 1.2 simulator available, although more may appear in the future.</p> -</div> - -<p>Once you've installed the simulator, you need to go to the connection status bar at the bottom of the App Manager tab, and click the "Start simulator" button. Three buttons will appear:</p> - -<ul> - <li>"Firefox OS 1.2" ... etc (or something similar): the leftmost button contains the name of the simulator version you have installed. Click it to start the connection to the simulator.</li> - <li>"Add": the middle button navigates to the simulator install links in this article, so you can add more Simulators (Firefox OS 1.2, Firefox OS 1.3, ...).</li> - <li>"Cancel": the right hand button cancels the connection.</li> -</ul> - -<h2 id="Apps_panel_2"><a name="Apps_panel">Apps panel</a></h2> - -<p>Now everything is working, let's review the functionality available inside the App Manager, starting with the Apps Panel. From here, you can import an existing app to push onto your device and debug:</p> - -<ul> - <li>To install a local app, click on the plus next to the "Add Packaged App" label and use the resulting file chooser dialog to select the directory your app is contained inside.</li> - <li>To install an externally hosted app, enter the absolute URL of the app's manifest file into the text field inside the "Add Hosted App" box, then press the plus button.</li> -</ul> - -<p>Information about your app should appear on the right hand side of the window, as seen below:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/6261/apps-panel.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p> - -<p>Clicking on <em>"Update"</em> will update (install) the app on the device. Clicking on <em>"debug"</em> will connect a toolbox to the app, allowing you to debug its code directly:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/6265/debug.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p> - -<div class="note"> -<p>Note: You'll enjoy playing around with the toolbox — try altering the DOM, CSS etc. and you'll see the updates reflected on the device in realtime. Such updates will be saved on the installed app code; you'll see them next time you open the app on the device.</p> -</div> - -<p>If an app was not added successfully — for example if the URL was incorrect, or you selected a packaged app folder — an entry will be added to the page for this app, but this will include error information.</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/6259/apps-error.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p> - -<p>You can also delete an app from this view, by hovering over the App name/description on the left of the window, and pressing the "X" button that appears in each case. This however doesn't remove the app from the device. To do that you need to manually remove the app using the device itself.</p> - -<h2 id="Device_panel_2"><a name="Device_panel">Device panel</a></h2> - -<p>The <em>Device</em> tab displays information about the connected device. From the <em>"</em>Installed Apps<em>"</em> window, apps on the device can be started and debugged.</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/6267/device-tab.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p> - -<div class="note"> -<p>Note: Certified Apps are not listed by default. <a href="#Debugging_Certified_Apps">See how to debug certified apps</a>.</p> -</div> - -<p>The "Permissions" window shows the required priviledges for different <a href="/en-US/docs/WebAPI">Web APIs</a> on the current device:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/6269/permissions.png" style="width: 600px; height: 375px; display: block; margin: 0px auto;"></p> - -<p>Finally, you can take a screenshot of the current device display by clicking the "Screenshot" button. The screenshot appears in a new tab on Firefox, and from there you can save or discard it as you wish.</p> - -<h2 id="Debugging_Certified_Apps_2"><a name="Debugging_Certified_Apps">Debugging Certified Apps</a></h2> - -<p>Currently only devices running a development build of Firefox OS 1.2 are capable of debugging certified apps. If you have a development build, you can enable certified app debugging by changing the pref <code>devtools.debugger.forbid-certified-apps</code> to <code>false</code> in your profile. To do this, follow the steps below:</p> - -<ol> - <li> - <p>On your computer, enter the following command in Terminal/console to enter your device's filesystem via the shell:</p> - - <pre class="brush: bash">adb shell</pre> - - <p>Your prompt should change to <code>root@android</code>.</p> - </li> - <li> - <p>Next, stop B2G running using the following command:</p> - - <pre class="brush: bash">stop b2g</pre> - </li> - <li> - <p>Navigate to the following directory:</p> - - <pre>cd /data/b2g/mozilla/*.default/</pre> - </li> - <li> - <p>Here, update the prefs.js file with the following line:</p> - - <pre class="brush: js">echo 'user_pref("devtools.debugger.forbid-certified-apps", false);' >> prefs.js</pre> - </li> - <li> - <p>After you've finished editing and saving the file, start B2G again using the following command:</p> - - <pre class="brush: bash">start b2g</pre> - </li> - <li> - <p>Exit the android filesystem using the <code>exit</code> command; this will return you to your normal terminal prompt.</p> - </li> - <li> - <p>Next, reconnect to the App Manager and you should see certified apps appear for debugging.</p> - </li> -</ol> - -<div class="note"> -<p>Note: If you want to add this preference to your Gaia build you can run <code>make DEVICE_DEBUG=1 reset-gaia</code>.</p> -</div> - -<h2 id="Troubleshooting_2"><a name="Troubleshooting">Troubleshooting</a></h2> - -<p id="My_device_is_not_recognized">If the device is not recognized:</p> - -<ul> - <li>Read the <a href="#Configuring_device">Device and system configuration</a> section thoroughly, and make sure all the steps are followed:</li> - <li>Is your device running at least Firefox OS 1.2?</li> - <li>Did you enable "Remote Debugging" in the settings of your phone?</li> - <li>If you are not using the <a href="#Adb_Helper_Add-on">ADB Helper add-on</a>: - <ul> - <li>Did you successfully run the <code>adb forward</code> command?</li> - </ul> - </li> - <li>If you are using the <a href="#Adb_Helper_Add-on">ADB Helper add-on</a> and your device is not listed in the bottom toolbar: - <ul> - <li>If you use Linux, <a href="http://developer.android.com/tools/device.html#setting-up">make sure to setup udev correctly</a></li> - <li>If you use Windows, <a href="http://developer.android.com/tools/device.html#setting-up">make sure to install the appropriate drivers</a></li> - </ul> - </li> - <li>Is your phone screen unlocked?</li> -</ul> - -<p>Can't connect your device to the App Manager or start the simulator? <a href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">Let us know</a> or <a href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&assigned_to=nobody%40mozilla.org&attach_text=&blocked=&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_blocking_b2g=---&cf_crash_signature=&cf_status_b2g18=---&cf_status_b2g_1_1_hd=---&cf_status_b2g_1_2=---&cf_status_firefox24=---&cf_status_firefox25=---&cf_status_firefox26=---&cf_status_firefox27=---&cf_status_firefox_esr17=---&cf_status_firefox_esr24=---&cf_tracking_b2g18=---&cf_tracking_firefox24=---&cf_tracking_firefox25=---&cf_tracking_firefox26=---&cf_tracking_firefox27=---&cf_tracking_firefox_esr17=---&cf_tracking_firefox_esr24=---&cf_tracking_firefox_relnote=---&cf_tracking_relnote_b2g=---&comment=&component=Developer%20Tools%3A%20App%20Manager&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&defined_groups=1&dependson=&description=&flag_type-203=X&flag_type-37=X&flag_type-41=X&flag_type-5=X&flag_type-607=X&flag_type-720=X&flag_type-721=X&flag_type-737=X&flag_type-748=X&flag_type-781=X&flag_type-787=X&flag_type-791=X&flag_type-799=X&flag_type-800=X&flag_type-802=X&flag_type-803=X&flag_type-809=X&flag_type-825=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Firefox&qa_contact=developer.tools%40firefox.bugs&rep_platform=x86&requestee_type-203=&requestee_type-41=&requestee_type-5=&requestee_type-607=&requestee_type-748=&requestee_type-781=&requestee_type-787=&requestee_type-791=&requestee_type-800=&short_desc=&status_whiteboard=&target_milestone=---&version=Trunk">file a bug</a>.</p> diff --git a/files/id/archive/css3/index.html b/files/id/archive/css3/index.html deleted file mode 100644 index 0c5eae08d5..0000000000 --- a/files/id/archive/css3/index.html +++ /dev/null @@ -1,972 +0,0 @@ ---- -title: CSS3 -slug: Archive/CSS3 -translation_of: Archive/CSS3 ---- -<p><span class="seoSummary"><strong>CSS3 merupakan perubahan terakhir</strong> dari bahasa <em>Cascading Style Sheets </em>dan bertujuan untuk perpanjangan dari CSS2.1. Menghadirkan banyak catatan yang lama dinantikan, seperti di seputar lingkaran sudut, bayangan, <a href="/en-US/docs/Web/Guide/CSS/Using_CSS_gradients" title="Using CSS gradients">gradients</a>, <a href="/en-US/docs/Web/Guide/CSS/Using_CSS_transitions" title="CSS transitions">transitions</a> or <a href="/en-US/docs/Web/Guide/CSS/Using_CSS_animations" title="CSS animations">animations</a>, sama halnya pada layout baru <a href="/en-US/docs/Web/Guide/CSS/Using_multi-column_layouts" title="Using CSS multi-column layouts">multi-columns</a> (beberapa kolom), <a href="/en-US/docs/Web/Guide/CSS/Flexible_boxes">flexible box</a> (kemudahan tampilan) atau grid layouts.</span> Bagian bagian pengalaman vendor-prefixed (penyedia-memperbaharui) dan kemungkinan yang lainnya dihilangkan dalam lingkungan pembuatan, atau digunakan dengan berlebihan menyebabkan keduanya syntax (penulisan) and semantics (bentuk penulisan) dapat berubah kemudian.</p> - -<h2 id="Modul_and_Proses_Standarisasi">Modul and Proses Standarisasi</h2> - -<p>CSS Tingkat 2 diperlukan 9 tahun, dari Agustus 2002 sampai Juni 2011 yang kaya status rekomendasi. Ini merupakan tindakan nyata bahwa featur bagian kedua kembali didasarkan pada spesifikasi yang menyeluruh. Dalam melengkapi percepatan featur standarisasi tanpa gangguan, the <a class="external" href="http://www.w3.org/blog/CSS/" title="http://www.w3.org/blog/CSS/">CSS Working Group</a> of the W3C (Pekerjaan Group CSS W3C), dalam sebuah bagian mereferensi pada <a class="external" href="http://fantasai.inkedblade.net/weblog/2011/inside-csswg/modules" title="http://fantasai.inkedblade.net/weblog/2011/inside-csswg/modules">Beijing doctrine</a>, CSS dibagi dalam komponen komponen lebih kecil disebut <em>modules</em> . Masing masing modul sekarang ini merupakan sebuah bagian yang berdiri sendiri dari bahasa dan bergerak pada standarisasi percepatannya sendiri. Selagi beberapa modul telah menjadi rekomendasi W3C, yang lainnya masih merupakan bagian yang baru dalam rancangan atau draft pekerjaan. Modul modul baru juga ditambahkan ketika dibutuhkan pengidentifikasin baru.</p> - -<p><a href="/@api/deki/files/6120/=CSS_Modules_and_Snapshots.png" title="CSS_Modules_and_Snapshots.png"><img alt="CSS Modules and Snapshots as defined since CSS3" class="internal lwrap" src="/files/3623/CSS_Modules_and_Snapshots.png" style="float: left; width: 550px;"> </a> Secara bentukan, tidak ada uraian standar CSS. Masing masing modul dijadikan standar secara independen. Standar CSS terdiri dari CSS2.1 perubahan and diperpanjang dengan modul yang lengkap. Seluruhnya tidak diperlukan pada angka yang sama. Di tiap tiap titik waktu, sebuah snapshot (tampilan) dari standar CSS dapat digambarkan, daftar CSS2.1 dan modul saat ini.</p> - -<p>Konsorsium W3C secara priode dipublikasikan yang menampilkan, seperti dalam tahun <a class="external" href="http://www.w3.org/TR/css-beijing/" title="http://www.w3.org/TR/css-beijing/">2007</a> atau <a class="external" href="http://www.w3.org/TR/css-2010/" title="http://www.w3.org/TR/css-2010/">2010.</a></p> - -<p>Meski hari ini tanpa modul dengan tingkat yang lebih tinggi dari standarisasi CSS3, ini dapat berubah ke depannya. Beberapa modul, seperti Selectors 4 or CSS Borders and Backgrounds Level 4 telah mempunyai sebuah rancangan atau draft editor, meski mereka belum diperkaya dengan publikasi awal status Draft atau Rancangan Pekerjaan.</p> - -<h2 id="Status_Modul_CSS" style="">Status Modul CSS</h2> - -<h3 id="Stabilitas_Modul">Stabilitas Modul</h3> - -<p>Sedikitnya modul CSS telah stabil secara bersamaan dan telah kaya dari satu atau tiga tingkatan rekomensasi dari CSSWG: Rekomendasi Kandidat, Proposal Rekomendasi atau Rekomendasi. Ini dapat digunakan tanpa sebelum perbaikan dan merupakan kestabilan yang baik, meski sedikitnya featur dapat dihilangkan pada Tingkat Kandidat Rekomendasi.</p> - -<p>Perpanjangan modul modul ini dan perubahan CSS2.1 spesifikasi yang mana membangun inti dari spesifikasi. Bersamaan dengan itu, mereka adalah tampilan sekarang dari spesifikasi CSS.</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td class="thirdColumn greenBg"><strong>{{ SpecName("CSS3 Colors", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Colors") }} since June 7th, 2011</td> - </tr> - <tr> - <td colspan="2"> - <p>Adds the {{ cssxref("opacity") }} property, and the <code>hsl</code><code>()</code>, <code>hsla()</code>, <code>rgba()</code> and <code>rgb()</code> functions to create {{cssxref("<color>")}} values. It also defines the <code>currentColor</code> keyword as a valid color.</p> - - <p>The <code>transparent</code> color is now a real color (thanks to the support for the alpha channel) and is a now an alias for <code>rgba(0,0,0,0.0)</code> .</p> - - <p>It deprecates the <a href="http://www.w3.org/TR/CSS2/ui.html#system-colors">system-color keywords that shouldn't be used in a production environment anymore</a>.</p> - </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(128,255,128);"><strong>{{ SpecName("CSS3 Selectors", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Selectors") }} since September 29th, 2011</td> - </tr> - <tr> - <td colspan="2"> - <p>Adds:</p> - - <ul> - <li>Substring matching attribute selectors, <code>E[attribute^="value"]</code>, <code>E[attribute$="value"]</code>, <code>E[attribute*="value"]</code> .</li> - <li>New pseudo-classes: {{ cssxref(":target") }}, {{ cssxref(":enabled") }} and {{ cssxref(":disabled") }}, {{ cssxref(":checked") }}, {{ cssxref(":indeterminate") }}, {{ cssxref(":root") }}, {{ cssxref(":nth-child") }} and {{ cssxref(":nth-last-child") }}, {{ cssxref(":nth-of-type") }} and {{ cssxref(":nth-last-of-type") }}, {{ cssxref(":last-child") }}, {{ cssxref(":first-of-type") }} and {{ cssxref(":last-of-type") }}, {{ cssxref(":only-child") }} and {{ cssxref(":only-of-type") }},{{ cssxref(":empty") }}, and {{ cssxref(":not") }}.</li> - <li>Pseudo-elements are now characterized by two colons rather than one: <code>:after</code> becomes {{ cssxref("::after") }}, <code>:before</code> becomes {{ cssxref("::before") }}, <code>:first-letter</code> becomes {{ cssxref("::first-letter") }}, and <code>:first-line</code> becomes {{ cssxref("::first-line") }}.</li> - <li>The new <em>general sibling combinator</em> ( <code>h1~pre</code> ).</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>The <a class="external" href="http://dev.w3.org/csswg/selectors4/" title="http://dev.w3.org/csswg/selectors4/">next iteration of the Selectors specification</a> is already in progress, though it still hasn't reached the First Public Working Draft stage.</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(128,255,128);"><strong>{{ SpecName("CSS3 Namespaces", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Namespaces") }} since September 29th, 2011</td> - </tr> - <tr> - <td colspan="2"> - <p>Adds the support for the XML Namespaces by defining the notion of <em>CSS qualified name</em>, using the ' <code>|</code> ' syntax and adding the {{ cssxref("@namespace") }} CSS at-rule.</p> - </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(128,255,128);"><strong>{{ SpecName("CSS3 Media Queries", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Media Queries") }} since June 19th, 2012</td> - </tr> - <tr> - <td colspan="2"> - <p>Extends the former media type ( <code>print</code>, <code>screen</code>, <code>…</code> ) to a full language allowing <a href="/en/CSS/Media_queries" title="en/CSS/Media_queries">queries on the device media capabilities</a> like <code>only screen and (color)</code> .</p> - - <p>Media queries are not only used in CSS document but also in some attributes of HTML Elements, like the {{ htmlattrxref("media","link") }} attribute of the {{ HTMLElement("link") }} element.</p> - </td> - </tr> - </tbody> -</table> - -<p>The <a href="http://dev.w3.org/csswg/mediaqueries4" title="http://dev.w3.org/csswg/mediaqueries4">next iteration of this specification</a> is in the work, allowing to tailor a Web site regarding the input methods available on the user agent, with new media features like <code>hover</code> or <code>pointer</code>. Detection of EcmaScript support, using the <code>script</code> media features is also proposed.</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(128,255,128);"><strong>{{ SpecName("CSS3 Style", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Style") }} since November 7th, 2013</td> - </tr> - <tr> - <td colspan="2">Formally defines the syntax of the content of the HTML <a href="/en/HTML/Global_attributes#attr-style" title="en/HTML/Global_attributes#attr-style"> <code>style</code> </a> global attribute.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Backgrounds", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Backgrounds") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Adds:</p> - - <ul> - <li>Support, on backgrounds, for any type of {{cssxref("<image>")}}, and not only for <code>uri()</code> defined ones.</li> - <li>Support for multiple background images.</li> - <li>The {{ cssxref("background-repeat") }} <code>space</code> and <code>round</code> values, and for the 2-value syntax of this CSS property.</li> - <li>The {{ cssxref("background-attachment") }} <code>local</code> value.</li> - <li>The CSS {{ cssxref("background-origin") }}, {{ cssxref("background-size") }}, and {{ cssxref("background-clip") }} properties.</li> - <li>Support for curved border corners, with the CSS {{ cssxref("border-radius") }}, {{ cssxref("border-top-left-radius") }}, {{ cssxref("border-top-right-radius") }}, {{ cssxref("border-bottom-left-radius") }}, and {{ cssxref("border-bottom-right-radius") }} properties.</li> - <li>Support for the use of an {{cssxref("<image>")}} as the border with the CSS {{ cssxref("border-image") }}, {{ cssxref("border-image-source") }}, {{ cssxref("border-image-slice") }}, {{ cssxref("border-image-width") }}, {{ cssxref("border-image-outset") }}, and {{ cssxref("border-image-repeat") }} properties.</li> - <li>Support for shadows of the element with the CSS {{ cssxref("box-shadow") }} property.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>The <a class="external" href="http://dev.w3.org/csswg/css4-background/" title="http://dev.w3.org/csswg/css4-background/">CSS4 iteration of the Backgrounds and Borders specification</a> is already in progress, though it still hasn't reached the First Public Working Draft stage, it plans to add the ability to clip a border (with the CSS {{ cssxref("border-clip") }}, {{ cssxref("border-clip-top") }}, {{ cssxref("border-clip-right") }}, {{ cssxref("border-clip-bottom") }}, and {{ cssxref("border-clip-left") }} properties) or to control the shape of the border in a corner (using the CSS {{ cssxref("border-corner-shape") }} property).</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Multicol", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Multicol") }}</td> - </tr> - <tr> - <td colspan="2">Adds support for easy multi-column layouts using the CSS {{ cssxref("columns") }}, {{ cssxref("column-count") }}, {{ cssxref("column-fill") }}, {{ cssxref("column-gap") }}, {{ cssxref("column-rule") }}, {{ cssxref("column-rule-color") }}, {{ cssxref("column-rule-style") }}, {{ cssxref("column-rule-width") }}, {{ cssxref("column-span") }}, {{ cssxref("column-width") }}, {{ cssxref("break-after") }}, {{ cssxref("break-before") }}, and {{ cssxref("break-inside") }}.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Speech", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Speech") }}</td> - </tr> - <tr> - <td colspan="2">Defines the <code>speech</code> media type, an aural formatting model and numerous properties specific for speech-rendering user agents.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Images", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Images") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Defines the {{cssxref("<image>")}} data type.</p> - - <p>Extends the <code>url()</code> syntax to support image slices using media fragments.</p> - - <p>Adds:</p> - - <ul> - <li>The <code>dppx</code> unit to the {{cssxref("<resolution>")}} data type.</li> - <li>The <code>image()</code> function as a more flexible alternative to <code>url()</code> to define an image from an url.<br> - <em><strong>At risk</strong> </em> <strong> <em>:</em> </strong> <em> due to insufficient browser support, standardization of the <code>image()</code> function may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li> - <li>Support for <code>linear-gradient()</code>, <code>repeating-linear-gradient()</code>, <code>radial-gradient()</code> and <code>repeating-radial-gradient()</code>.</li> - <li>The ability to define how a replaced element should fit in its element, using the CSS {{ cssxref("object-fit") }} property.<br> - <em><strong>At risk</strong> </em> <strong> <em>:</em> </strong> <em> due to insufficient browser support, standardization of the {{ cssxref("object-fit") }} and property may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li> - <li>The ability to override the resolution and orientation of an external image using the CSS {{ cssxref("image-resolution") }} and {{ cssxref("image-orientation") }} properties.<br> - <em><strong>At risk</strong> </em> <strong> <em>:</em> </strong> <em> due to insufficient browser support, standardization of the {{ cssxref("image-resolution") }} and {{ cssxref("image-orientation") }} properties may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>The <a href="#Images_(Level_4)">CSS Image Values and Replaced Content Level 4</a> which will supersede CSS Image Level 3 is in development and is a {{Spec2("CSS4 Images")}}.</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220, 255, 220);"><strong>{{ SpecName("CSS3 Values", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Values") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Makes <code>initial</code> and <code>inherit</code> keywords usable on any CSS property.</p> - - <p>Formally defines the CSS data types of CSS 2.1, that were implicitely defined by their grammar token and some textual precisions.</p> - - <p>Adds:</p> - - <ul> - <li>Definition for new font-relative length units: <code>rem</code> and <code>ch</code> .</li> - <li>Definition for viewport-relative length units: <code>vw</code>, <code>vh</code>, <code>vmax</code>, and <code>vmin</code> .</li> - <li>Precision about the real size of the absolute length units, which are not really absolute, but defined in relation with the <em>reference pixel</em> .</li> - <li>Definition for {{ cssxref("<angle>") }}, {{cssxref("<time>")}}, {{cssxref("<frequency>")}}, {{cssxref("<resolution>")}}.</li> - <li>Normative value to the definition of {{cssxref("<color>")}}, {{cssxref("<image>")}}, and {{ cssxref("<position>") }}.</li> - <li>Definition for the {{ cssxref("calc", "calc()") }}, {{ cssxref("attr", "attr()")}}, and <code>toggle()</code> functional notations.<br> - <em><strong>At risk:</strong> due to insufficient browser support, standardization of the <code>calc()</code>, <code>attr()</code>, and <code>toggle()</code> functional notations may be postponed to </em> <em>the next iteration of this module</em><em>.</em></li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>Several types definition, like <code><ident></code> and <code><custom-ident></code>, have been deferred to CSS Values and Units Module Level 4.</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Flexbox", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Flexbox") }}</td> - </tr> - <tr> - <td colspan="2">Add a flexbox layout to the CSS {{ cssxref("display") }} property and several new CSS properties to control it: {{ cssxref("flex") }}, {{ cssxref("flex-align") }}, {{ cssxref("flex-direction") }}, {{ cssxref("flex-flow") }}, {{ cssxref("flex-item-align") }}, {{ cssxref("flex-line-pack") }}, {{ cssxref("flex-order") }}, {{ cssxref("flex-pack") }}, and {{ cssxref("flex-wrap") }}.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220, 255, 220);"><strong>{{ SpecName("CSS3 Conditional", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Conditional") }}</td> - </tr> - <tr> - <td colspan="2">Adds features for conditional processing of parts of style sheets, conditioned on capabilities of the browser or the document the style sheet is being applied to. It consists mainly in allowing nested at-rules inside {{ cssxref("@media") }} and the adding of a new CSS at-rule, {{ cssxref("@supports") }}, and a new DOM method {{domxref("CSS.supports()")}}.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220, 255, 220);"><strong>{{ SpecName("CSS3 Text Decoration", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Text Decoration") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Extends:</p> - - <ul> - <li>the CSS {{ cssxref("text-decoration") }} property by making it a shorthand for the CSS {{ cssxref("text-decoration-line") }}, {{ cssxref("text-decoration-color") }}, and {{ cssxref("text-decoration-style") }} properties. And adds the {{ cssxref("text-decoration-skip") }}, and {{ cssxref("text-underline-position") }} properties.</li> - </ul> - - <p>Adds:</p> - - <ul> - <li>Support for East-Asian-script emphasis marks with the CSS {{ cssxref("text-emphasis") }}, {{ cssxref("text-emphasis-style") }}, {{ cssxref("text-emphasis-color") }}, and {{ cssxref("text-emphasis-position") }} properties.</li> - <li>Support for script shadows with the CSS {{ cssxref("text-shadow") }} property.</li> - </ul> - - <p>Clarifies:</p> - - <ul> - <li>The paint order of the decorations.</li> - </ul> - - <p><em><strong>At risk:</strong> due to insufficient browser support, standardization of the <code>text-decoration-skip</code>, line positioning rules and the ability to place both emphasis marks and ruby above the same base text may be postponed to </em> <em>the next iteration of this module</em><em>.</em></p> - </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Fonts", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Fonts") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Amends the CSS2.1 Font matching algorithm to be closer to what is really implemented.</p> - - <p>Adds:</p> - - <ul> - <li>Support for downloadable fonts via the CSS {{ cssxref("@font-face") }} at-rule.</li> - <li>The control of the contextual inter-glyph spacing via the CSS {{ cssxref("font-kerning") }} property.</li> - <li>The choice of language-specific glyphs via the CSS {{ cssxref("font-language-override") }} property.</li> - <li>The choice of glyphs with specific OpenType features via the CSS {{ cssxref("font-feature-settings") }} property.</li> - <li>The control of the aspect ratio to use when fallback fonts are selected via the CSS {{ cssxref("font-size-adjust") }} property.</li> - <li>The choice of alternative font faces using the CSS {{ cssxref("font-stretch") }}, {{ cssxref("font-variant-alternates") }}, {{ cssxref("font-variant-caps") }}, {{ cssxref("font-variant-east-asian") }}, {{ cssxref("font-variant-ligatures") }}, {{ cssxref("font-variant-numeric") }}, and {{ cssxref("font-variant-position") }} properties. It also extends the related CSS {{ cssxref("font-variant") }} shorthand property and introduces the {{ cssxref("@font-feature-values") }} at-rule.</li> - <li>The control of the automatic generation of an oblique or bold face when none are found via the CSS {{ cssxref("font-synthesis") }} property.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Cascade", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Cascade") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Adds:</p> - - <ul> - <li>The <code>initial</code>, <code>unset</code> values for properties.</li> - <li>The CSS {{ cssxref("all") }} property.</li> - <li>The scoping mechanism.</li> - </ul> - - <p>Clarifies:</p> - - <ul> - <li>Interaction of media-dependent @import statements and style sheet loading requirements.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS3 Writing Modes", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Writing Modes") }}</td> - </tr> - <tr> - <td colspan="2">Defines the writing modes of both horizontal and vertical scripts and clarifies how the CSS {{ cssxref("direction") }} and {{ cssxref("unicode-bidi") }} properties interact with the new CSS {{ cssxref("text-orientation") }} property, and extends them where needed.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS Shapes", "", "") }}</strong></td> - <td>{{ Spec2("CSS Shapes") }}</td> - </tr> - <tr> - <td colspan="2">Defines geometric shapes, which can be applied to floats. These shapes describe areas, around which inline content wraps instead of wrapping around the bounding box.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(220,255,220);"><strong>{{ SpecName("CSS Masks", "", "") }}</strong></td> - <td>{{ Spec2("CSS Masks") }}</td> - </tr> - <tr> - <td colspan="2">Defines a way for partially or fully hiding portions of visual elements. It describes how to use another graphical element or image as a luminance or alpha mask.</td> - </tr> - </tbody> -</table> - -<h3 id="Modules_in_the_refining_phase">Modules in the refining phase</h3> - -<p>Specifications that are deemed to be in the <em>refining phase</em> are already fairly stable. Though changes are still expected, they shouldn't create incompatibilities with current implementations; they should mainly define behavior in edge cases.</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("Web Animations", "", "") }}</strong></td> - <td>{{ Spec2("Web Animations") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Counter Styles", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Counter Styles") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("Compositing", "", "") }}</strong></td> - <td>{{ Spec2("Compositing") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Syntax", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Syntax") }}</td> - </tr> - <tr> - <td colspan="2">Clarifies how charsets are determined; minor changes in parsing and tokenization algorithms.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS Will Change", "", "") }}</strong></td> - <td>{{ Spec2("CSS Will Change") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Transitions", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Transitions") }}</td> - </tr> - <tr> - <td colspan="2">Allows the definition of transitions effects between two properties values by adding the CSS {{ cssxref("transition") }}, {{ cssxref("transition-delay") }}, {{ cssxref("transition-duration") }}, {{ cssxref("transition-property") }}, and {{ cssxref("transition-timing-function") }} properties.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Animations", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Animations") }}</td> - </tr> - <tr> - <td colspan="2">Allows the definition of animations effects by adding the CSS {{ cssxref("animation") }}, {{ cssxref("animation-delay") }},{{ cssxref("animation-direction") }}, {{ cssxref("animation-duration") }}, {{ cssxref("animation-fill-mode") }}, {{ cssxref("animation-iteration-count") }}, {{ cssxref("animation-name") }}, {{ cssxref("animation-play-state") }}, and {{ cssxref("animation-timing-function") }} properties, as well as the {{ cssxref("@keyframes") }} at-rule.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Transforms", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Transforms") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Adds:</p> - - <ul> - <li>the support of bi-dimensional transforms to be applied to any element using the CSS {{ cssxref("transform") }} and {{ cssxref("transform-origin") }} properties. The supported transforms are: <code>matrix</code><code>()</code>, <code>translate()</code>, <code>translateX()</code>, <code>translateY()</code>, <code>scale()</code>, <code>scaleX()</code>, <code>scaleY()</code>, <code>rotate()</code>, <code>skewX()</code>, and <code>skewY()</code>.</li> - <li>the support of tri-dimensional transforms to be applied to any element by adding the CSS {{ cssxref("transform-style") }}, {{ cssxref("perspective") }}, {{ cssxref("perspective-origin") }}, and {{ cssxref("backface-visibility") }} properties and extended the {{ cssxref("transform") }} property with the following transforms are: <code>matrix</code> <code>3d()</code>, <code>translate3d()</code>, <code>translateZ()</code>, <code>scale3d()</code>, <code>scaleZ()</code>, <code>rotate3d()</code>, <code>rotateX</code><code>()</code>, <code>rotateY</code><code>()</code>, <code>rotateZ()</code>, and <code>perspective()</code>.</li> - </ul> - - <p><em><strong>Note:</strong> this specification is a merge of CSS 2D-Transforms, CSS 3D-Transforms and SVG transforms. </em></p> - </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255, 255, 220);"><strong>{{ SpecName("CSS3 Fragmentation", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Fragmentation") }}</td> - </tr> - <tr> - <td colspan="2">Defines how partitions of a Web page should happen, that is page, column breaks, and widows and orphans handling. - <p>Adds:</p> - - <ul> - <li>Support for defining the behavior of decorations, that is borders and background colors or images, when a box is breaked (at a page, column or line-break) with the CSS {{ cssxref("box-decoration-break") }} property.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Text", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Text") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Extends:</p> - - <ul> - <li>the CSS {{ cssxref("text-transform") }} property with the value <code>full-width</code>.</li> - <li>the CSS {{ cssxref("text-align") }} property with the value <code>start</code>, <code>end</code>, <code>start end</code>, and <code>match-parent</code> for a better support of documents with multiple directionalities of text.</li> - <li>the CSS {{ cssxref("text-align") }} property with a {{cssxref("<string>")}} value to align on that character. This is useful to align number on the decimal point.</li> - <li>the CSS {{ cssxref("word-spacing") }} and {{ cssxref("letter-spacing") }} properties with range constraints to control flexibility in justification.</li> - </ul> - - <p>Adds:</p> - - <ul> - <li>Control on how whitespaces are displayed using the CSS {{ cssxref("text-space-collapse") }} and {{ cssxref("tab-size") }} properties.</li> - <li>Control on line breaks and word boundaries using the CSS {{ cssxref("line-break") }}, {{ cssxref("word-break") }}, {{ cssxref("hyphens") }}, {{ cssxref("text-wrap") }}, {{ cssxref("overflow-wrap") }}, and {{ cssxref("text-align-last") }} properties.</li> - <li>Control on how justification is happening, in order to support more type of scripts, using the CSS {{ cssxref("text-justify") }} property.</li> - <li>Control on edge effect using the CSS {{ cssxref("text-indent") }} and {{ cssxref("hanging-punctuation") }} properties.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>A few features present in early CSS Text Level 3 draft have being <a class="external" href="http://dev.w3.org/csswg/css3-text/#recent-changes" title="http://dev.w3.org/csswg/css3-text/#recent-changes">postponed to the next iteration of this module</a> .</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("CSS3 Variables", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Variables") }}</td> - </tr> - <tr> - <td colspan="2">Defines a mechanism allowing to define variables in CSS.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,255,220);"><strong>{{ SpecName("Compositing", "", "") }}</strong></td> - <td>{{ Spec2("Compositing") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<h3 id="Modules_in_the_revising_phase">Modules in the revising phase</h3> - -<p>Modules that are in the revising phase are much less stable than those in the refining phase. Often the syntax is still under scrutiny and may evolve a lot, in a non-compatible way. Alternative syntaxes are tested and often implemented.</p> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS3 Basic UI", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Basic UI") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Adds:</p> - - <ul> - <li>The ability to tweak the box model using the CSS {{ cssxref("box-sizing") }} property.<br> - <strong><em>At risk:</em> </strong> <em> due to insufficient browser support, standardization of the <code>padding</code><code>-box</code> value may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li> - <li>Allow the styling of forms according their content using the CSS {{ cssxref(":indeterminate") }}, {{ cssxref(":default") }}, {{ cssxref(":valid") }}, {{ cssxref(":invalid") }}, {{ cssxref(":in-range") }}, {{ cssxref(":out-of-range") }}, {{ cssxref(":required") }}, {{ cssxref(":optional") }}, {{ cssxref(":read-only") }}, and {{ cssxref(":read-write") }} pseudo-classes and the {{ cssxref("::value") }}, {{ cssxref("::choices") }}, {{ cssxref("::repeat-item") }}, and {{ cssxref("::repeat-index") }} pseudo-elements.<br> - <em><strong>At risk:</strong> due to insufficient browser support, standardization of the pseudo-elements {{ cssxref("::value") }}, {{ cssxref("::choices") }}, {{ cssxref("::repeat-item") }}, and {{ cssxref("::repeat-index") }} may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li> - <li>Support for icons, defined by the CSS {{ cssxref("icon") }} property simultaneously with the new <code>icon</code> value of the CSS {{ cssxref("content") }} property.<br> - <em><strong>At risk:</strong> due to insufficient browser support, standardization of the {{ cssxref("icon") }} property and the <code>icon</code> value may be postponed to CSS4. </em></li> - <li>Support for the CSS {{ cssxref("outline-offset") }} property giving more control on the position of the outline.</li> - <li>Support for the CSS {{ cssxref("resize") }} property allowing Web authors to control if and how elements should be resized.</li> - <li>Support for the CSS {{ cssxref("text-overflow") }} property defining how text overflows, if needed.<br> - <em><strong>At risk:</strong> due to insufficient browser support, the 2-value syntax of this property as well as the support for {{cssxref("<string>")}} values may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li> - <li>The ability to define the hotspot of a cursor as well as the new <code>none</code>, <code>context-menu</code>, <code>cell</code>, <code>vertical-text</code>, <code>alias</code>, <code>copy</code>, <code>no-drop</code>, <code>not-allowed</code>, <code>nesw-</code><code>resize</code>, <code>nwse-</code><code>resize</code>, <code>col-resize</code>, <code>row-resize</code>, <code>all-scroll</code>, <code>zoom-in</code>, <code>zoom-out</code>, extending the {{ cssxref("cursor") }} property.</li> - <li>The ability to specify the sequential navigation order (that is the <em>tabbing order</em> ) using the CSS {{ cssxref("nav-index") }}, {{ cssxref("nav-up") }}, {{ cssxref("nav-right") }}, {{ cssxref("nav-left") }}, {{ cssxref("nav-down") }} properties.<br> - <em><strong>At risk:</strong> due to insufficient browser support, standardization of the navigation properties may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li> - <li>The ability to control the usage of an IME editor, using the CSS {{ cssxref("ime-mode") }} property.<br> - <em><strong>At risk:</strong> due to insufficient browser support, standardization of the {{ cssxref("ime-mode") }} property may be postponed to </em> <em>the next iteration of this module</em> <em>.</em></li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p>An early list of what could be in the next iteration of the CSS Basic User Interface Module is <a class="external" href="http://wiki.csswg.org/spec/css4-ui" title="http://wiki.csswg.org/spec/css4-ui">available</a>.</p> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS3 Grid", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Grid") }}</td> - </tr> - <tr> - <td colspan="2">Add a grid layout to the CSS <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/display" title=""><code>display</code></a> property and several new CSS properties to control it: {{cssxref("grid")}}, {{cssxref("grid-area")}}, {{cssxref("grid-auto-columns")}}, {{cssxref("grid-auto-flow")}}, {{cssxref("grid-auto-position")}}, {{cssxref("grid-auto-rows")}}, {{cssxref("grid-column")}}, {{cssxref("grid-column-start")}}, {{cssxref("grid-column-end")}}, {{cssxref("grid-row")}}, {{cssxref("grid-row-start")}}, {{cssxref("grid-row-end")}}, {{cssxref("grid-template")}}, {{cssxref("grid-template-areas")}}, {{cssxref("grid-template-rows")}}, and {{cssxref("grid-template-columns")}}.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS3 Box Alignment", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Box Alignment") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS3 Paged Media", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Paged Media") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSSOM View", "", "") }}</strong></td> - <td>{{ Spec2("CSSOM View") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: rgb(255,160,100);"><strong>{{ SpecName("CSS4 Selectors", "", "") }}</strong></td> - <td>{{ Spec2("CSS4 Selectors") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<h3 id="Modules_in_the_exploring_phase">Modules in the exploring phase</h3> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS4 Images", "", "") }}</strong></td> - <td>{{ Spec2("CSS4 Images") }}</td> - </tr> - <tr> - <td colspan="2"> - <p>Extends:</p> - - <ul> - <li>the <code>image()</code> functional notation to describe the directionality of the image (<code>rtl</code> or <code>ltr</code>), allowing for bidi-sensitive images.</li> - <li>the {{ cssxref("image-orientation") }} property by adding the keyword <code>from-image</code>, allowing to follow EXIF data stored into images to be considered.</li> - </ul> - - <p>Adds:</p> - - <ul> - <li>the <code>image-set()</code> functional notation to allow the definition to equivalent images at different resolution allowing for resolution-negotiated selection of images.</li> - <li>the <code>element()</code> functional notation allowing the use of part of the page as image.</li> - <li>the <code>cross-fade()</code> functional notation allowing to refer to intermediate images when transitioning between two images and defines the interpolation between two images.</li> - <li>the <code>conic-gradient()</code> and <code>repeating-conic-gradient()</code> functional notation describing a new type of gradient.</li> - <li>the {{cssxref("image-rendering")}} property that allow to define how resize of the object should be handled.</li> - </ul> - </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Device", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Device") }}</td> - </tr> - <tr> - <td colspan="2">Adds a new at-rule, {{ cssxref("@viewport") }}, allowing to specify the size, zoom factor, and orientation of the viewport that is used as the base for the initial containing block.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 GCPM", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 GCPM") }}</td> - </tr> - <tr> - <td colspan="2">Adds the ability to tailor printed version of a document by allowing to control header, footer but also references tables like indexes or tables of content.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS Exclusions", "", "") }}</strong></td> - <td>{{ Spec2("CSS Exclusions") }}</td> - </tr> - <tr> - <td colspan="2">Extends the floats mechanism to define exclusion regions in any positioning scheme. Adds the notion of shapes, in which content must flows.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Lists", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Lists") }}</td> - </tr> - <tr> - <td colspan="2">Extends the list counter mechanism so that list markers can be styled and Web developers can define new list counter schemes.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Regions", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Regions") }}</td> - </tr> - <tr> - <td colspan="2">Defines a new mechanism allowing content to flow across, eventually non-contiguous, multiple areas called regions.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Device", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Device") }}</td> - </tr> - <tr> - <td colspan="2">Adds a new at-rule, {{ cssxref("@viewport") }}, allowing to specify the size, zoom factor, and orientation of the viewport that is used as the base for the initial containing block.</td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("Filters 1.0", "", "") }}</strong></td> - <td>{{ Spec2("Filters 1.0") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Template", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Template") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Sizing", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Sizing") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS Line Grid", "", "") }}</strong></td> - <td>{{ Spec2("CSS Line Grid") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Positioning", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Positioning") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Ruby", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Ruby") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSSOM", "", "") }}</strong></td> - <td>{{ Spec2("CSSOM") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Overflow", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Overflow") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Font Loading", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Font Loading") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Display", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Display") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS Scope", "", "") }}</strong></td> - <td>{{ Spec2("CSS Scope") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS4 Media Queries", "", "") }}</strong></td> - <td>{{ Spec2("CSS4 Media Queries") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS Non-element Selectors", "", "") }}</strong></td> - <td>{{ Spec2("CSS Non-element Selectors") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("Geometry Interfaces", "", "") }}</strong></td> - <td>{{ Spec2("Geometry Interfaces") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F66;"><strong>{{ SpecName("CSS3 Inline", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Inline") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<h3 id="Modules_in_the_rewriting_phase">Modules in the rewriting phase</h3> - -<p>Modules that are in the rewriting phase are outdated and require to be rewritten. The syntax is still under scrutiny and may evolve a lot, in a non-compatible way. Alternative syntaxes are tested and often implemented.</p> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F33;"><strong>{{ SpecName("CSS3 Box", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Box") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F33;"><strong>{{ SpecName("CSS3 Content", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Content") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<table class="fullwidth-table" style="width: 100%;"> - <tbody> - <tr> - <td style="width: 30%; background-color: #F33;"><strong>{{ SpecName("CSS3 Inline Layout", "", "") }}</strong></td> - <td>{{ Spec2("CSS3 Inline Layout") }}</td> - </tr> - <tr> - <td colspan="2"> </td> - </tr> - </tbody> -</table> - -<p> </p> diff --git a/files/id/archive/index.html b/files/id/archive/index.html deleted file mode 100644 index 6361867424..0000000000 --- a/files/id/archive/index.html +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Arsipkan konten usang -slug: Archive -translation_of: Archive ---- -<p>Di sini, di MDN, kami mencoba untuk menghindari penghapusan konten secara langsung yang mungkin berguna bagi orang-orang yang menargetkan platform, sistem operasi, dan browser lawas. Mungkin target pemirsa Anda adalah orang-orang yang menggunakan perangkat keras lama, misalnya, dan tidak dapat melakukan upgrade ke browser terbaru dan terbaik. Atau untuk "alasan", perusahaan Anda diharuskan menggunakan perangkat lunak yang sangat tua dan Anda perlu membangun konten Web yang berjalan pada perangkat lunak itu. Atau mungkin Anda hanya ingin tahu tentang sejarah fitur usang atau API, dan bagaimana cara kerjanya.</p> - -<p>Ada banyak alasan dokumentasi yang lebih tua bisa bermanfaat. Jadi, kami telah menetapkan area ini untuk mengarsipkan dokumentasi yang lebih tua. Materi di zona Konten yang Diarsipkan ini seharusnya tidak digunakan untuk membuat situs Web baru atau aplikasi untuk peramban modern. Itu hanya untuk referensi sejarah saja.</p> - -<div class="note"> -<p><strong>Catatan untuk penulis</strong>: Kita perlu mencoba untuk menjaga bagian halaman di sini diatur bukan semua dibuang ke dalam satu folder besar. Cobalah untuk membuat bagan pohon untuk kategori materi. Selain itu, hanya memindahkan halaman di sini yang <strong>sangat </strong>usang. Jika ada orang yang secara realistis memerlukan informasi dalam produk yang hidup, mungkin tidak tepat untuk memindahkannya ke sini. Secara umum, sebaiknya Anda mendiskusikannya di saluran <a href="https://chat.mozilla.org/#/room/#mdn:mozilla.org">MDN Web Docs</a> sebelum memindahkan konten di sini.</p> -</div> - -<p>{{SubpagesWithSummaries}}</p> - -<h2 id="Subnav">Subnav</h2> - -<p>{{ListSubpages("/en-US/docs/Archive", 2, 0, 1)}}</p> diff --git a/files/id/archive/meta_docs/index.html b/files/id/archive/meta_docs/index.html deleted file mode 100644 index 55e2f91374..0000000000 --- a/files/id/archive/meta_docs/index.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Arsip MDN "meta-documentation" -slug: Archive/Meta_docs -tags: - - Archive - - MDN -translation_of: Archive/Meta_docs ---- -<p>Di sini Anda akan menemukan arsip "meta-documentation"; Yaitu dokumentasi tentang bagaimana menulis dokumentasi tentang MDN. Artikel di sini sudah usang dan seharusnya tidak lagi direferensikan; Kami mempertahankannya di sini untuk referensi sementara kami memigrasikan beberapa konten ke tempat baru, namun sangat sedikit hal ini berguna.</p> - -<p>{{LandingPageListSubpages}}</p> diff --git a/files/id/archive/mozilla/index.html b/files/id/archive/mozilla/index.html deleted file mode 100644 index 132253aacf..0000000000 --- a/files/id/archive/mozilla/index.html +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Archived Mozilla and build documentation -slug: Archive/Mozilla -translation_of: Archive/Mozilla ---- -<p>In progress. These articles are archived, obsolete documents about Mozilla, Gecko, and the process of building Mozilla projects.</p> - -<p>{{SubpagesWithSummaries}}</p> diff --git a/files/id/archive/mozilla/xul/index.html b/files/id/archive/mozilla/xul/index.html deleted file mode 100644 index 17aa6ed66c..0000000000 --- a/files/id/archive/mozilla/xul/index.html +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: XUL -slug: Archive/Mozilla/XUL -tags: - - NeedsTranslation - - TopicStub - - XUL -translation_of: Archive/Mozilla/XUL ---- -<div class="callout-box"><strong><a href="/en-US/docs/XUL_Tutorial" title="en-US/docs/XUL_Tutorial">XUL Tutorial</a></strong><br> -A guided tutorial that will help you get started with XUL, originally from XULPlanet.</div> - -<div> -<p><strong>XUL</strong> (XML User Interface Language) is Mozilla's <a href="/en-US/docs/XML" title="en-US/docs/XML">XML</a>-based language for building user interfaces of applications like Firefox. The term XUL is sometimes used to refer to the whole <a href="/en-US/docs/The_Mozilla_platform" title="/en-US/docs/The_Mozilla_platform">Mozilla platform</a> (e.g. XUL applications are applications using XUL and other components of the platform).</p> - -<p><a href="/en-US/docs/XUL_controls" title="en-US/docs/XUL_controls">XUL Controls</a> lists some of the common controls provided by XUL.</p> -</div> - -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h2 class="Documentation" id="Documentation">Documentation</h2> - - <dl> - <dt><strong><a href="/en-US/docs/XUL_Tutorial" title="en-US/docs/XUL_Tutorial">XUL Tutorial</a></strong></dt> - <dd>A guided tutorial that will help you get started with XUL, originally from XULPlanet.</dd> - <dt><a href="/en-US/docs/XUL_Reference" title="en-US/docs/XUL_Reference">XUL Reference</a></dt> - <dd>XUL elements, attributes, properties, methods, and event handlers.</dd> - <dt><a href="/en-US/docs/XUL_controls" title="en-US/docs/XUL_controls">XUL Controls</a></dt> - <dd>A quick list of all of the available XUL controls.</dd> - <dt><a href="/en-US/docs/The_Joy_of_XUL" title="en-US/docs/The_Joy_of_XUL">The Joy of XUL</a></dt> - <dd>Describes the key features and components of XUL.</dd> - <dt><a href="/en-US/docs/XUL/PopupGuide" title="en-US/docs/XUL/PopupGuide">Menus and Popups Guide</a></dt> - <dd>A guide on using menus and popup panels.</dd> - <dt><a href="/en-US/docs/XUL/Template_Guide" title="en-US/docs/XUL/Template_Guide">Template Guide</a></dt> - <dd>A detailed guide on XUL templates, which is a means of generating content from a datasource.</dd> - <dt><a href="/en-US/docs/DragDrop/Drag_and_Drop" title="Drag and Drop">Drag and Drop</a></dt> - <dd>How to perform drag and drop operations.</dd> - </dl> - - <dl> - <dt>XUL Periodic Table</dt> - <dd>This collection of XUL demos was available as a <a href="/en-US/docs/" title="/en-US/docs/">web page</a>, but can no longer be viwed in Firefox since support for <a href="/en-US/docs/Remote_XUL" title="/en-US/docs/Remote_XUL">Remote XUL</a> was disabled. There is a XULRunner application containing the XUL Periodic Table which can be opened with Gecko based browsers. <a href="https://github.com/matthewkastor/XULRunner-Examples" title="https://github.com/matthewkastor/XULRunner-Examples">You can get it here</a>. See: <a href="/en-US/docs/XULRunner_tips#Using_Firefox_3_to_run_XULRunner_applications" title="/en-US/docs/XULRunner_tips#Using_Firefox_3_to_run_XULRunner_applications">XULRunner_tips#Using_Firefox_3_to_run_XULRunner_applications</a> for instructions on running XULRunner apps in Firefox.</dd> - <dt>Changes to XUL</dt> - <dd>New XUL features and changes to existing features are included in the <a href="/en-US/docs/Mozilla/Firefox/Releases" title="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a>.</dd> - </dl> - - <p><span class="alllinks"><a href="/en-US/docs/tag/XUL" title="tag/XUL">View All...</a></span></p> - </td> - <td> - <h2 class="Community" id="Community">Community</h2> - - <ul> - <li>View Mozilla forums...{{ DiscussionList("dev-tech-xul", "mozilla.dev.tech.xul") }}</li> - <li><a class="link-irc" href="irc://irc.mozilla.org/xul">#xul on irc.mozilla.org</a></li> - </ul> - - <h2 class="Tools" id="Tools">Tools</h2> - - <ul> - <li><a class="external" href="/en-US/docs/XUL_Explorer" title="en-US/docs/XUL_Explorer">XUL Explorer</a> (a lightweight XUL IDE)</li> - <li><a href="https://github.com/matthewkastor/XULExplorer" title="https://github.com/matthewkastor/XULExplorer">XULExplorer</a> (Patched version of XUL explorer)</li> - <li><a class="external" href="http://ted.mielczarek.org/code/mozilla/extensiondev/">Extension developer's extension</a> (featuring a Live XUL Editor)</li> - <li><a class="external" href="http://forum.addonsmirror.net/index.php?showtopic=751" title="http://forum.addonsmirror.net/index.php?showtopic=751">XULRef sidebar</a></li> - <li><a class="external" href="http://www.getfirebug.com/">Firebug</a></li> - <li><a href="/en-US/docs/DOM_Inspector" title="en-US/docs/DOM_Inspector">DOM Inspector</a></li> - <li><a class="external" href="http://www.spket.com/">Spket IDE</a>, IDE for XUL/XBL</li> - <li><a class="external" href="http://www.amplesdk.com" title="http://www.amplesdk.com/">Ample SDK</a>, (Cross-browser XUL renderer in JavaScript/HTML)</li> - </ul> - - <p><span class="alllinks"><a href="/en-US/docs/tag/tools" title="tag/tools">View All...</a></span></p> - - <h2 class="Related_Topics" id="Related_Topics">Related Topics</h2> - - <ul> - <li><a href="/en-US/docs/JavaScript" title="en-US/docs/JavaScript">JavaScript</a>, <a href="/en-US/docs/XBL" title="en-US/docs/XBL">XBL</a>, <a href="/en-US/docs/CSS" title="en-US/docs/CSS">CSS</a>, <a href="/en-US/docs/RDF" title="en-US/docs/RDF">RDF</a>, <a href="/en-US/docs/Extensions" title="en-US/docs/Extensions">Extensions</a>, <a href="/en-US/docs/XULRunner" title="en-US/docs/XULRunner">XULRunner</a></li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p> </p> diff --git a/files/id/archive/mozilla/xul/international_characters_in_xul_javascript/index.html b/files/id/archive/mozilla/xul/international_characters_in_xul_javascript/index.html deleted file mode 100644 index d3ddd60359..0000000000 --- a/files/id/archive/mozilla/xul/international_characters_in_xul_javascript/index.html +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: International characters in XUL JavaScript -slug: Archive/Mozilla/XUL/International_characters_in_XUL_JavaScript -translation_of: Archive/Mozilla/XUL/International_characters_in_XUL_JavaScript ---- -<h3 id="Introduction" name="Introduction">Introduction</h3> -<p><a href="/en-US/docs/Gecko" title="en/Gecko">Gecko</a> 1.8, as used in <a href="/en-US/docs/Firefox_1.5_for_developers" title="en/Firefox_1.5_for_developers">Firefox 1.5</a> and other applications, added support for non-ASCII characters in <a href="/en-US/docs/JavaScript" title="en/JavaScript">JavaScript</a> files loaded from <a href="/en-US/docs/XUL" title="en/XUL">XUL</a> files.</p> -<p>This means that such script files can use any character from virtually any language of the world. For example, they can contain a line:</p> -<pre class="eval">var text = "Ein schönes Beispiel eines mehrsprachigen Textes: 日本語"; -</pre> -<p>This mixes German and Japanese characters.</p> -<p>Earlier versions always interpreted JS files loaded from XUL as <a class="external" href="http://en.wikipedia.org/wiki/ISO_8859-1#Code_table">ISO-8859-1</a> (Latin-1), in both local and remote cases. Unicode escapes, <a href="#Cross-version_compatibility">as discussed below</a>, have always worked.</p> -<h3 id="How_the_character_encoding_is_determined_in_Gecko_1.8_and_later" name="How_the_character_encoding_is_determined_in_Gecko_1.8_and_later">How the character encoding is determined in Gecko 1.8 and later</h3> -<p>When the JavaScript file is loaded from a <code>chrome://</code> URL, a <a href="/en-US/docs/Byte_Order_Mark" title="en/Byte_Order_Mark">Byte Order Mark</a> ({{todo}})({{ interwiki('wikipedia', 'Byte_Order_Mark', 'BOM') }}) is used to determine the character encoding of the script. Otherwise, the character encoding will be the same as the one used by the XUL file (which can be specified using an <code>encoding</code> attribute in the <code><?xml?></code> tag). By default this will use UTF-8, which can represent virtually all characters in the world.</p> -<p>If the script file is loaded via HTTP, the HTTP header can contain a character encoding declaration as part of the <code>Content-Type</code> header, for example:</p> -<pre class="eval">Content-Type: application/javascript; charset=UTF-8 -</pre> -<p>If no charset parameter is specified, the same rules as above apply.</p> -<h3 id="Cross-version_compatibility" name="Cross-version_compatibility">Cross-version compatibility</h3> -<p>If you want the same code to work in both Gecko 1.8 and earlier versions, you must limit yourself to ASCII. However, you can use <a href="/en-US/docs/Core_JavaScript_1.5_Guide/Unicode#Unicode_Escape_Sequences" title="en/Core_JavaScript_1.5_Guide/Unicode#Unicode_Escape_Sequences">unicode escapes</a> – the earlier example rewritten using them would be:</p> -<pre class="eval">var text = "Ein sch\u00F6nes Beispiel eines mehrsprachigen Textes: \u65E5\u672C\u8A9E"; -</pre> -<p>An alternative might be to use property files via {{interface("nsIStringBundle")}} or the <a href="/en-US/docs/XUL_Tutorial/Property_Files" title="en/XUL_Tutorial/Property_Files">XUL <stringbundle> element</a>; this would allow for localization of the XUL. This can not be done in XUL files loaded from the web, only in privileged code, e.g. in <a href="/en-US/docs/Extensions" title="en/Extensions">extensions</a>.</p> diff --git a/files/id/archive/mozilla/xul/school_tutorial/index.html b/files/id/archive/mozilla/xul/school_tutorial/index.html deleted file mode 100644 index 4ae723e85a..0000000000 --- a/files/id/archive/mozilla/xul/school_tutorial/index.html +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: XUL School Tutorial -slug: Archive/Mozilla/XUL/School_tutorial -tags: - - Add-ons - - Extensions - - NeedsTranslation - - References - - TopicStub - - Tutorials - - XUL -translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School ---- -<p>XUL School is a comprehensive add-on development tutorial, focusing on Firefox extension development. It is recommended that you read through all of it at least once. While Firefox changes rapidly, the content in this tutorial should be up to date and valid.</p> -<dl> - <dt>Introduction</dt> - <dd><ul> - <li><a href="/en-US/docs/XUL/School_tutorial/Introduction" title="XUL/School_tutorial/Introduction">Introduction</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Getting_Started_with_Firefox_Extensions" title="XUL/School_tutorial/Getting Started with Firefox Extensions">Getting Started with Firefox Extensions</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/The_Essentials_of_an_Extension" title="XUL/School_tutorial/The Essentials of an Extension">The Essentials of an Extension</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Setting_Up_a_Development_Environment" title="XUL/School_tutorial/Setting Up a Development Environment">Setting Up a Development Environment</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/JavaScript_Object_Management" title="XUL/School_tutorial/JavaScript Object Management">JavaScript Object Management</a></li> - </ul></dd> - <dt>Basic functionality</dt> - <dd><ul> - <li><a href="/en-US/docs/XUL/School_tutorial/Adding_menus_and_submenus" title="XUL/School_tutorial/Adding menus and submenus">Adding menus and submenus</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Adding_Toolbars_and_Toolbar_Buttons" title="XUL/School_tutorial/Adding Toolbars and Toolbar Buttons">Adding Toolbars and Toolbar Buttons</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Adding_Events_and_Commands" title="XUL/School_tutorial/Adding Events and Commands">Adding events and commands</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Adding_windows_and_dialogs" title="XUL/School_tutorial/Adding windows and dialogs">Adding windows and dialogs</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Adding_sidebars" title="XUL/School_tutorial/Adding sidebars">Adding sidebars</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/User_Notifications_and_Alerts" title="XUL/School_tutorial/User Notifications and Alerts">User notifications and alerts</a></li> - </ul></dd> - <dt>Intermediate functionality</dt> - <dd><ul> - <li><a href="/en-US/docs/XUL/School_tutorial/Intercepting_Page_Loads" title="XUL/School_tutorial/Intercepting Page Loads">Intercepting page loads</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Connecting_to_Remote_Content" title="XUL/School_tutorial/Connecting to Remote Content">Connecting to Remote Content</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Handling_Preferences" title="XUL/School_tutorial/Handling Preferences">Handling preferences</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Local_Storage" title="XUL/School_tutorial/Local Storage">Local Storage</a></li> - </ul></dd> - <dt>Advanced topics</dt> - <dd><ul> - <li><a href="/en-US/docs/XUL/School_tutorial/The_Box_Model" title="XUL/School_tutorial/The Box Model">The Box Model</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/XPCOM_Objects" title="XUL/School_tutorial/XPCOM Objects">XPCOM Objects</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Observer_Notifications" title="XUL/School_tutorial/Observer Notifications">Observer Notifications</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Custom_XUL_Elements_with_XBL" title="XUL/School_tutorial/Custom XUL Elements with XBL">Custom XUL Elements with XBL</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Mozilla_Documentation_Roadmap" title="XUL/School_tutorial/Mozilla Documentation Roadmap">Mozilla Documentation Roadmap</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Useful_Mozilla_Community_Sites" title="XUL/School_tutorial/Useful Mozilla Community Sites">Useful Mozilla Community Sites</a></li> - </ul></dd> - <dt>Appendices</dt> - <dd><ul> - <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_A:_Add-on_Performance" title="XUL/School_tutorial/Appendix A: Add-on Performance">Appendix A: Add-on Performance</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_B:_Install_and_Uninstall_Scripts" title="XUL/School_tutorial/Appendix B: Install and Uninstall Scripts">Appendix B: Install and Uninstall Scripts</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_C:_Avoid_using_eval_in_Add-ons" title="XUL/School_tutorial/Appendix C: Avoid using eval in Add-ons">Appendix C: Avoiding using eval in Add-ons</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_D:_Loading_Scripts" title="XUL/School_tutorial/Appendix D: Loading Scripts">Appendix D: Loading Scripts</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/DOM_Building_and_HTML_Insertion" title="XUL/School_tutorial/Appendix E: DOM Building and HTML Insertion">Appendix E: DOM Building and HTML Insertion</a></li> - <li><a href="/en-US/docs/XUL/School_tutorial/Appendix_F:_Monitoring_DOM_changes" title="XUL/School_tutorial/Appendix F: Monitoring DOM changes">Appendix F: Monitoring DOM changes</a></li> - </ul></dd> -</dl> -<p>The XUL School project was developed by <a href="http://appcoast.com/" title="http://appcoast.com/">Appcoast</a> (formerly Glaxstar). The project is now published here following its <a href="/Project:Copyrights" title="https://developer.mozilla.org/Project:Copyrights">sharing licenses</a>. Its contents have been modified from the original source as necessary.</p> diff --git a/files/id/archive/mozilla/xul/school_tutorial/perkenalan/index.html b/files/id/archive/mozilla/xul/school_tutorial/perkenalan/index.html deleted file mode 100644 index 5ce760d1be..0000000000 --- a/files/id/archive/mozilla/xul/school_tutorial/perkenalan/index.html +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Perkenalan -slug: Archive/Mozilla/XUL/School_tutorial/Perkenalan -translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School/Introduction ---- -<div> - {{Next("XUL_School/Getting_Started_with_Firefox_Extensions")}}</div> -<p><span id="result_box" lang="id"><span title="Welcome to the XUL School Tutorial!">Selamat datang di Tutorial Sekolah XUL !</span></span></p> -<p><span id="result_box" lang="id"><span title="This tutorial is meant to be the stepping stone that will turn you into a professional Firefox extension developer in no time.">Tutorial ini dimaksudkan untuk menjadi batu loncatan yang akan mengubah Anda menjadi seorang pengembang ekstensi Firefox profesional dalam waktu singkat . </span><span title="We have poured years of XUL experience into it, providing many solutions for problems extension developers commonly run into.">Kami telah dituangkan tahun pengalaman XUL ke dalamnya , menyediakan banyak solusi untuk masalah pengembang ekstensi pada umumnya.</span></span></p> -<p>XUL School was created by <a href="http://appcoast.com/" title="http://appcoast.com/">Appcoast</a> (formerly Glaxstar), one of the few companies dedicated to building high-quality Firefox extensions. A team of over a dozen XUL developers conformed Glaxstar at the time this tutorial was created, and the combined experiences of years creating Firefox extensions are reflected here.</p> -<p>With this tutorial you'll learn how to develop Firefox extensions. You'll learn how to quickly do the most common tasks in extension development, comparing several different approaches to solve them. In most cases we'll provide code samples that you can easily copy and adapt to your needs, as well as some working example extensions. The tutorial aims to be as brief as possible, often falling back on Mozilla documentation for more detailed information. You can think of it as a quick guide to the expansive world that is the Mozilla platform. Most links in this documentation are meant to be clicked and read.</p> -<p>We'll start with a brief introduction to some key concepts, in case you're not familiar with Mozilla and Firefox.</p> -<h2 id="Mozilla_and_Firefox">Mozilla and Firefox</h2> -<p>The term <a href="http://en.wikipedia.org/wiki/Mozilla" title="http://en.wikipedia.org/wiki/Mozilla">Mozilla</a> can be used to refer to several concepts: the Mozilla project, the <a href="http://en.wikipedia.org/wiki/Mozilla_Foundation" title="http://en.wikipedia.org/wiki/Mozilla_Foundation">Mozilla Foundation</a>, the <a href="http://en.wikipedia.org/wiki/Mozilla_Corporation" title="http://en.wikipedia.org/wiki/Mozilla_Corporation">Mozilla Corporation</a> and the old <a href="http://en.wikipedia.org/wiki/Mozilla_Application_Suite" title="http://en.wikipedia.org/wiki/Mozilla_Application_Suite">Mozilla browser</a>. Even Firefox is sometimes referred to as "Mozilla". If you're unfamiliar with these terms, it's good that you take some time and learn a little about Mozilla. This will help you understand the culture that surrounds the Mozilla community.</p> -<p>Mozilla has spawned several <a href="http://www.mozilla.org/projects/" title="http://www.mozilla.org/projects/">products and projects</a>, the most notable being the Mozilla Firefox web browser. Firefox is one of the most successful open source projects in history, combining the openness, standards-compliance and sophistication of open source with the focus on user experience and powerful outreach more commonly seen in less open companies.</p> -<p>Version 1.0 of Firefox was released in November 2004, version 2.0 in October 2006, and version 3.0 in June 2008. This tutorial was written after Firefox 3 was released, and has been updated with time. While most of it should still work for creating extensions Firefox 3 (and even Firefox 2), it is strongly recommended that you aim to support modern Firefox versions, to encourage users to stay up to date with security fixes. A release that is more than 6 months old is likely vulnerable to published security bugs.</p> -<p>Firefox and other Mozilla applications can be seen as composed of two different parts: a user interface layer that is distinct for each project, and a common platform on top of which the interface layer is built. The user interface is built with technology known as <a href="/en-US/docs/XUL" title="XUL">XUL</a>, and the platform is known as <a href="/en-US/docs/XULRunner" title="XULRunner">XULRunner</a>.</p> -<h2 id="XUL">XUL</h2> -<p><a href="/en-US/docs/XUL" title="XUL">XUL</a> (pronounced "zool") is one of many technologies used for creating Mozilla-based products and extensions. It is only one part of the development landscape, but given that it's practically exclusive to Mozilla, it tends to be used to identify all Mozilla-related development. You'll sometimes read terms like "XUL applications" and "XUL extensions", but rarely will they refer to projects that are exclusively built with XUL. It usually means that the projects were built using Mozilla technologies. Even this project, called XUL School, covers several other technologies such as JavaScript, CSS, XBL and XPCOM.</p> -<h2 id="XULRunner">XULRunner</h2> -<p><a href="/en-US/docs/XULRunner" title="XULRunner">XULRunner</a> includes the <a href="/en-US/docs/Gecko" title="Gecko">Gecko rendering engine</a>, the <a href="/en-US/docs/Necko" title="Necko">Necko networking library</a>, and several other components that provide OS-independent file management, accessibility, and localization, among others. It is this very powerful platform that has allowed such a fast growth of the development community surrounding Mozilla and Firefox.</p> -<p>XULRunner is available in binary form at the <a href="/en-US/docs/XULRunner" title="XULRunner">XULRunner</a> page, and it is the base for several projects, such as Songbird, Miro and Eudora. There's a very comprehensive list of XULRunner applications in the <a href="/en-US/docs/XULRunner_Hall_of_Fame" title="XULRunner Hall of Fame">XULRunner Hall of Fame</a>.</p> -<h3 id="Gecko">Gecko</h3> -<p>The <a href="/en-US/docs/Gecko" title="Gecko">Gecko engine</a> is the part of Firefox used to render web pages and its own user interface. You can identify the level of compatibility of web standards in <a href="http://en.wikipedia.org/wiki/List_of_web_browsers#Gecko-based_browsers" title="http://en.wikipedia.org/wiki/List_of_web_browsers#Gecko-based_browsers">Gecko-based browsers</a> looking at their <a href="http://en.wikipedia.org/wiki/User_agent" title="http://en.wikipedia.org/wiki/User_agent">User Agent</a> string, which should include the Gecko version. Gecko versions are somewhat independent from Firefox versions, and you can see a mapping of Firefox versions and Gecko versions at the <a href="/en-US/docs/Gecko" title="Gecko">Gecko page</a>. The User Agent String for Firefox at the time of this writing (in US English, Mac OS X) is:</p> -<p>Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:<strong>7.0.1</strong>) Gecko/20100101 Firefox/7.0.1</p> -<p>The highlighted section is the Gecko version: 7.0.1. You can read and copy the user agent string of any Firefox window, choosing "Help > Troubleshooting Information" from the main menu.</p> -<h2 id="On_to_the_Tutorial">On to the Tutorial</h2> -<p>With the basic concepts out of the way, we can now get right into extension development. You are probably still wondering what exactly is an extension, what can it do, and how can you make them. Well, this whole tutorial is devoted to explaining that to you.</p> -<p>Welcome to the world of extension development. Now let's get to it.</p> -<div> - {{Next("XUL_School/Getting_Started_with_Firefox_Extensions")}}</div> -<p><small>This tutorial was kindly donated to Mozilla by Appcoast.</small></p> diff --git a/files/id/archive/mozilla/xul/school_tutorial/the_essentials_of_an_extension/index.html b/files/id/archive/mozilla/xul/school_tutorial/the_essentials_of_an_extension/index.html deleted file mode 100644 index 9fa34889f3..0000000000 --- a/files/id/archive/mozilla/xul/school_tutorial/the_essentials_of_an_extension/index.html +++ /dev/null @@ -1,344 +0,0 @@ ---- -title: The Essentials of an Extension -slug: Archive/Mozilla/XUL/School_tutorial/The_Essentials_of_an_Extension -translation_of: Archive/Add-ons/Overlay_Extensions/XUL_School/The_Essentials_of_an_Extension ---- -<p>{{ PreviousNext("XUL_School/Getting_Started_with_Firefox_Extensions", "XUL_School/Setting_Up_a_Development_Environment") }}</p> -<h2 id="The_install.rdf_File">The install.rdf File</h2> -<p>In the last section we looked at the contents of the Hello World extension. Now we'll look into its files and code, starting with the <em>install.rdf</em> file. You can open it with any text editor.</p> -<p>The file is formatted in a special flavor of XML called <a class="external" href="http://en.wikipedia.org/wiki/Resource_Description_Framework">RDF</a>. RDF used to be the central storage mechanism for Firefox, but it is now being replaced for a simpler database system. We'll discuss both of these storage systems further ahead in the tutorial.</p> -<p>Now let's look at the important parts of the file.</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><em:id>helloworld@xulschool.com</em:id></pre> - </div> -</div> -<p>This is the unique identifier for the extension. Firefox needs this to distinguish your extension from other extensions, so it is required that you have an ID that is unique.</p> -<p>There are two accepted standards for add-on ids. One is the email-like format in the Hello World example, which should be something like <span style="color: #0000ff;"><em><project-name>@<yourdomain></em></span>. The other standard practice is to use a generated <a class="external" href="http://en.wikipedia.org/wiki/Uuid">UUID</a> string, which is extremely unlikely to be duplicated. Unix-based systems have a command line tool called <em>uuidgen</em> that generates UUIDs. There are also downloadable tools for all platforms that generate them. The enclosing brackets are just notation, and they're just common practice. As long as your id has some uniqueness to it, it's OK to use either form.</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><em:name>XUL School Hello World</em:name> -<em:description>Welcome to XUL School!</em:description> -<em:version>0.1</em:version> -<em:creator>Appcoast</em:creator> -<span class="code-comment"><em:homepageURL>https://developer.mozilla.org/en/XUL_School</em:homepageURL></span></pre> - </div> -</div> -<p>This is the data that is displayed before and after the extension is installed, that you can see in the Add-ons Manager. There are many other tags that can be added, for contributors and translators. The <a href="/en/Install_Manifests" title="en/Install Manifests">full specification</a> of the install.rdf file has all the details.</p> -<p>Since extensions can be translated to multiple languages, it is often necessary to translate the extension's description, or even its name. A localized description and name can be added with the following code:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><em:localized> - <Description> - <em:locale>es-ES</em:locale> - <em:name>XUL School Hola Mundo</em:name> - <em:description>Bienvenido a XUL School!</em:description> - </Description> -</em:localized></pre> - </div> -</div> -<p>The <em>es-ES</em> locale string indicates that this is the Spanish (es) localization for Spain (ES). You can add as many <em><em:localized></em> sections as you need. For Firefox 2, localizing this file is a <a href="/en/Localizing_extension_descriptions#Localizing_before_Gecko_1.9" title="en/Localizing extension descriptions#Localizing before Gecko 1.9">little more complicated</a>. We'll discuss localization further ahead in this section.</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><em:type>2</em:type></pre> - </div> -</div> -<p>This specifies that the add-on being installed is an extension. You can read about different possible types in the <a href="/en/Install_Manifests#type" title="en/Install Manifests#type">install.rdf specification</a>.</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><em:targetApplication> - <Description> - <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> - <em:minVersion>4.0</em:minVersion> - <em:maxVersion>10.*</em:maxVersion> - </Description> -</em:targetApplication> -</pre> - </div> -</div> -<p>This node specifies the target application and target versions for the extension, specifically Firefox, from version 4 up to version 10. The UUID is Firefox's unique ID. Other Mozilla and Mozilla-based applications such as Thunderbird and Seamonkey have their own. You can have an extension that works on multiple applications and versions. For example, if you create a Firefox extension, it would normally take little effort to port it to SeaMonkey, which has very similar features and UI.</p> -<p>The min and max version specify the version range in which the extension can be installed. Here's more about the <a href="/en/Toolkit_version_format" title="en/Toolkit version format">version format</a>. If the application or version range don't match, you won't be allowed to install the extension, or the extension will be installed in a disabled state. Users can disable version checks through preferences or installing add-ons like the <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/15003" title="https://addons.mozilla.org/en-US/firefox/addon/15003">Add-on Compatibility Reporter</a>. Beginning with Firefox 11, add-ons will default to compatible and Firefox will mostly ignore the version range. Testing your add-ons with every Firefox version is always recommended, though.</p> -<p>This is the information Firefox and other Mozilla applications need to install an add-on. Any errors or missing information will cause the installation process to fail, or the extension to be installed in a disabled state.</p> -<h2 id="The_chrome.manifest_File">The chrome.manifest File</h2> -<blockquote> - <p><span style="color: #0000ff;">Chrome is the set of user interface elements of the application window that are outside of a window's content area.</span> Toolbars, menu bars, progress bars, and window title bars are all examples of elements that are typically part of the chrome.</p> -</blockquote> -<p>Taken from <a href="/en/Chrome_Registration" title="en/Chrome Registration">Chrome Registration</a>.</p> -<p>In other words, the chrome is everything you see in Firefox. All Firefox windows can be seen as having two parts: (1) the chrome and (2) possibly a content area, like the one that displays web pages in a Firefox tab. Windows like the Downloads window are pure chrome. Most of the code for an extension resides in the chrome folder, just like in the Hello World example.</p> -<p>As we saw in the directory structure of the unpacked extension, the chrome is composed of 3 sections: <span style="color: #0000ff;">content</span>, <span style="color: #0000ff;">locale</span> and <span style="color: #0000ff;">skin</span>. The 3 are necessary for most extensions. If we open the <em>chrome.manifest</em> file (again, any text editor will do), we see that the same 3 sections are mentioned:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">content xulschoolhello content/ -skin xulschoolhello classic/1.0 skin/ -locale xulschoolhello en-US locale/en-US/ -</pre> - </div> -</div> -<p><span style="color: #0000ff;">The <em>chrome.manifest</em> file tells Firefox where to look for chrome files.</span> The text is spaced to look like a table, but that is not necessary. The parser ignores repeated spaces.</p> -<p>The first word in a line tells Firefox what it is that is being declared (content, skin, locale, or others mentioned later on). The second is the package name, which we will explain shortly.</p> -<p>Skin and locale packages have a third value to specify what locale or what skin they are extending. There can be multiple skin and locale entries relating to different skins and locales. The most common case is having one skin entry for the global skin, <em>classic/1.0</em>, and multiple locale entries, one for each translation. Finally, the location is specified.</p> -<p>There are some additional options that can be included in the entries of a <em>chrome.manifest</em> file. They are documented in the <a href="/en/Chrome_Registration" title="en/Chrome Registration">Chrome Registration</a> page. Notably, we can have entries that are OS-specific. This is important because the appearance of the browser is very different for each operating system. If our extension needed to look differently on different systems, we could change the manifest file so that it looks like this:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">content xulschoolhello content/ -skin xulschoolhello classic/1.0 skin/unix/ -skin xulschoolhello classic/1.0 skin/mac/ os=Darwin -skin xulschoolhello classic/1.0 skin/win/ os=WinNT -locale xulschoolhello en-US locale/en-US/ -</pre> - </div> -</div> -<p>This way we can have separate skins for Windows, Mac OS X, and Linux (plus other unix-like systems), each defined in a separate directory. Since most other systems are Unix-based, the "unix" skin is the default, with no flags.</p> -<h2 id="The_Chrome">The Chrome</h2> -<p>As mentioned earlier, the chrome is composed of 3 sections: content, locale and skin. The content is the most important section, holding user interface (XUL) and script (JS) files. The skin section has the files that define most of the look and feel of the UI (using CSS and images, just like web pages). Finally, the locale section holds all text used in the extension, in DTD and properties files. This division allows other developers to create themes that replace skins, and translators to create localizations in different languages, all of this without having to change your extension or your code. This gives Firefox extensions a great deal of flexibility.</p> -<p>Chrome files are accessed through the chrome protocol. This is what a chrome URI looks like:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">chrome:<span class="code-comment">//packagename/section/path/to/file</span></pre> - </div> -</div> -<p>So, for instance, if I want to access the file <em>browserOverlay.xul </em>in the extension, the chrome URI would be <em><a class="external" rel="freelink">chrome://xulschoolhello/content/browserOverlay.xul</a></em>.</p> -<p>If you have too many files in the content and you want to organize them in subdirectories, there's nothing you need to change in <em>chrome.manifest</em>, all you need is to add the right path after <em>content</em> in the URI.</p> -<p>Skin and locale files work in the same way, and you don't need to specify skin names or locale names. So, to access the DTD file in the Hello World extension, the chrome path is <em><a class="external" rel="freelink">chrome://xulschoolhello/locale/browserOverlay.dtd</a></em>. Firefox knows what locale to look for.</p> -<p>Here's an interesting experiment. Open a new Firefox tab, type <em><a class="external" rel="freelink">chrome://mozapps/content/downloads/downloads.xul</a></em> on your location bar and press ENTER. Surprised? You just opened the Downloads window in a Firefox tab! You can access any chrome file by just typing its URI in the location bar. This can come in handy if you want to inspect script files that are part of Firefox, other extensions, or your own. Most of these files are opened as text files, with the exception of XUL files, which are executed and displayed like you would normally see them on a window.</p> -<h3 id="Content">Content</h3> -<p>There are 2 files in the content directory. Let's look at the XUL file first.</p> -<p><a href="/en/XUL" title="en/XUL">XUL</a> files are XML files that define the user interface elements in Firefox and Firefox extensions. XUL was inspired by HTML, so you'll see many similarities between the two. However, XUL is also an improvement over HTML, having learned from many of the mistakes made during the evolution of HTML. XUL allows you to create richer and more interactive interfaces than the ones you can create with HTML, or at least XUL makes it easier.</p> -<p>XUL files usually define one of two things: windows or overlays. The file you opened before, <em>downloads.xul</em>, has the code that defines the Downloads window. The XUL file included in the Hello World extension is an overlay. An overlay extends an existing window, adding new elements to it or replacing some of the elements in it. The line that we skipped in the <em>chrome.manifest</em> file states that this XUL file is an overlay for the main browser window:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">overlay chrome:<span class="code-comment">//browser/content/browser.xul chrome://xulschoolhello/content/browserOverlay.xul</span></pre> - </div> -</div> -<p>With this line, Firefox knows that it needs to take the contents of <em>browserOverlay.xul</em> and overlay it on the main browser window, <em>browser.xul</em>. You can declare overlays for any window or dialog in Firefox, but overlaying the main browser window is the most common case by far.</p> -<p>Now let's look at the contents of our XUL file. We'll skip the first few lines because they relate to skin and locale, and we'll cover them later.</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><overlay id="xulschoolhello-browser-overlay" - xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"></pre> - </div> -</div> -<p>The root element in the file is an <em>overlay</em>. Other XUL documents use the <em>window</em> or <em>dialog</em> tag. The element has a unique id, which you should have on most elements in your XUL. The second attribute is the namespace, which is something you should always define in your XUL root element. It says that this node and all child nodes are XUL. You only need to change namespace declarations when you mix different types of content in the same document, such as XUL with HTML or SVG.</p> -<div class="panel" style="border-width: 1px;"> - <div class="panelContent"> - <div class="note"> - You may have noticed the naming we use on several places, such as the id <em>xulschoolhello-browser-overlay</em>. This is the namespacing standard that we use to avoid conflicts with Firefox and other extensions, as well as making some development tasks easier. We namespace all ids and style classes in overlay elements because they will be mixed with other elements in the main browser window. If we used generic ids like <em>container</em> or <em>input</em>, they will likely conflict with ids used within Firefox, or with ids from other extension overlays. Using namespaces minimizes compatibility problems with other extensions. We use camel casing for file names, and all lower case with dashes for element ids and CSS style class names, but you're free to use your own system.</div> - </div> -</div> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><script type=<span class="code-quote">"application/x-javascript"</span> - src=<span class="code-quote">"chrome:<span class="code-comment">//xulschoolhello/content/browserOverlay.js"</span> /></span></pre> - </div> -</div> -<p>Just like in HTML, this includes a JavaScript script file. You can have as many <em>script</em> elements in a XUL document as you need. We'll look into its code later.</p> -<div class="panel" style="border-width: 1px;"> - <div class="panelContent"> - <div class="note"> - You also probably noticed how we format our code, and wonder about the rules we follow. Our general rule on line length is not having lines longer than 80 characters. This feels very restrictive, specially with XML files, but the number was chosen to allow pretty much any text editor to handle these files easily. Even old command line editors work well with files that cut their lines at 80 characters. The tabulation is very straightforward: 2 blank space indents. We never use actual tab characters, with the exception of Makefiles, which will be covered later on. Most of our coding standards are based on Mozilla's or other known and used standards.</div> - </div> -</div> -<p> We'll skip some code that is covered in the locale section, moving on to the most important part of the content:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><menubar id="main-menubar"> - <menu id="xulschoolhello-hello-menu" label="&xulschoolhello.hello.label;" - accesskey="&xulschoolhello.helloMenu.accesskey;" insertafter="helpMenu"> - <menupopup> - <menuitem id="xulschoolhello-hello-menu-item" - label="&xulschoolhello.hello.label;" - accesskey="&xulschoolhello.helloItem.accesskey;" - oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);" /> - </menupopup> - </menu> -</menubar> - -<vbox id="appmenuSecondaryPane"> - <menu id="xulschoolhello-hello-menu-2" label="&xulschoolhello.hello.label;" - accesskey="&xulschoolhello.helloMenu.accesskey;" - insertafter="appmenu_addons"> - <menupopup> - <menuitem id="xulschoolhello-hello-menu-item-2" - label="&xulschoolhello.hello.label;" - accesskey="&xulschoolhello.helloItem.accesskey;" - oncommand="XULSchoolChrome.BrowserOverlay.sayHello(event);" /> - </menupopup> - </menu> -</vbox> -</pre> - </div> -</div> -<p>This is the code that adds the <em>Hello World</em> menu to the browser window.</p> -<p>There are two similar code blocks, because in modern versions of Firefox, particularly on Windows, a single Firefox menu button is presented, with simplified menu options, rather than an extensive menu bar. The second code block covers the common menu button case; the first code block covers all other cases. Check <em>Menu Bar </em>under the <em>Options </em>menu of the menu button to toggle display of the classic menu on Windows and some Linux distributions.</p> -<p>In order to write this code, we needed some knowledge of the XUL code in <em>browser.xul</em>. We needed to know that the id of the right pane in the unified menu is <em>appmenuSecondaryPane</em>. We're adding a menu of our own, and telling Firefox to add it in that pane, right after the Add-ons item. That's the purpose of the attribute:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">insertafter=<span class="code-quote">"appmenu_addons"</span> -</pre> - </div> -</div> -<p><em>appmenu_addons</em> is the id of the menu element that corresponds to the Add-ons menu item in the main menu. We'll see later how we can find out things like the ids of browser elements, but for now let's look at the elements that compose the Hello World menu.</p> -<p>For the classic menu, we added the Hello World menu right in the "root" of the menu so that it would be very easy for you to spot it, but this is not a recommended practice. Imagine if all extensions added menus to the top menu; having a few extensions would make it look like an airplane dashboard, full of knobs and switches. In the case of the unified menu, things are a little more difficult due to lack of options. If your menu item fits in the Web Developer section, it is recommended that you add it there. Otherwise, the root menu might be your only recourse.</p> -<p>One recommended location for menus in the classic menu vase is under the <em>Tools</em> menu, so the code should really look like this:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><menupopup id=<span class="code-quote">"menu_ToolsPopup"</span>> - <menu id=<span class="code-quote">"xulschoolhello-hello-menu"</span> label=<span class="code-quote">"&</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.hello.label;"</span> - accesskey=<span class="code-quote">"&</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.helloMenu.accesskey;"</span> - insertbefore=<span class="code-quote">"</span>devToolsEndSeparator<span class="code-quote">"</span>> - <menupopup> - <menuitem id=<span class="code-quote">"</span><span class="code-quote">xulschoolhello</span><span class="code-quote">-hello-menu-item" - </span> label=<span class="code-quote">"&</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.hello.label;"</span> - accesskey=<span class="code-quote">"&</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.helloItem.accesskey;"</span> - oncommand=<span class="code-quote">"XULSchoolChrome.BrowserOverlay.sayHello(event);"</span> /> - </menupopup> - </menu> -</menupopup> -</pre> - </div> -</div> -<p>We're overlaying the menu that is deeper into the XUL tree, but it doesn't matter because all we need is the id of the element we want to overlay. In this case it is the <a href="/en/XUL/menupopup" title="en/XUL/menupopup">menupopup</a> element that's inside of the Tools <a href="/en/XUL/menu" title="en/XUL/menu">menu</a> element. The <em>insertbefore</em> attribute tells Firefox to add the menu at the bottom of the dev tools section, above its end separator. We'll discuss more about menus later on in the tutorial.</p> -<p>Now let's look at the actual code:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">oncommand=<span class="code-quote">"XULSchoolChrome.BrowserOverlay.sayHello(event);"</span> -</pre> - </div> -</div> -<p>This attribute defines an event handler. The <em>command</em> event is the most frequently used in Firefox, since it corresponds to the main action for most UI elements. The value of the attribute is JavaScript code that invokes a function. This function is defined in the JS file that was included with the <em>script</em> tag. The JS function will be called once the user clicks on the menu item in the Hello World menu. All event handlers define a special object named <em>event</em>, which is usually good to pass as an argument to the function. Event handlers are explained in greater depth further ahead.</p> -<p>Now let's look at the JavaScript file and see what's going on when the event is fired.</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="brush: js">/** - * XULSchoolChrome namespace. - */ -if ("undefined" == typeof(XULSchoolChrome)) { - var XULSchoolChrome = {}; -};</pre> - </div> -</div> -<p>The <em>XULSchoolChrome</em> namespace is defined. All objects and variables we define in this JavaScript are global, meaning that scripts in Firefox and other extensions can see them and interact with them. This also means that if we define an object called <em>MenuHandler</em> or some other generic name, it's likely going to conflict with an existing object. What we do here is define a single global object: <em>XULSchoolChrome</em>. Now we know that all of our objects are inside this object, which is unlikely to be duplicated or overwritten by other extensions.</p> -<p>You can read more about the <a href="/en/JavaScript/Reference/Operators/typeof" title="en/Core JavaScript 1.5 Reference/Operators/Special Operators/typeof Operator"><span class="external">typeof operator</span></a>. If you're unfamiliar with JavaScript or this particular syntax, initializing an object as <em>{}</em> is the equivalent of initializing it to <em>new Object()</em>.</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="brush: js">/** - * Controls the browser overlay <span class="code-keyword">for</span> the Hello World extension. - */ -XULSchoolChrome.BrowserOverlay = {</pre> - </div> -</div> -<p>Finally, <em>BrowserOverlay</em> is our object. Naming and referencing objects in such a long and verbose manner can feel uncomfortable at first, but it's worth the cost.</p> -<div class="panel" style="border-width: 1px;"> - <div class="panelContent"> - <div class="note"> - We use <a class="external" href="http://java.sun.com/j2se/javadoc/writingdoccomments/index.html">Javadoc</a> style comments on all namespaces, objects and object members. This is a similar standard to the one used in Mozilla code, and some tools can generate documentation automatically from Javadoc.</div> - </div> -</div> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="brush: js">sayHello : function(aEvent) { - let stringBundle = document.getElementById("xulschoolhello-string-bundle"); - let message = stringBundle.getString("xulschoolhello.greeting.label"); - - window.alert(message); -}</pre> - </div> -</div> -<p>And, finally, this is our function declaration. Three lines of code are all we need for it to work. The first line in the body of the function declares a variable that will hold the <a href="/en/XUL/stringbundle" title="en/XUL/stringBundle">stringbundle</a> element defined in the overlay. The variable is declared using <em>let,</em> which is similar to <em>var</em> but with more restricted scope. Here you can read more about <a href="/en/JavaScript/Reference/Statements/let" title="let"><span class="external">let declarations</span>.</a></p> -<p>Just like in regular JS, we can use the <a href="/en/DOM" title="en/DOM"><span class="external">DOM</span></a> (Document Object Model) in order to manipulate the XUL document. First we get a reference of the <a href="/en/XUL/stringbundle" title="en/XUL/stringbundle"><span class="external">stringbundle element</span></a> in the document. This is a special element that allows us to obtain localized strings dynamically, by only providing a "key" that identifies the string. This is what we do on the second line. We call the <a href="/en/XUL/stringbundle#m-getString" title="en/XUL/stringbundle#m-getString">getString method</a> of the bundle element and get the localized message to be displayed. We then call the <a href="/en/DOM/window.alert" title="en/DOM/window.alert">window.alert</a> function with the message, just like we would do in an HTML document.</p> -<h3 id="Locale">Locale</h3> -<p>There are two types of locale files: DTD and properties, and in this example we use them both. DTD is the most efficient way of showing text in XUL, so you should use it whenever possible. It is somewhat inflexible so it can't be used for dynamically generated text, hence the need for an alternate way of getting localized strings.</p> -<p>Looking back at the menu code, you probably noticed some attributes such as this:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">label=<span class="code-quote">"&xulschoolhello.hello.label;"</span> accesskey=<span class="code-quote">"&xulschoolhello.helloItem.accesskey;"</span></pre> - </div> -</div> -<p>These attributes define the text that you see on the menus, and they are string keys that are defined in our DTD file, <em>browserOverlay.dtd</em>. The DTD file was included in the XUL file with the following code:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><!DOCTYPE overlay SYSTEM "chrome://xulschoolhello/locale/browserOverlay.dtd" ></pre> - </div> -</div> -<p>And in the DTD file you can see the association between keys and localized strings:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><!ENTITY xulschoolhello.hello.label <span class="code-quote">"Hello World!"</span>> -<!ENTITY xulschoolhello.helloMenu.accesskey <span class="code-quote">"l"</span>> -<!ENTITY xulschoolhello.helloItem.accesskey <span class="code-quote">"H"</span>></pre> - </div> -</div> -<p>Notice that on the XUL file you enclose the string key with <em>&</em> and <em>;</em> while on the DTD file you only specify the key. You may get weird parsing errors or incorrect localization if you don't get this right.</p> -<p>Access keys are the shortcuts that allow you to quickly navigate a menu using only the keyboard. They are also the only way to navigate a menu for people with accessibility problems, such as partial or total blindness, or physical disabilities that make using a mouse very difficult or impossible. You can easily recognize the access keys on Windows because the letter that corresponds to the access key is underlined, as in the following image:</p> -<div> - <p><img alt="" class="internal" src="../../../../@api/deki/files/4226/=accesskeys.png" style="width: 167px; height: 58px;"></p> -</div> -<p>Most user interface controls have the <em>accesskey</em> attribute, and you should use it. The value of the access key is localized because it should match a letter in the label text. You should also be careful to avoid access key repetition. For example, within a menu or submenu, access keys should not be repeated. In a window you have to be more careful picking access keys because there are usually more controls there. You have to be specially careful when picking access keys on an overlay. In our case, we can't use the letter "H" as an accesskey in the Main menu item, because it would be the same as the access key in the Help menu. Same goes with "W" and the Window menu on Mac OS. So we settled on the letter "l".</p> -<p>DTD strings are resolved and set when the document is being loaded. If you request the <em>label</em> attribute value for the Hello World menu using DOM, you get the localized string, not the string key. You cannot dynamically change an attribute value with a new DTD key, you have to set the new value directly:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="brush: js">let helloItem = document.getElementById(<span class="code-quote">"xulschoolhello-hello-menu-item"</span>); - -<span class="code-comment">// The alert will say <span class="code-quote">"Hello World!"</span> -</span>alert(helloItem.getAttribute(<span class="code-quote">"label"</span>)); -<span class="code-comment">// Wrong -</span>helloItem.setAttribute(<span class="code-quote">"label"</span>, <span class="code-quote">"&</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.hello2.label;"</span>); -<span class="code-comment">// Better -</span>helloItem.setAttribute(<span class="code-quote">"label"</span>, <span class="code-quote">"Alternate message"</span>); -<span class="code-comment">// Right! -</span>helloItem.setAttribute(<span class="code-quote">"label"</span>, someStringBundle.getString(<span class="code-quote">"</span><span class="code-quote">xulschoolhello</span><span class="code-quote">.hello2.label"</span>));</pre> - </div> -</div> -<p>This is the reason DTD strings are not a solution for all localization cases, and the reason we often need to include string bundles in XUL files:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><stringbundleset id="stringbundleset"> - <stringbundle id="xulschoolhello-string-bundle" - src="chrome://xulschoolhello/locale/browserOverlay.properties" /> -</stringbundleset></pre> - </div> -</div> -<p>The <a href="/en/XUL/stringbundleset" title="en/XUL/stringbundleset">stringbundleset</a> element is just a container for <a href="/en/XUL/stringbundle" title="en/XUL/stringbundle">stringbundle</a> elements. There should only be one per document, which is the reason why we overlay the <em>stringbundleset</em> that is in <em>browser.xul</em>, hence the very generic id. We don't include the <em>insertbefore</em> or <em>insertafter</em> attributes because the ordering of string bundles doesn't make a difference. The element is completely invisible. If you don't include any of those ordering attributes in an overlay element, Firefox will just append your element as the last child of the parent element.</p> -<p>All you need for the string bundle is an id (to be able to fetch the element later) and the chrome path to the properties file. And, of course, you need the properties file:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">xulshoolhello.greeting.label = Hi! How are you?</pre> - </div> -</div> -<p>The whitespace around the equals sign is ignored. Just like in <em>install.rdf</em>, comments can be added using the # character at the beginning of the line. Empty lines are ignored as well.</p> -<p>You will often want to include dynamic content as part of localized strings, like when you want to inform the user about some stat related to the extension. For example: "Found 5 words matching the search query". Your first idea would probably be to simply concatenate strings, and have one "Found" property and another "words matching..." property. This is not a good idea. It greatly complicates the work of localizers, and grammar rules on different languages may change the ordering of the sentence entirely. For this reason it's better to use parameters in the properties:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java">xulshoolhello.search.label = Found %S words matching the search query!</pre> - </div> -</div> -<p>Then you use <a href="/en/XUL/stringbundle#m-getFormattedString" title="en/XUL/stringbundle#m-getFormattedString">getFormattedString</a> instead of <em>getString</em> in order to get the localized string. Thanks to this we don't need to have multiple properties, and life is easier for translators. You can read more about it on the <a href="/en/XUL_Tutorial/Property_Files#Text_Formatting" title="en/XUL Tutorial/Property Files#Text Formatting">Text Formatting section</a> of the XUL Tutorial. Also have a look at the <a href="/en/Localization_and_Plurals" title="en/Localization and Plurals">Plurals and Localization</a> article, that covers a localization feature in Firefox that allows you to further refine this last example to handle different types of plural forms that are also language-dependent.</p> -<h3 id="Skin">Skin</h3> -<p>Styling XUL is very similar to styling HTML. We'll look into some of the differences when we cover the XUL Box Model, and other more advanced topics. There isn't much styling you can do to a minimal menu and a very simple alert message, so the Hello World extension only includes an empty CSS file and the compulsory global skin file:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> - <pre class="code-java"><?xml-stylesheet type=<span class="code-quote">"text/css"</span> href=<span class="code-quote">"chrome:<span class="code-comment">//global/skin/"</span> ?> -</span><?xml-stylesheet type=<span class="code-quote">"text/css"</span> - href=<span class="code-quote">"chrome:<span class="code-comment">//xulschoolhello/skin/browserOverlay.css"</span> ?></span></pre> - </div> -</div> -<p>The global skin CSS file holds the default styles for all XUL elements and windows. Forgetting to include this file in a XUL window usually leads to interesting and often unwanted results. In our case we don't really need to include it, since we're overlaying the main browser XUL file, and that file already includes this global CSS. At any rate it's better to always include it. This way it's harder to make the mistake of not including it. You can enter the chrome path in the location bar and inspect the file if you're curious.</p> -<p>This covers all of the files in the Hello World extension. Now you should have an idea of the basics involved in extension development, so now we'll jump right in and set up a development environment. But first, a little exercise.</p> -<h2 id="Exercise">Exercise</h2> -<p>Make the following changes to the example extension:</p> -<ul> - <li>Edit the welcome message that is displayed in the alert window.</li> - <li>Move the Hello World menu to the <em>Tools</em> menu, where it belongs.</li> -</ul> -<p>Repackage the XPI. Issue the following command from within the extension root directory on Linux or Mac OS X:</p> -<pre>zip ../xulschoolhello2.xpi **/* -</pre> -<p>On Windows, use a ZIP tool to compress all files and subdirectories within the extension root directory. Name the file with extension <em>.xpi</em></p> -<p>Re-install the XPI. You can just drag the XPI file to the browser and it will be installed locally.</p> -<p>Test it and verify your changes worked. If you run into problems at installation, it's likely that you didn't reproduce the XPI structure correctly, maybe adding unnecessary folders.</p> -<div class="note"> - <strong>Note:</strong> Packaging an extension is really just creating a ZIP archive of the contents of the main folder, then changing the filename extension to <code>.XPI</code>. Do <strong>not</strong> zip the containing folder, just its contents. The <code>content</code> folder, <code>chrome.manifest</code>, <code>install.rdf</code>, and other files and directories should be at the root level of your archive. If you zip the containing folder, your extension will not load.</div> -<p>Note that the <em>Tools </em>menu is hidden by default on Firefox 4 and above, on Windows and some Linux distributions. Check <em>Menu Bar </em>under the <em>Options </em>menu of the Firefox menu button to enable it.</p> -<p>Once you're done, you can look at this reference solution: <a href="/@api/deki/files/5141/=xulschoolhello2.xpi" title="https://developer.mozilla.org/@api/deki/files/5141/=xulschoolhello2.xpi">Hello World 2</a>.</p> -<p>{{ PreviousNext("XUL_School/Getting_Started_with_Firefox_Extensions", "XUL_School/Setting_Up_a_Development_Environment") }}</p> -<p><span style="font-size: small;">This tutorial was kindly donated to Mozilla by Appcoast.</span></p> diff --git a/files/id/archive/mozilla/xulrunner/index.html b/files/id/archive/mozilla/xulrunner/index.html deleted file mode 100644 index 2bc8fd2c15..0000000000 --- a/files/id/archive/mozilla/xulrunner/index.html +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: XULRunner -slug: Archive/Mozilla/XULRunner -translation_of: Archive/Mozilla/XULRunner ---- -<div class="callout-box"> - <strong><a href="/en-US/docs/Getting_started_with_XULRunner" title="Getting_started_with_XULRunner">Getting Started with XULRunner</a></strong><br> - A short introduction to XULRunner.</div> -<div> - <span class="seoSummary"><strong>XULRunner</strong> is a Mozilla runtime package that can be used to bootstrap <a href="/en-US/docs/XUL" title="XUL">XUL</a>+<a href="/en-US/docs/XPCOM" title="XPCOM">XPCOM</a> applications that are as rich as Firefox and Thunderbird. It provides mechanisms for installing, upgrading, and uninstalling these applications.</span> XULRunner also provides <code>libxul</code>, a solution which allows the embedding of Mozilla technologies in other projects and products.</div> -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h2 id="Releases" name="Releases">Releases</h2> - <div class="note"> - <p>XULRunner can be <a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/latest" title="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/releases/">downloaded from ftp.mozilla.org</a>. Please read the <a class="internal" href="/en-US/docs/XULRunner_1.9.2_Release_Notes" title="XULRunner 1.9.2 Release Notes">release notes</a> for installation, uninstallation, and other information.</p> - <p>Firefox 3 and later ships with a private XULRunner package, which can run any compatible XULRunner application using the <code>-app</code> switch.</p> - <p><a href="/en-US/docs/XULRunner/Old_Releases" title="XULRunner/Old_Releases">Older builds</a> are also available.</p> - </div> - <h2 id="Overview" name="Overview">Overview</h2> - <ul> - <li>{{ interwiki('wikimo', 'XULRunner', 'Development Plan') }}</li> - <li><a href="/en-US/docs/XULRunner/What_XULRunner_Provides" title="XULRunner/What_XULRunner_Provides">What XULRunner Provides</a></li> - <li><a href="/en-US/docs/XULRunner_FAQ" title="XULRunner_FAQ">XULRunner FAQ</a></li> - <li>Nightly builds: <a class="external" href="http://ftp.mozilla.org/pub/mozilla.org/xulrunner/nightly/latest-trunk/">unstable-trunk</a></li> - </ul> - <h2 class="Documentation" id="Documentation" name="Documentation">Documentation</h2> - <dl> - <dt> - <a href="/en-US/docs/Getting_started_with_XULRunner" title="Getting_started_with_XULRunner">Getting Started with XULRunner</a></dt> - <dd> - Short tutorial on building desktop applications with XULRunner.</dd> - <dt> - <a href="/en-US/docs/XUL_Tutorial" title="XUL Tutorial">XUL Tutorial</a></dt> - <dd> - Once you have a working XULRunner application, use the XUL tutorial to expand it into a fantastic XUL application.</dd> - <dt> - <a href="/en-US/docs/XULRunner_tips" title="XULRunner_tips">XULRunner tips</a></dt> - <dd> - A collection of tips for working with XULRunner.</dd> - <dt> - <a href="/en-US/docs/XULRunner/Deploying_XULRunner_1.8" title="XULRunner/Deploying_XULRunner_1.8">Deploying XULRunner</a></dt> - <dd> - An introduction on how to package your application with XULRunner.</dd> - <dt> - <a href="/en-US/docs/XULRunner_Hall_of_Fame" title="XULRunner_Hall_of_Fame">XULRunner Hall of Fame</a></dt> - <dd> - Tracks all available applications based on XULRunner.</dd> - <dt> - <a href="/en-US/docs/Developer_Guide/Build_Instructions" title="Build_Documentation">Build Documentation</a></dt> - <dd> - Learn how to get the source and build it.</dd> - <dt> - <a href="/en-US/docs/Debugging_a_XULRunner_Application" title="Debugging_a_XULRunner_Application">Debug Documentation</a></dt> - <dd> - Steps to configure Venkman to debug your App</dd> - <dt> - <a class="external" href="http://zenit.senecac.on.ca/wiki/index.php/XULRunner_Guide">XULRunner Guide</a></dt> - <dd> - A fairly complete, but outdated, introduction and tutorial for XULRunner which collates much of the documentation found here.</dd> - </dl> - <p><span class="alllinks"><a href="/en-US/docs/tag/XULRunner" title="tag/XULRunner">View all...</a></span></p> - </td> - <td> - <h2 class="Community" id="Community" name="Community">Community</h2> - <ul> - <li>View Mozilla forums... {{ DiscussionList("dev-platform", "mozilla.dev.platform") }}</li> - <li><a class="link-irc" href="irc://irc.mozilla.org/#xulrunner">#xulrunner on irc.mozilla.org</a></li> - <li><a href="/en-US/docs/XULRunner/Community" title="XULRunner/Community">Other community links...</a></li> - </ul> - <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics">Related topics</h2> - <ul> - <li><a href="/en-US/docs/XUL" title="XUL">XUL</a></li> - </ul> - <h2 id="See_also" name="See_also">See also</h2> - <ul> - <li><a class="external" href="http://www.kodewerx.org/wiki/A_Brief_Introduction_To_XULRunner:_Part_1" title="http://www.kodewerx.org/wiki/A_Brief_Introduction_To_XULRunner:_Part_1">A brief introduction to XULRunner</a></li> - </ul> - </td> - </tr> - </tbody> -</table> -<p> </p> diff --git a/files/id/archive/web/index.html b/files/id/archive/web/index.html deleted file mode 100644 index 1784816dc4..0000000000 --- a/files/id/archive/web/index.html +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: Arsip dokumentasi Web terbuka -slug: Archive/Web -tags: - - Archived - - NeedsTranslation - - TopicStub - - Web -translation_of: Archive/Web ---- -<p>{{obsolete_header}}</p> - -<p>Dokumentasi yang tercantum di bawah ini adalah arsip, materi usang tentang topik Web terbuka.</p> - -<p>{{LandingPageListSubpages}}</p> diff --git a/files/id/archive/web/standards-compliant_authoring_tools/index.html b/files/id/archive/web/standards-compliant_authoring_tools/index.html deleted file mode 100644 index 2126ebd25c..0000000000 --- a/files/id/archive/web/standards-compliant_authoring_tools/index.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Standards-Compliant Authoring Tools -slug: Archive/Web/Standards-Compliant_Authoring_Tools -translation_of: Archive/Web/Standards-Compliant_Authoring_Tools ---- -<p>Creating cross-browser code upfront will save you lots of time quality testing your web content. The following authoring tools adhere to the W3 standards. If you're using older versions of tools that rely on old browser bugs or generate browser-specific code, it may be time to upgrade:</p> -<ul> - <li><a class="external" href="http://www.nvu.com/">NVu</a> is a standalone editor created from the remains of Mozilla Composer. Currently the work done on NVu is being ported back to mozilla source code.</li> - <li><a class="external" href="http://www.chami.com/html-kit/">HTML-Kit</a> is a full-featured, low priced editor designed to help HTML, XHTML and XML authors to edit, format, lookup help, validate, preview and publish web pages. Validation is done with HTML Tidy, so you can verify standards compliance.</li> - <li><a class="external" href="http://www.macromedia.com/software/dreamweaver/">Macromedia™ Dreamweaver™ CS6</a></li> - <li><a class="external" href="http://www.westciv.com/style_master/">Style Master</a> and <a class="external" href="http://www.westciv.com/layout_master/">Layout Master</a> by Western Civilisation</li> -</ul> -<p>Some caveats: It appears that tools currently available from Namo generate IE-specific or Netscape 4-specific code that may require extra debugging for compatibility with standards-based browsers. Newer versions of Microsoft FrontPage™ have improved, however be sure not to rely on FrontPage-specific extensions for critical website content or functionality. Some versions of Microsoft Word create invalid HTML code that only works with Internet Explorer. Always be sure to <a href="/en-US/docs/Tools/Validators">validate</a> your web pages.</p> -<div class="originaldocinfo"> - <h2 id="Original_Document_Information" name="Original_Document_Information">Original Document Information</h2> - <ul> - <li>Last Updated Date: January 30th, 2003</li> - <li>Copyright © 2001-2003 Netscape. All rights reserved.</li> - </ul> -</div> -<h2 id="Related_links" name="Related_links">Related links</h2> -<ul> - <li><a href="/en-US/docs/Tools/Validators">Validators</a></li> - <li><a href="/en-US/docs/HTML">HTML Central</a></li> -</ul> diff --git a/files/id/mdn/guidelines/layout/index.html b/files/id/mdn/guidelines/layout/index.html deleted file mode 100644 index 9bb0fe9ea3..0000000000 --- a/files/id/mdn/guidelines/layout/index.html +++ /dev/null @@ -1,7 +0,0 @@ ---- -title: MDN page layout guide -slug: MDN/Guidelines/Layout -translation_of: Archive/Meta_docs/MDN_page_layout_guide ---- -<div>{{MDNSidebar}}</div><p><span class="seoSummary">These guides supplement the <a href="/en-US/docs/MDN/Contribute/Content/Style_guide">MDN style guide</a> with specific layouts for the various types of pages on MDN. This helps contributors create new content that's structurally consistent with the rest of MDN.</span></p> -<p>{{LandingPageListSubpages}}</p> diff --git a/files/id/mozilla/add-ons/setting_up_extension_development_environment/index.html b/files/id/mozilla/add-ons/setting_up_extension_development_environment/index.html deleted file mode 100644 index 6519e6752d..0000000000 --- a/files/id/mozilla/add-ons/setting_up_extension_development_environment/index.html +++ /dev/null @@ -1,167 +0,0 @@ ---- -title: Setting up an extension development environment -slug: Mozilla/Add-ons/Setting_up_extension_development_environment -translation_of: Archive/Add-ons/Setting_up_extension_development_environment ---- -<p>This article gives suggestions on how to set up your Mozilla application for extension development. Unless otherwise specified, these suggestions apply to both Firefox and Thunderbird as well as SeaMonkey version 2.0 and above.</p> - -<h3 id="Overview">Overview</h3> - -<ul> - <li>Create a development <a href="#Development_profile">user profile</a> to run your development firefox session; with special <a href="#Development_preferences">development preferences</a> in <code>about:config</code>.</li> - <li>Install some Firefox <a href="#Development_extensions">development extensions</a> to your dev profile.</li> - <li>Edit files in the extensions folder of your profile and restart the application with the dev profile.</li> -</ul> - -<h3 id="Development_profile">Development profile</h3> - -<p>To avoid performance degradation from development-related prefs and extensions, and to avoid losing your personal data, you can use a separate profile for development work.</p> - -<p>You can run two instances of Thunderbird or Firefox at the same time by using separate profiles and starting the application with parameters <code>-no-remote</code> and <code>-P ProfileName</code>. For example, the following command will start Firefox with a profile called "dev" whether an instance of Firefox is already running or not. (If there is no "dev" user yet, you'll get the profile selection screen instead, where you can create one.)</p> - -<p>On Ubuntu (and many other Linux distributions):</p> - -<pre>/usr/bin/firefox -no-remote -P dev</pre> - -<p>On some other distributions of Linux/Unix:</p> - -<pre>/usr/local/bin/firefox -no-remote -P dev -</pre> - -<p>On Mac OS Snow Leopard (10.6) and newer:</p> - -<pre class="eval">/Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -P dev & -</pre> - -<p>On Mac OS Leopard (10.5) and older, you must request the 32-bit portion of the Universal Binary (<a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=622970" title="https://bugzilla.mozilla.org/show_bug.cgi?id=622970">https://bugzilla.mozilla.org/show_bug.cgi?id=622970</a>):</p> - -<pre class="eval">arch -arch i386 /Applications/Firefox.app/Contents/MacOS/firefox-bin -no-remote -P dev & -</pre> - -<p>On Windows:</p> - -<pre class="eval">Start -> Run "%ProgramFiles%\Mozilla Firefox\firefox.exe" -no-remote -P dev -</pre> - -<p>On Windows 64 bit:</p> - -<pre class="eval">Start -> Run "%ProgramFiles(x86)%\Mozilla Firefox\firefox.exe" -no-remote -P dev</pre> - -<p>To start Thunderbird or SeaMonkey instead of Firefox, substitute "thunderbird" or "seamonkey" for "firefox" in the examples above.</p> - -<p>Note that you can run Firefox using your regular profile while developing.</p> - -<p>Parameter <code>-P ProfileName</code> doesn't imply <code>-no-remote</code>, therefore use them together. Otherwise, if you already run a Firefox instance without <code>-no-remote</code>, and you attempt to start another instance with <code>-P ProfileName</code> but again without <code>-no-remote</code>, that second invocation would ignore its <code>-P ProfileName</code> parameter, but instead it would open a new blank window for the already running instance (sharing its profile, sessions etc.).</p> - -<p><span style="line-height: 1.5;">(There is a thread in the </span><a class="external" href="http://forums.mozillazine.org/" style="line-height: 1.5;" title="http://forums.mozillazine.org/">Mozillazine forums</a><span style="line-height: 1.5;"> that explains how to use both stable and development versions of Firefox to check extension compatibility. See </span><a class="external" href="http://forums.mozillazine.org/viewtopic.php?t=613873" style="line-height: 1.5;">Installing Firefox 3 or Minefield while keeping Firefox 2</a><span style="line-height: 1.5;">.)</span></p> - -<h3 id="Development_command_flags">Development command flags</h3> - -<p>As of Gecko 2 (Firefox 4), JavaScript files are cached ("fastload"). The <code>-purgecaches</code> command-line flag disables this behavior. Alternatively, you can set the MOZ_PURGE_CACHES environment variable. See <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=531886" title="https://bugzilla.mozilla.org/show_bug.cgi?id=531886">this bug</a> for more information.</p> - -<h3 id="Development_preferences">Development preferences</h3> - -<p><span style="line-height: 1.5;">There is a set of development preferences that, when enabled, allows you to view more information about application activity, thus making debugging easier. However, these preferences can degrade performance, so you may want to use a separate development profile when you enable these preferences.</span></p> - -<h4 id="Accessing_Firefox_development_preferences">Accessing Firefox development preferences</h4> - -<p>To change preference settings in Firefox or SeaMonkey, type <code style="font-size: 14px;">about:config </code>in the Location Bar. You can also use the <a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/7434/" title="http://addons.mozilla.org/en-US/firefox/addon/7434/">Extension Developer's Extension</a>, which provides a menu interface for Firefox settings. Alternatively, install <span style="line-height: 1.5;">the</span><span style="line-height: 1.5;"> </span><a href="https://addons.mozilla.org/en-US/firefox/addon/developer-profile/" style="line-height: 1.5;" title="https://addons.mozilla.org/en-US/firefox/addon/developer-profile/">Developer Profile</a><span style="line-height: 1.5;"> to set the preferences listed below and skip the rest of this section.</span></p> - -<h4 id="Accessing_Thunderbird_development_preferences">Accessing Thunderbird development preferences</h4> - -<p>To change preference settings in Thunderbird, open the "Preferences" (Unix) or "Options" (Windows) interface. On the "Advanced" page, select the "General" tab then click the "Config Editor" button.</p> - -<h4 id="Recommended_development_preferences">Recommended development preferences</h4> - -<p><span style="line-height: 1.5;">Not all preferences are defined by default, and are therefore not listed</span><span style="line-height: 1.5;"> by default. You will have to create new (boolean) entries for them. </span><span style="line-height: 1.5;">For more information about Mozilla preferences, refer to the mozillaZine article on "</span><a class="external" href="http://kb.mozillazine.org/About:config" style="line-height: 1.5;" title="http://kb.mozillazine.org/About:config">about:config</a><span style="line-height: 1.5;">". (Tip: Download addon <a href="https://addons.mozilla.org/en-US/firefox/addon/devprefs/">DevPrefs</a>, it will automatically handle this)</span></p> - -<ul> - <li><strong>javascript.options.showInConsole</strong> = <strong>true</strong>. Logs errors in chrome files to the <a href="/en/Error_Console" title="en/Error_Console">Error Console</a>.</li> - <li><strong>nglayout.debug.disable_xul_cache</strong> = <strong>true</strong>. Disables the XUL cache so that changes to windows and dialogs do not require a restart. This assumes you're <a href="#Using_directories_rather_than_JARs">using directories rather than JARs</a>. Changes to XUL overlays will still require reloading of the document overlaid.</li> - <li><strong>browser.dom.window.dump.enabled</strong> = <strong>true</strong>. Enables the use of the <span style="font-family: Courier New;">dump()</span> statement to print to the standard console. See <span style="font-family: Courier New;">{{ Domxref("window.dump") }}</span> for more info. You can use <span style="font-family: Courier New;">{{ Interface("nsIConsoleService") }}</span> instead of <code>dump()</code> from a privileged script.</li> - <li><strong>javascript.options.strict</strong> = <strong>true</strong>. Enables strict JavaScript warnings in the Error Console. Note that since many people have this setting turned off when developing, you will see lots of warnings for problems with their code in addition to warnings for your own extension. You can filter those with <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/1815">Console<sup>2</sup></a>.</li> - <li><strong>devtools.chrome.enabled = true.</strong> This enables to run JavaScript code snippets in the chrome context of the Scratchpad from the Tools menu. Don't forget to switch from content to browser as context.</li> - <li><strong>devtools.debugger.remote-enabled = true.</strong> This adds a "Browser Debugger" entry to the "Web Developer" submenu of the "Tools" menu. The <a href="/en/Tools/Debugger" title="/en/Tools/Debugger">Browser Debugger</a> can be used to debug the JavaScript code of extensions. The {{pref("devtools.chrome.enabled")}} preference must also be set to true for the Browser Debugger to be enabled.</li> - <li><strong>extensions.logging.enabled</strong> = <strong>true</strong>. This will send more detailed information about installation and update problems to the <a href="/en/Error_Console" title="en/Error Console">Error Console</a>. (Note that the extension manager automatically restarts the application at startup sometimes, which may mean you won't have time to see the messages logged before the automatic restart happens. To see them, prevent the automatic restart by setting the environment NO_EM_RESTART to 1 before starting the application.)</li> - <li><strong>nglayout.debug.disable_xul_fastload = true</strong>. For Gecko 2.0+ (Firefox 4.0+). See <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=531886" title="https://bugzilla.mozilla.org/show_bug.cgi?id=531886">this bug</a> for more information. Although the bug has been closed, it is believed that this pref is still relevant.</li> - <li>You might also want to set <strong>dom.report_all_js_exceptions = true</strong>. See <a class="internal" href="/en/Exception_logging_in_JavaScript" title="en/Exception logging in JavaScript">Exception logging in JavaScript</a> for details.</li> - <li><strong>devtools.errorconsole.deprecation_warnings = true</strong>. Detect deprecated code use.</li> -</ul> - -<p></p><div class="warning"><strong>Never</strong> set {{pref("nglayout.debug.disable_xul_fastload")}} to true in a production environment; it exists solely to aid in debugging. In particular, add-ons should never change this preference.</div>.<p></p> - -<div class="note"> -<p><strong>Note:</strong>The Error Console is disabled by default starting in {{Gecko("2.0")}}. You can re-enable it by changing the <code>devtools.errorconsole.enabled</code> preference to <code>true</code> and restarting the browser. With this, <code>javascript.options.showInConsole</code> is also set to <code>true</code> by default.</p> -</div> - -<div class="note"> -<p><strong>Tip:</strong> Download the addon <a href="https://addons.mozilla.org/en-US/firefox/addon/devprefs/">DevPrefs </a>from AMO to automatically configure the preferences.</p> -</div> - -<h4 id="Development_extensions"><span style="font-size: 1.428em; letter-spacing: -0.5px; line-height: 20px;">Development extensions</span></h4> - -<p>These extensions may help you with your development.</p> - -<ul> - <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622">DOM Inspector</a>, used to inspect and edit the live DOM of any web document or XUL application (Firefox and Thunderbird)</li> - <li><a class="external" href="http://www.hacksrus.com/%7Eginda/venkman/">Venkman</a>, a JavaScript Debugger (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/216" title="http://addons.mozilla.org/en-US/firefox/addon/216">Firefox version</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/216" title="http://addons.mozilla.org/en-US/thunderbird/addon/216">Thunderbird version</a>)</li> - <li><a href="http://kewisch.wordpress.com/2013/09/22/thunderbird-developer-tools-wrapup/">Thunderbird Developer Tools</a>, enables debugging Thunderbird remotely using using Firefox developer tools</li> - <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/7434/">Extension Developer's Extension</a> a suite of tools for extension development (Firefox)</li> - <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/extension-test/">Extension Test</a> an add-on which makes it easier to detect problems which will lead to rejection by addons.mozilla.org</li> - <li><a class="external" href="http://console2.mozdev.org/">Console²</a> enhanced JavaScript console (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/1815" title="http://addons.mozilla.org/en-US/firefox/addon/1815">Firefox version</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/1815" title="http://addons.mozilla.org/en-US/thunderbird/addon/1815">Thunderbird version</a>)</li> - <li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/5058">Javascript Command</a> for writing/testing javascript on Firefox windows</li> - <li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/5058">Inspect Context</a> Open <a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6622">DOM Inspector</a> at this node from Inspect on context menu.</li> - <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/4453/">Chrome List</a> navigate and view files in chrome:// (<a class="external" href="http://addons.mozilla.org/en-US/firefox/addon/4453" title="http://addons.mozilla.org/en-US/firefox/addon/4453">Firefox version</a>, <a class="external" href="http://addons.mozilla.org/en-US/thunderbird/addon/4453" title="http://addons.mozilla.org/en-US/thunderbird/addon/4453">Thunderbird version</a>)</li> - <li><a class="external" href="http://webdesigns.ms11.net/chromeditp.html">Chrome Edit Plus</a> a user file editor (Firefox and Thunderbird)</li> - <li><a class="link-https" href="https://addons.mozilla.org/en-US/developers/tools/builder">Add-on Builder</a> a web-based application that generates an extension skeleton (Firefox, Thunderbird, and others)</li> - <li><a class="link-https" href="https://addons.mozilla.org/firefox/addon/1843">Firebug</a> a variety of development tools (Firefox)</li> - <li><a class="external" href="http://dactyl.sf.net/pentadactyl/">Pentadactyl</a>, a general purpose extension with builtin tools for extension development, including a command line with chrome JavaScript evaluation (including property and function argument completion) and the ability to demand-load external JavaScript and CSS files into window chrome.</li> - <li><a class="external" href="http://getfirebug.com/releases/chromebug/">Chromebug</a> combines elements of a JavaScript debugger and DOM (Firefox, "kinda works for Thunderbird")</li> - <li><a class="link-https" href="https://github.com/bard/mozrepl/wiki">MozRepl</a> explore and modify Firefox and other Mozilla apps while they run (Firefox, Thunderbird version is <a href="https://github.com/bard/mozrepl/issues/47">not working</a>)</li> - <li><a class="external" href="http://www.mouseless.de/index.php?/content/view/18/31/">ExecuteJS</a> an enhanced JavaScript console (<a class="link-https" href="https://addons.mozilla.org/firefox/addon/1729">Firefox version</a>, <a class="external" href="http://xsidebar.mozdev.org/modifiedmisc.html#executejs">Thunderbird version</a> is <a href="https://code.google.com/p/executejs/issues/detail?id=6">not working</a>)</li> - <li><a class="external" href="http://xpcomviewer.mozdev.org">XPCOMViewer</a> an XPCOM inspector (Firefox and Thunderbird)</li> - <li><a class="internal" href="/en/JavaScript/Shells" title="En/JavaScript shells">JavaScript shells</a> to test snippets of JavaScript (Firefox and Thunderbird)</li> - <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/5817">SQLite Manager</a> to manage the SQLite database (Firefox and Thunderbird)</li> - <li><a class="external" href="http://www.rumblingedge.com/viewabout/">ViewAbout</a> enables access to various about: dialogs from the View menu (<a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/9695">Firefox version</a>, <a class="link-https" href="https://addons.mozilla.org/en-US/thunderbird/addon/9695">Thunderbird version</a> )</li> - <li><a class="external" href="http://code.google.com/p/crashme/">Crash Me Now!</a> useful for testing debug symbols and the crash reporting system (Firefox and Thunderbird)</li> - <li><a href="https://addons.mozilla.org/en-US/firefox/addon/javascript-object-examiner/" title="https://addons.mozilla.org/en-US/firefox/addon/javascript-object-examiner/">Javascript Object Examiner</a> displays JavaScript object methods and properties for any available scope</li> - <li><a href="https://addons.mozilla.org/en-US/firefox/addon/developer-profile/" title="https://addons.mozilla.org/en-US/firefox/addon/developer-profile/">Developer Profile</a> sets up the development environment described above when installed (Firefox and Fennec)</li> -</ul> - -<h3 id="Firefox_extension_proxy_file">Firefox extension proxy file</h3> - -<p>Extension files are normally installed in the user profile. However, it is usually easier to place extension files in a temporary location, which also protects source files from accidental deletion. This section explains how to create a proxy file that points to an extension that is installed in a location other than the user profile.</p> - -<ol> - <li>Get the extension ID from the extension's install.rdf file.</li> - <li>Create a file in the "<code>extensions</code>" directory under your profile directory with the extension's ID as the file name (for example "<code>your_profile_directory/extensions/{46D1B3C0-DB7A-4b1a-863A-6EE6F77ECB58}</code>"). (<a class="external" href="http://kb.mozillazine.org/Profile_folder">How to find your profile directory</a>) Alternatively, rather than using a GUID, create a unique ID using the format "name@yourdomain" (for example <span class="nowiki"><code>chromebug@mydomain.com</code></span>) - then the proxy filename will be same as that ID, with no curly brackets {}.</li> - <li> - <p>The contents of this file should be the path to the directory that contains your install.rdf file, for example <code><span class="nowiki">/full/path/to/yourExtension/</span></code> on Mac and Linux, and <code><span class="nowiki">C:\full\path\to\yourExtension\</span></code> on Windows. Remember to include the closing slash and remove any trailing whitespace.</p> - - <ul> - <li>Note: If you already installed the extension via XPI, you should uninstall it first before creating the pointer file.</li> - <li>Also note that the use of proxy files requires that the extension's chrome.manifest defines its chrome urls using traditional directories, rather than a JARed structure. See below.</li> - </ul> - </li> - <li>Place the file in the extensions folder of your profile and restart the application.</li> -</ol> - -<h3 id="Using_directories_rather_than_JARs">Using directories rather than JARs</h3> - -<p>Regardless of whether you choose to eventually package your extension's chrome in a JAR or in directories, developing in directories is simpler. If you choose a JARed structure for releasing, you can still develop with a directory structure by editing your chrome.manifest. For example, rather than having</p> - -<pre class="eval">content myExtension jar:chrome/myExtension.jar!/content/ -</pre> - -<p>use</p> - -<pre class="eval">content myExtension chrome/content/ -</pre> - -<p>{{ h1_gecko_minversion("Preventing the first launch extension selector", "8.0") }}</p> - -<p>Starting in Firefox 8, on the first launch of a new version of Firefox, it presents user interface letting users select which third party add-ons to keep. This lets them weed out add-ons that were installed without their knowledge, or that are no longer needed.</p> - -<p>However, this interface can be disruptive when debugging add-ons. You can avoid this by setting the preference <code>extensions.autoDisableScopes</code> to 14.</p> - -<p>{{ languages( { "de": "de/Einrichten_einer_Entwicklungsumgebung_für_Erweiterungen", "fr": "fr/Configuration_d'un_environnement_de_développement_d'extensions", "ja": "ja/Setting_up_extension_development_environment", "zh-cn": "cn/Setting_up_extension_development_environment", "pl": "pl/Przygotowanie_środowiska_programowania_rozszerzenia", "ru": "ru/Настройка_среды_разработки_расширений" } ) }}</p> diff --git a/files/id/mozilla/connect/index.html b/files/id/mozilla/connect/index.html deleted file mode 100644 index e9d3f28280..0000000000 --- a/files/id/mozilla/connect/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Connect with Mozilla -slug: Mozilla/Connect -translation_of: Mozilla/Connect ---- -<div class="summary"> -<p><span class="seoSummary"><font><font>Aktifkan, menginspirasi dan berkolaborasi untuk membuat Web platform utama yang digunakan untuk menciptakan pengalaman di semua perangkat yang terhubung.</font></font></span></p> -</div> - - -<div> -<div class="column-container dev-program-callouts dev-program-block dev-program-first dev-program-column-wrapper"> -<div class="dev-program-callout"> -<div class="callout-link-container"> -<h2 id="Blog_Hacks"><font><font>Blog Hacks</font></font></h2> - -<p><font><font>Sebuah sumber daya utama bagi orang untuk mengembangkan Open Web, blog Mozilla Hacks menawarkan berita dan diskusi tentang terbaru dalam teknologi Web dan fitur browser.</font></font></p> - -<div class="callout-link-wrapper"><a class="callout-link ignore-external" href="https://hacks.mozilla.org/" style="white-space: normal;"><font><font>Baca sekarang</font></font> </a></div> -</div> -</div> - -<div class="dev-program-callout"> -<div class="callout-link-container"> -<h2 id="Bantuan_Q_A"><font><font>Bantuan Q & A</font></font></h2> - -<p><font><font>Diskusikan Web dan Web aplikasi pada Stack Overflow, di mana Anda dapat bertukar pikiran dengan pengembang web lainnya. </font><span class="smaller"><strong><font>{{anch ("diskusi Developer", "Cari Q & A di bawah")}}</font></strong></span></font></p> - -<div class="callout-link-wrapper"><a class="callout-link ignore-external" href="http://stackoverflow.com/r/mozilla" style="white-space: normal;"><font><font>Mozilla Q & A pada Stack Overflow</font></font> </a></div> -</div> -</div> - -<div class="dev-program-callout"> -<div class="callout-link-container"> -<h2 id="Bergabunglah_MDN"><font><font>Bergabunglah MDN</font></font></h2> - -<p><font><font>Mendaftar untuk MDN! </font><font>Anda akan dapat mengedit dokumentasi di sini, membuat profil untuk memamerkan pekerjaan Anda, dan mendapatkan akses ke fitur dari waktu ke waktu seperti yang kita menggulung mereka keluar.</font></font></p> - -<div class="callout-link-wrapper"><a class="callout-link" href="/profile/edit" style="white-space: normal;"><font><font>Bergabung atau masuk</font></font> </a></div> -</div> -</div> -</div> - -<div class="dev-program-explanation dev-program-block"> -<h2 id="Terhubung_dengan_Mozilla"><font><font>Terhubung dengan Mozilla</font></font></h2> - -<p><font><font>Pengembang menciptakan masa depan dengan membangun layanan dan aplikasi untuk orang di seluruh dunia. </font><font>Tujuan Hubungan Pengembang Mozilla adalah untuk membantu pengembang untuk menggunakan teknologi web terbuka dan standar untuk berhasil dalam mencapai tujuan mereka. </font><font>Selain dokumentasi di sini di MDN, kami menawarkan bantuan dan sumber lainnya menuju tujuan ini, melalui berbagai saluran. </font><font>Kami mengundang Anda untuk menghubungkan, belajar, dan berbagi pengetahuan Anda sendiri.</font></font></p> - -<p><font><font>Kami menawarkan bantuan melalui Q & A pada Stack Overflow, untuk memecahkan masalah teknis yang spesifik dan tantangan yang mungkin Anda miliki. </font><font>Kami juga memiliki newsletter menjaga Anda informasi tentang kejadian terbaru dalam adegan web sekitar aplikasi web dan banyak lagi. </font></font><a href="https://marketplace.firefox.com/developers/#newsletter-signup"><font><font>Langganan Apps & Hacks buletin.</font></font></a></p> - -<p><font><font>Kami memiliki banyak rencana dan ide-ide untuk iteratif memperluas Hubungan Pengembang penawaran kami, dan kami ingin Anda terlibat seperti yang kita melakukannya! </font><font>Jadi, </font></font><a href="http://stackoverflow.com/r/mozilla"><font><font>ikuti tag pada Stack Overflow</font></font></a><font><font> , </font></font><a href="https://hacks.mozilla.org/"><font><font>berlangganan ke blog Hacks</font></font></a><font><font> , </font></font><a href="https://marketplace.firefox.com/developers/#newsletter-signup"><font><font>berlangganan newsletter,</font></font></a><font><font> dan </font></font><a href="/profile/edit"><font><font>mendaftar untuk sebuah account</font></font></a><font><font> !</font></font></p> -</div> - -<div class="column-container dev-program-block"> -<div class="column-half" id="Developer_discussions"> -<h2 id="Q_A_pada_Stack_Overflow_Lihat_semua_Q_A_..."><font><font>Q & A pada Stack Overflow </font></font><a class="heading-link" href="http://stackoverflow.com/r/mozilla"><font><font>Lihat semua Q & A ...</font></font></a></h2> - -<p><font><font>Kami memiliki Q & A untuk membahas tantangan dan masalah ketika mengembangkan, khususnya untuk Firefox OS dan Open Web di ponsel. </font><font>Ini tersedia di Stack Overflow di bawah URL mudah </font></font><a href="http://stackoverflow.com/r/mozilla"><font><font>http://stackoverflow.com/r/mozilla</font></font></a><font><font> .</font></font></p> - - -<div class="stack-form"><font><font>Bentuk Stack</font></font></div> - -<h3 id="Terbaru_Q_A_Topik"><font><font>Terbaru Q & A Topik</font></font></h3> -</div> - -<div class="column-half dev-program-hacks dev-program-block"> </div> -</div> - -<p class="dev-program-block"><img alt="Pengembang pada lokakarya Firefox OS di Madrid." src="https://mdn.mozillademos.org/files/7479/PhonesUp.jpg" style="display: block; height: 359px; margin: 0px auto; max-width: 100%; width: 720px;"></p> - -<div class="column-container dev-program-block"> -<div class="column-7 dev-program-events"> -<h2 id="Dimana_Mozilla_Lihat_peserta_dan_rincian_pada_halaman_Acara_kami_..."><font><font>Dimana Mozilla? </font></font><a class="heading-link" href="https://developer.mozilla.org/en/events"><font><font>Lihat peserta dan rincian pada halaman Acara kami ...</font></font> </a></h2> - -<p><font><font>Berikut ini adalah daftar peristiwa di mana perwakilan Mozilla akan berbicara. </font><font>Pastikan untuk berbicara dengan mereka!</font></font></p> -</div> - -<div class="column-5"> -<h2 id="Sumber_lainnya"><font><font>Sumber lainnya</font></font></h2> - -<ul class="no-bullets"> - <li><a href="http://www.youtube.com/user/mozhacks"><font><font>Mozilla Hacks di YouTube</font></font></a> - - <ul> - <li><a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqIHIUUv08hBCHq1OgPKhdo0"><font><font>Video Firefox OS</font></font></a></li> - <li><a href="http://www.youtube.com/playlist?list=PLo3w8EB99pqLZNY22xKbTEzMfYo9PXAlm"><font><font>Firefox Developer Tools video</font></font></a></li> - </ul> - </li> - <li><a href="https://twitter.com/mozhacks"><font><font>mozhacks di Twitter</font></font></a></li> -</ul> -</div> -</div> -</div> - -<p> </p> diff --git a/files/id/mozilla/firefox/edisi_pengembang/index.html b/files/id/mozilla/firefox/edisi_pengembang/index.html deleted file mode 100644 index 6f3a9a91bf..0000000000 --- a/files/id/mozilla/firefox/edisi_pengembang/index.html +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: Edisi Pengembang -slug: Mozilla/Firefox/Edisi_Pengembang -translation_of: Mozilla/Firefox/Developer_Edition ---- -<div>{{FirefoxSidebar}}</div><p><img alt="" src="https://mdn.mozillademos.org/files/9069/firefox-dev-ed_logo-only_1024.png" style="display: block; height: 256px; margin-left: auto; margin-right: auto; width: 256px;"></p> - -<p style="text-align: center;">Sebuah versi Firefox yang dikhususkan untuk para web developer.</p> - -<p><a href=" https://www.mozilla.org/en-US/firefox/developer/" style="width: 250px; display: block; margin-left: auto; margin-right: auto; padding: 10px; text-align: center; border-radius: 4px; 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;">Unduh Firefox Edisi Pengembang</a></p> - -<hr> -<div class="column-container"> -<div class="column-half"> -<h3 id="Fitur_Firefox_terbaru"><strong>Fitur Firefox</strong> terbaru</h3> - -<p>Firefox Edisi Pengembang menggantikan kanal Aurora pada <a href="https://wiki.mozilla.org/Release_Management/Release_Process">Proses Rilis Firefox</a>. Seperti Aurora, fitur-fitur baru akan tersedia pada versi ini setiap enam minggu, setelah distabilkan dari Nightly build.</p> - -<p>Dengan menggunakan Edisi Pengembang, anda mendapatkan akses ke fitur peralatan dan platform 12 minggu lebih awal dari rilis Firefox utama.</p> - -<p><a href="/en-US/Firefox/Releases/35">Temukan apa yang baru dalam Edisi Pengembang</a>.</p> -</div> - -<div class="column-half"> -<h3 id="Peralatan_pengembang_eksperimental"><strong>Peralatan pengembang eksperimental</strong></h3> - -<p>Kami akan memasukkan fitur-fitur eksperimental yang belum masuk di versi biasa.</p> - -<p>Sebagai contoh, Edisi Pengembang memasukkan <a href="/en-US/docs/Tools/Firefox_Tools_Adapter">Firefox Tools Adapter</a>, yang dapat membuat anda terhubung dengan<a href="/en-US/docs/"> peralatan pengembang Firefox</a> ke browser lain seperti Chrome pada Android atau Safari di iOS.</p> -</div> -</div> - -<div class="column-container"> -<div class="column-half"> -<h3 id="Profil_terpisah"><strong>Profil terpisah</strong></h3> - -<p>Firefox Edisi Pengembang menggunakan profil terpisah dari versi Firefox lain yang terinstall di komputer anda. Artinya, anda bisa menjalankan Edisi Pengembang bersamaan dengan Firefox versi biasa atau Beta.</p> -</div> - -<div class="column-half"> -<h3 id="Dibuat_untuk_pengembang_web"><strong>Dibuat untuk pengembang web</strong></h3> - -<p>Kami telah mengatur beberapa pengaturan untuk pengembang web. Sebagai contoh, chrome dan debug remote telah diaktifkan dari awal.</p> -</div> -</div> - -<div class="column-container"> -<div class="column-half"> -<h3 id="Tema_tersendiri"><strong>Tema tersendiri</strong></h3> - -<p>Termasuk di dalamnya akses cepat ke fitur pengembang.</p> -</div> - -<div class="column-half"> </div> -</div> - -<p> </p> diff --git a/files/id/mozilla/firefox/privacy/index.html b/files/id/mozilla/firefox/privacy/index.html deleted file mode 100644 index fe82422987..0000000000 --- a/files/id/mozilla/firefox/privacy/index.html +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Privacy -slug: Mozilla/Firefox/Privacy -tags: - - NeedsTranslation - - Privacy - - Security - - TopicStub -translation_of: Mozilla/Firefox/Privacy ---- -<div>{{FirefoxSidebar}}</div> - -<p class="summary">This document lists privacy-related documentation.</p> - -<p>{{ ListSubpages () }}</p> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a href="https://support.mozilla.org/en-US/products/firefox/privacy-and-security">Privacy and security settings</a></li> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/Security">Web Security</a></li> -</ul> diff --git a/files/id/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html b/files/id/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html deleted file mode 100644 index f4415aedc2..0000000000 --- a/files/id/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: 'Blocked: Storage access requests from trackers' -slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker -translation_of: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker ---- -<div>{{FirefoxSidebar}}</div> - -<h2 id="back_up_from_last_user">back up from last user</h2> - -<h2 id="What_went_wrong">What went wrong?</h2> - -<p>A request to access cookies or storage was blocked because the browser identified it as coming from a tracker and content blocking is enabled.</p> - -<p>The permission can be changed or removed by:</p> - -<ul> - <li>Going to <em>Preferences > Content Blocking </em>and either - - <ul> - <li>adding an exception with the <em>Manage Exceptions</em>… button</li> - <li>choosing the <em>Custom</em> Content Blocking and unchecking the <em>Tracker</em> checkbox</li> - </ul> - </li> -</ul> - -<p>If the blocked resource doesn't need authentication, you can fix the warning message by adding a <code>crossorigin="anonymous"</code> attribute to the relevant element.</p> - -<h2 id="See_also">See also</h2> - -<ul> - <li><a href="https://support.mozilla.org/en-US/kb/content-blocking">Content </a><a href="https://support.mozilla.org">support.mozilla.org</a></li> - <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">The <code>crossorigin</code> attribute</a></li> -</ul> diff --git a/files/id/mozilla/firefox/privacy/storage_access_policy/errors/index.html b/files/id/mozilla/firefox/privacy/storage_access_policy/errors/index.html deleted file mode 100644 index a1e1f54a75..0000000000 --- a/files/id/mozilla/firefox/privacy/storage_access_policy/errors/index.html +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Errors -slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors -tags: - - Cookies - - Errors - - NeedsTranslation - - Storage - - TopicStub - - storage access policy -translation_of: Mozilla/Firefox/Privacy/Storage_access_policy/Errors ---- -<div>{{FirefoxSidebar}}</div> - -<p>This page lists the errors that can be raised due to Firefox's anti-tracking functionality, governed by the <a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy">Storage access policy</a>. You can find further information about them by clicking on the links below:</p> - -<p>A request to access cookies or storage was blocked because</p> - -<ul> - <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedByPermission">of custom cookie permission</a></li> - <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker">it came from a tracker and content blocking is enabled</a></li> - <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedAll">we are blocking all storage access requests</a></li> - <li><a href="/en-US/docs/Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedForeign">we are blocking all third-party storage access requests and content blocking is enabled</a></li> -</ul> diff --git a/files/id/mozilla/firefox/privacy/storage_access_policy/index.html b/files/id/mozilla/firefox/privacy/storage_access_policy/index.html deleted file mode 100644 index 801d5bfad1..0000000000 --- a/files/id/mozilla/firefox/privacy/storage_access_policy/index.html +++ /dev/null @@ -1,261 +0,0 @@ ---- -title: 'Storage access policy: Block cookies from trackers' -slug: Mozilla/Firefox/Privacy/Storage_access_policy -tags: - - NeedsTranslation - - Privacy - - TopicStub - - storage access policy - - tracking protection -translation_of: Mozilla/Firefox/Privacy/Storage_access_policy ---- -<div>{{FirefoxSidebar}}</div> - -<p class="summary">Firefox includes a new storage access policy that blocks cookies and other site data from third-party tracking resources. This policy is designed as an alternative to the <a href="/en-US/docs/Mozilla/Cookies_Preferences">older cookie policies</a>, which have been available in Firefox for many years. This policy protects against cross-site tracking while minimizing the site breakage associated with traditional cookie blocking. This article explains how the policy works and how you can test it.</p> - -<h2 id="Testing_in_Firefox">Testing in Firefox</h2> - -<p>This cookie policy has been available in Firefox since version 63. This documentation describes the policy that we intend to ship to Firefox Release users, but may not match what is implemented in the current Release version of Firefox. That's because we document new aspects of the policy as soon as they land in <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Firefox Nightly</a>, our pre-release channel. Firefox Nightly may also contain experimental features that we don't yet plan to ship to Release users; experimental features will not be included in this documentation, but may nevertheless impact the functionality of domains classified as trackers.</p> - -<p>We recommend sites test with <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#nightly">Firefox Nightly</a>, as this includes the newest version of our protections. As described above, note that Nightly may include additional protections that end up getting removed or changed before they reach our Release users. We’ll keep this page updated with the newest information as we strengthen our protections.</p> - -<p>These protections are on by default in Nightly. The cookie policy can be enabled in other versions of Firefox through the <a href="https://support.mozilla.org/en-US/kb/content-blocking">Content Blocking settings</a> (these steps will vary by version; the linked documentation includes a dropdown to select the appropriate Firefox version).</p> - -<h3 id="Report_Broken_Sites">Report Broken Sites</h3> - -<p>If you find a website broken as a result of this change, file a bug under the Tracking Protection component within the Firefox product on <a href="https://bugzilla.mozilla.org/enter_bug.cgi?assigned_to=nobody%40mozilla.org&blocked=1480137&bug_file_loc=http%3A%2F%2F&bug_ignored=0&bug_severity=normal&bug_status=NEW&cf_fx_iteration=---&cf_fx_points=---&cf_platform_rel=---&cf_status_firefox62=---&cf_status_firefox63=---&cf_status_firefox64=---&cf_status_firefox_esr60=---&cf_status_geckoview62=---&cf_tracking_firefox62=---&cf_tracking_firefox63=---&cf_tracking_firefox64=---&cf_tracking_firefox_esr60=---&cf_tracking_firefox_relnote=---&cf_tracking_geckoview62=---&component=Tracking%20Protection&contenttypemethod=list&contenttypeselection=text%2Fplain&defined_groups=1&flag_type-203=X&flag_type-37=X&flag_type-41=X&flag_type-5=X&flag_type-607=X&flag_type-721=X&flag_type-737=X&flag_type-748=X&flag_type-787=X&flag_type-799=X&flag_type-800=X&flag_type-803=X&flag_type-835=X&flag_type-846=X&flag_type-855=X&flag_type-864=X&flag_type-914=X&flag_type-916=X&flag_type-929=X&flag_type-930=X&flag_type-933=X&form_name=enter_bug&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=Unspecified&priority=--&product=Firefox&rep_platform=Unspecified&target_milestone=---&version=unspecified">Bugzilla</a>. Alternatively you can report broken sites directly in Firefox by clicking "Report a Problem" in the Content Blocking section of the <a href="https://support.mozilla.org/en-US/kb/control-center-site-privacy-and-security-firefox">Control Center</a> (this shortcut may not be available in all versions of Firefox).</p> - -<h2 id="Tracking_protection_explained">Tracking protection explained</h2> - -<p>How does Firefox determine which resources are tracking resources?</p> - -<p>Firefox uses the Tracking Protection list to determine which resources are tracking resources. The Tracking Protection list is <a href="https://github.com/disconnectme/disconnect-tracking-protection/issues">maintained by Disconnect</a>. When the list is applied in Firefox, we make two important changes:</p> - -<ul> - <li>First, we only use the "Basic Protection" version of the list, which <a href="https://github.com/mozilla-services/shavar-prod-lists#blacklist">excludes some categories of trackers</a>. In the future, we may expand our protections to use the "Strict Protection" version of the list.</li> - <li>Second, Firefox uses an additional "<a href="https://github.com/mozilla-services/shavar-prod-lists/blob/master/disconnect-entitylist.json">entity list</a>", which prevents <a href="https://github.com/mozilla-services/shavar-prod-lists#entity-list">domains from being classified as trackers when they are loaded on a top-level site owned by the same organization</a>.</li> -</ul> - -<p>Firefox uses the built-in <a href="https://support.mozilla.org/en-US/kb/tracking-protection">Tracking Protection</a> URL classifier to determine which resources match the tracking protection list. Domains are matched against the list in accordance with the <a href="https://developers.google.com/safe-browsing/v4/urls-hashing#suffixprefix-expressions">SafeBrowsing v4 specification</a>. Specifically, we check the exact hostname of the resource against the list, as well as the last four hostnames formed by starting with the last five components and successively removing the leading component. Consider the following examples:</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Hostname on the list</th> - <th scope="col">Hostname of resource</th> - <th scope="col">Matched</th> - </tr> - </thead> - <tbody> - <tr> - <td><code>example.com</code></td> - <td><code>example.com</code></td> - <td>Yes</td> - </tr> - <tr> - <td><code>example.com</code></td> - <td><code>a.b.example.com</code></td> - <td>Yes</td> - </tr> - <tr> - <td><code>blah.example.com</code></td> - <td><code>example.com</code></td> - <td>No</td> - </tr> - <tr> - <td><code>a.b.example.com</code></td> - <td><code>c.d.example.com</code></td> - <td>No</td> - </tr> - <tr> - <td><code>blah.example.com</code></td> - <td><code>foo.blah.example.com</code></td> - <td>Yes</td> - </tr> - </tbody> -</table> - -<h2 id="What_does_the_storage_access_policy_block">What does the storage access policy block?</h2> - -<p>The storage access policy blocks resources identified as trackers from accessing their cookies and other site storage when they are loaded in a third-party context. This prevents those resources from retrieving tracking identifiers stored in cookies or site storage and using them to identify users across visits to multiple first parties. Specifically, Firefox does this by imposing the following restrictions:</p> - -<p>Cookies:</p> - -<ul> - <li>Block {{httpheader("Cookie")}} request headers and ignore {{httpheader("Set-Cookie")}} response headers.</li> - <li>Return an empty string for calls to {{domxref("Document.cookie")}} and ignore requests to set cookies via <code>Document.cookie</code>.</li> -</ul> - -<p>DOM Storage:</p> - -<ul> - <li><a href="/en-US/docs/Web/API/Web_Storage_API">localStorage</a>: <code><a href="/en-US/docs/Web/API/Window/localStorage">Window.localStorage</a></code>: read and write attempts throw a <code>SecurityError</code> exception. Prior to Firefox 70: <code><a href="/en-US/docs/Web/API/Window/localStorage">Window.localStorage</a></code> is <code>null</code>. Thus, attempts to read and write using this object will throw a <code>TypeError</code> exception.</li> - <li><a href="/en-US/docs/Web/API/Web_Storage_API">sessionStorage</a>: read and write attempts are permitted.</li> - <li><a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>: read and write attempts throw a <code>SecurityError</code> exception.</li> -</ul> - -<p>Messaging and Workers:</p> - -<ul> - <li><a href="/en-US/docs/Web/API/Broadcast_Channel_API">Broadcast Channel</a>: attempts to create a new {{domxref("BroadcastChannel")}} will throw a <code>SecurityError</code> exception.</li> - <li><a href="/en-US/docs/Web/API/Web_Workers_API">Shared Worker</a>: attempts to create a new {{domxref("SharedWorker")}} will throw a <code>SecurityError</code> exception.</li> - <li><a href="/en-US/docs/Web/API/Service_Worker_API">Service Worker</a>: attempts to create a new {{domxref("ServiceWorker")}} will throw a <code>SecurityError</code> exception.</li> -</ul> - -<p>DOM Cache:</p> - -<ul> - <li>Calls to {{domxref("CacheStorage")}} will always reject with a <code>SecurityError</code>.</li> -</ul> - -<p>Browser caches:</p> - -<ul> - <li>The <a href="/en-US/docs/Mozilla/HTTP_cache">HTTP cache</a>, the Image cache, and the <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Alt-Svc">Alternative Services (Alt-Svc) cache</a> are all partitioned for tracking resources, such that each top-level origin will have a separate partition and tracking resources on different top-level origins will be cached separate from each other.</li> -</ul> - -<p>Network connections:</p> - -<ul> - <li><a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Session_Resumption">TLS sessions</a> will not be resumed using a session ticket when an HTTPS connection is made to an embedded third-party resource that is classified as a tracker.</li> - <li><a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Connection_management_in_HTTP_1.x#Persistent_connections">HTTP connection reuse</a> by domains classified as trackers is limited to requests that occur under the same top-level origin. For example, a request for content from tracker.example on news.example will not reuse an HTTP connection with a request for content from tracker.example on shopping.example or with requests that occur when tracker.example is visited directly (i.e., as a first party).</li> -</ul> - -<h3 id="What_is_not_blocked_by_the_policy">What is not blocked by the policy?</h3> - -<ol> - <li>This policy does not currently restrict third-party storage access for resources that are not classified as tracking resources. We may choose to apply additional restrictions to third-party storage access in the future.</li> - <li>The restrictions applied by the policy will not prevent third-party scripts classified as tracking resources from accessing storage in the main context of the page. These scripts can continue to use storage scoped to the top-level origin.</li> - <li>Origins classified as trackers will have access to their own storage when they are loaded in a first-party context.</li> - <li>Cross-origin resources loaded from the same eTLD+1 as the top-level context will still have access to their storage.</li> - <li>Origins normally classified as trackers will <a href="https://github.com/mozilla-services/shavar-prod-lists#entity-list">not be blocked if the top-level page origin is determined to be from the same organization as them</a>.</li> -</ol> - -<h2 id="Storage_access_grants">Storage access grants</h2> - -<p>In order to improve web compatibility and permit third-party integrations that require storage access, Firefox will grant storage access scoped to the first party for a particular third-party origin as described in this section. Currently, Firefox includes some web compatibility heuristics that grant storage access to third-party resources classified as trackers when a user interacts with those third parties. We do this when we expect that not granting access would cause the web page to break. We also support an initial implementation of the <a href="https://developer.mozilla.org/en-US/docs/Web/API/Storage_Access_API">Storage Access API</a>, through which embedded {{htmlelement("iframe")}}s can request storage access by calling {{domxref("Document.requestStorageAccess()")}}. Although both of these approaches provide the same level of storage access, we recommend third parties switch to using the Storage Access API in order to guarantee their access to storage.</p> - -<h3 id="Automatic_storage_access_upon_interaction">Automatic storage access upon interaction</h3> - -<p>In order to improve web compatibility, Firefox currently includes some heuristics to grant storage access automatically to third parties that receive user interaction. These heuristics are intended to allow some third-party integrations that are common on the web to continue to function. They are intended to be temporary and will be removed in a future version of Firefox. They should not be relied upon for current and future web development.</p> - -<p>Third-party storage access may be granted to resources that have been classified as tracking resources when a user gesture triggers a pop-up window that has <a href="/en-US/docs/Web/API/Window/opener">opener access</a> to the originating document. When that occurs, there are two possible ways a third-party origin can be granted access:</p> - -<ul> - <li>The origin of the resource that is initially loaded in the pop-up window is granted storage access on the opener document if that origin has received user interaction as a first party within the past 30 days.</li> - <li>After the initial resource is loaded in the pop-up window, the window may go through a series of redirects to other hosts. If a user interacts with the pop-up window following a redirect, the origin of the content loaded in the pop-up window is given storage access on the opener document.</li> -</ul> - -<h3 id="Scope_of_storage_access">Scope of storage access</h3> - -<p>When storage access is granted, it is scoped to the origin of the opener document or subdomains of that origin. Access that is granted on the subdomain of an origin does not extend to the top-level origin. As an example, if a resource from <code>tracker.example</code> is granted storage access on <code>foo.example.com</code>, then <code>tracker.example</code> will be able to access its cookies on <code>bar.foo.example.com</code> but not <code>example.com</code>. Instead, if <code>tracker.example</code> were granted access on <code>example.com</code> it would be able to access its storage on <code>bar.foo.example.com</code>, <code>foo.example.com</code>, and <code>example.com</code>.</p> - -<p>When storage access is granted to <code>tracker.example</code> on <code>example.com</code>, all resources loaded from <code>tracker.example</code> on any top-level document loaded from <code>example.com</code> are immediately given storage access. This includes all resources loaded in the main context of the page, embedded <code><iframe></code>s, and resources loaded within embedded <code><iframe></code>s. Storage access is not extended to other resources loaded on <code>example.com</code> (e.g. <code>other-tracker.example</code>), nor to other first parties on which <code>tracker.example</code> is embedded (e.g. <code>example.org</code>).</p> - -<p>Storage access grants extend into the first level of nested contexts, but no further. This means that <code><iframe></code>s embedded in the main context of the page and loaded from a domain classified as a tracker will have full access to all storage locations accessible through JavaScript. Similarly, requests for resources loaded in <code><iframe></code>s embedded in the main context of the page will have access to HTTP cookies. However, further nested contexts, including but not limited to those from the origin classified as a tracker, will not be granted storage access.</p> - -<p>Consider the following embedding scenarios on a top-level page loaded from <code>example.com</code> on which <code>tracker.example</code> has been granted storage access.</p> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">Embedding</th> - <th scope="col">tracker.example resource storage access</th> - </tr> - </thead> - <tbody> - <tr> - <td>An image is loaded from <code>tracker.example</code> and embedded in the main context of <code>example.com</code>.</td> - <td>HTTP: Yes<br> - JS: N/A</td> - </tr> - <tr> - <td><code>example.com</code> embeds an <code><iframe></code> from <code>example.org</code>. That <code><iframe></code> goes on to load an image from <code>tracker.example</code>.</td> - <td>HTTP: Yes<br> - JS: N/A</td> - </tr> - <tr> - <td><code>example.com</code> embeds an <code><iframe></code> from <code>example.org</code>. That <code><iframe></code> goes on to embed an <code><iframe></code> from <code>tracker.example</code>.</td> - <td>HTTP: Yes<br> - JS: No</td> - </tr> - <tr> - <td><code>example.com</code> embeds an <code><iframe></code> from <code>tracker.example</code>.</td> - <td>HTTP: Yes<br> - JS: Yes</td> - </tr> - <tr> - <td><code>example.com</code> embeds an <code><iframe></code> from <code>example.com</code> (same origin). The nested <code><iframe></code> embeds an <code><iframe></code> from <code>tracker.example</code>.</td> - <td>HTTP: Yes<br> - JS: No</td> - </tr> - </tbody> -</table> - -<h3 id="Storage_access_expiration">Storage access expiration</h3> - -<p>The storage access grant expires after 30 days. Domains classified as tracking resources may be granted third-party storage access on multiple first parties, and the storage permission for each party expires independently. The above heuristics will also serve to extend the lifetime of a third-party storage permission on origins that have already been granted access. Each time the heuristic is activated, or a success call to the Storage Access API is made, the pre-existing storage access expiration will be extended by 30 days, counting from the time the previous access was granted.</p> - -<p>Please note that in the future we expect to make changes to how long storage access will remain valid for. As mentioned before, the way to know that you will be able to use storage as a third-party going forward will be using the Storage Access API.</p> - -<h2 id="Debugging">Debugging</h2> - -<p>We encourage site owners to test their sites, particularly those that rely on third-party content integrations. We’ve added several new features to Firefox to make testing easier.</p> - -<h3 id="Developer_Tools_notifications">Developer Tools notifications</h3> - -<p>The <a href="/en-US/docs/Tools/Network_Monitor">Network Monitor</a> in Firefox Developer Tools now includes an indicator for all resource requests that have been classified as tracking resources. This indicator is shown as a shield icon in the domain column. In the sample image below, <code>trackertest.org</code> is classified as a tracking resource, while the request to example.com is not.</p> - -<p><img alt="network requests in Firefox devtools indicating which ones are tracking resources with a small shield icon" src="https://mdn.mozillademos.org/files/16181/Screen_Shot_2018-09-21_at_10.34.22_AM.png" style="border-style: solid; border-width: 1px; display: block; height: 57px; margin: 0px auto; width: 600px;"></p> - -<h3 id="Adding_custom_domains_to_the_Tracking_Protection_list">Adding custom domains to the Tracking Protection list</h3> - -<p>Curious how things will work if a third-party domain on your site were classified as a tracker? We’ve added a preference that allows you to add custom domains to the Tracking Protection URL classifier. To do so:</p> - -<ol> - <li>Type <code>about:config</code> in your address bar. If you are presented with a page that warns you "This may void your warranty!", click "I accept the risk!"</li> - <li>Right click on the next page and click "New" > "String".</li> - <li>For the preference name enter "urlclassifier.trackingAnnotationTable.testEntries".</li> - <li>For the preference value enter comma separated origins that you’d like to have classified as trackers. E.g. "example.net,example.org".</li> -</ol> - -<div class="warning"> -<p><strong>Warning</strong>: Be sure to remove these entries after you have finished testing.</p> -</div> - -<h2 id="FAQ">FAQ</h2> - -<p>This cookie policy has the potential to lead to site breakage, but has been designed to allow common third-party integrations to continue to work while preventing cross-site tracking. In this section we describe the functionality you can expect in different integration scenarios.</p> - -<h3 id="Will_this_storage_access_policy_block_ads_from_displaying_on_my_website">Will this storage access policy block ads from displaying on my website?</h3> - -<p>No — this feature only restricts access to cookies and site data that can be used to track users across websites. Blocking tracking identifiers does not prevent the display of advertisements.</p> - -<h3 id="I_use_a_third-party_analytics_service_that_is_classified_as_a_tracker._Will_I_still_receive_analytics_data">I use a third-party analytics service that is classified as a tracker. Will I still receive analytics data?</h3> - -<p>This depends on how the third-party analytics service is implemented. Third-party analytics providers will no longer be able to user their third-party storage to collect data. This means that providers using cookies which are scoped to their third-party domain, or local storage and other site data stored under their origin, will no longer have access to those identifiers across other websites.</p> - -<p>If these services are embedded into the main context of the page, they can continue to use first-party cookies and site storage to track users across page visits on that specific first-party domain.</p> - -<h3 id="I_use_third-party_services_for_social_login_like_and_share_button_integration._Will_my_users_still_be_able_to_make_use_of_these_services">I use third-party services for social login, like, and share button integration. Will my users still be able to make use of these services?</h3> - -<p>This depends on how the social integration is implemented. We expect that many of the popular social integrations will continue to function as they do under Firefox’s current cookie policy with some minor differences in the user experience.</p> - -<p>A social content provider that is classified as a tracker will not have access to their third-party cookies when the user first visits a new first party. Thus, the user may appear logged out to the service despite being logged in when they visit the provider’s website directly. Depending on the type of integration, the user may have to take some action to interact with the social content provider before the provider is given access to their cookies. For example:</p> - -<ul> - <li>For social login, the user may have to click a login button on the first party.</li> - <li>For social like or share buttons, the user will have to first interact with the button in a logged-out state. Once they do, many social content providers will prompt them to log in.</li> -</ul> - -<p>After these interactions, the provider will receive third-party storage access if they prompt the user in a way that is captured by the storage access activation heuristics described above. These providers should consider switching to explicitly request storage access through the Storage Access API as soon as possible. An <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1469714">initial implementation of this API</a> is currently available in Nightly.</p> - -<h3 id="I_use_third-party_pixels_and_other_tools_to_measure_the_effectiveness_of_my_ad_campaigns._Will_I_still_be_able_to_measure_the_conversion_rate_of_my_ads">I use third-party pixels and other tools to measure the effectiveness of my ad campaigns. Will I still be able to measure the conversion rate of my ads?</h3> - -<p>This depends on how the third party has implemented the measurement tool, but generally ad conversion measurement will be more difficult. Consider the following examples:</p> - -<ol> - <li>You run an ad on a social media website that is seen several times by a user, but never clicked. That user later visits your website, which includes a conversion tracking tag from the same social media website. This type of conversion is often referred to as a “view-through conversion.” Since the social media website does not have access to their third-party storage, they will not recognize the user as the same user that saw the advertisements on their website and the conversion will not be tracked. We expect that most view-through conversion tracking techniques will no longer work, including those offered by display networks.</li> - <li>You run an ad on a display network or social media website that is clicked by a user. That user lands on your website, which includes a conversion tracking tag from the same website that displayed your ad. This type of conversion is often referred to as a “click-through conversion.” Since the social media site or display network will not have access to their third-party storage, they will not recognize the user as the same user that saw the advertisements on their website and the conversion will not be tracked. We expect that this version of click-through conversion will no longer work.</li> - <li>You run an ad that appears on a social media website. A user clicks on your advertisement and is taken to a landing page that contains a conversion tracking tag from the third-party network. On the social media website, the network annotates the advertisement landing page URL with a query parameter that signals that the visit was the result of a click on an advertisement. On your website, the display network’s tag checks the URL query parameters and saves any ad tracking parameters to first-party storage. If a user later completes a conversion event, the network’s tag checks first-party storage to determine which click (or clicks) was responsible for the visit. We expect that click-through conversion implemented in this way will continue to work.</li> -</ol> diff --git a/files/id/mozilla/gecko/index.html b/files/id/mozilla/gecko/index.html deleted file mode 100644 index a2fb0f60ab..0000000000 --- a/files/id/mozilla/gecko/index.html +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Gecko -slug: Mozilla/Gecko -translation_of: Mozilla/Gecko ---- -<div class="summary"> - <p><span class="seoSummary"><strong>Gecko</strong> adalah nama dari pengatur tata letak yang dikembangkan oleh Proyek Mozilla. It was originally named NGLayout. Gecko's function is to read web content, such as <a href="/en-US/docs/HTML" title="HTML">HTML</a>, <a href="/en-US/docs/CSS" title="CSS">CSS</a>, <a href="/en-US/docs/XUL" title="XUL">XUL</a>, <a href="/en-US/docs/JavaScript" title="JavaScript">JavaScript</a>, and render it on the user's screen or print it. In XUL-based applications Gecko is used to render the application's user interface as well.</span></p> -</div> -<p>Gecko di gunakan di banyak aplikasi, termasuk beberapa peramban (browsers), contohnya Firefox, SeaMonkey, dll. (for a complete list, please refer to <a class="external" href="http://en.wikipedia.org/wiki/Gecko_%28layout_engine%29#Web_browsers" rel="external" title="http://en.wikipedia.org/wiki/Gecko_(layout_engine)#Web_browsers">Wikipedia's article on Gecko</a>.) Products using the same version of Gecko have identical support for standards.</p> -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h2 class="Documentation" id="Documentation">Documentation</h2> - <dl> - <dt> - <a href="/en-US/docs/Gecko_FAQ" title="Gecko_FAQ">Gecko FAQ</a></dt> - <dd> - Frequently asked questions about Gecko.</dd> - <dt> - <a href="/en-US/docs/Gecko_DOM_Reference" title="https://developer.mozilla.org/en-US/docs/Gecko_DOM_Reference">Gecko DOM reference</a></dt> - <dd> - Reference to the DOM.</dd> - <dt> - <a href="/en-US/docs/Gecko-Specific_DOM_Events" title="Gecko/Gecko event reference">Gecko event reference</a></dt> - <dd> - Reference to events used within Gecko and Mozilla applications; for web-standard DOM events, see the <a href="/en-US/docs/DOM/DOM_event_reference" title="DOM/DOM event reference">DOM event reference</a>.</dd> - <dt> - <a href="/en-US/docs/Gecko/Versions" title="Gecko/Versions">Gecko versions and application versions</a></dt> - <dd> - Versions of Gecko and the applications they're used in.</dd> - <dt> - <a class="external" href="/en-US/docs/Introduction_to_Layout_in_Mozilla" title="https://developer.mozilla.org/en-US/docs/Introduction_to_Layout_in_Mozilla">Introduction to Layout in Mozilla</a></dt> - <dd> - Tech Talk on layout.</dd> - <dt> - <a href="/en-US/docs/Embedding_Mozilla" title="Embedding_Mozilla">Embedding Mozilla</a></dt> - <dd> - Using Gecko in your own application.</dd> - <dt> - <a href="/en-US/docs/Character_Sets_Supported_by_Gecko" title="Character Sets Supported by Gecko">Character sets supported by Gecko</a></dt> - <dd> - A list of the character sets supported by Gecko.</dd> - <dt> - <a href="/en-US/docs/Gecko/HTML_parser_threading" title="Gecko/HTML_parser_threading">HTML parser threading</a></dt> - <dd> - Description of multithreading in the HTML parser.</dd> - <dt> - {{interwiki('wikimo', 'Gecko:Home_Page', 'Gecko Homepage on MozillaWiki')}}</dt> - <dd> - Home for the active developers. Roadmaps and more up-to-date resources.</dd> - </dl> - <p><span class="alllinks"><a href="/en-US/docs/tag/Gecko" title="tag/Gecko">View All...</a></span></p> - </td> - <td> - <h2 class="Community" id="Community">Community</h2> - <ul> - <li>View Mozilla forums... {{DiscussionList("dev-tech-layout", "mozilla.dev.tech.layout")}}</li> - </ul> - <h2 class="Related_Topics" id="Related_Topics">Related Topics</h2> - <dl> - <dd> - <a href="/en-US/docs/Web_Standards" title="Web_Standards">Web Standards</a>, <a href="/en-US/docs/XUL" title="XUL">XUL</a>, <a href="/en-US/docs/Embedding_Mozilla" title="Embedding_Mozilla">Embedding Mozilla</a>, <a href="/en-US/docs/Developer_Guide" title="Developing_Mozilla">Developing Mozilla</a></dd> - </dl> - </td> - </tr> - </tbody> -</table> -<p> </p> diff --git a/files/id/mozilla/localization/index.html b/files/id/mozilla/localization/index.html deleted file mode 100644 index ea5809653c..0000000000 --- a/files/id/mozilla/localization/index.html +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Pelokalan di Mozilla -slug: Mozilla/Localization -tags: - - ButuhPenerjemahan - - Landing - - Localization - - Mozilla - - NeedsTranslation - - Pelokalan - - Pendaratan - - Penerjemahan - - RintisanTopik - - TopicStub - - Translation - - l10n -translation_of: Mozilla/Localization ---- -<p><span class="seoSummary"><strong>Pelokalan</strong> (L10n) adalah proses menerjemahkan antarmuka pengguna sebuah perangkat lunak dari satu bahasa ke bahasa yang lain, dan menyesuaikannya agar sesuai dengan kultur setempat. Semua sumber daya tersedia bagi siapa saja yang berminat dalam aspek teknis untuk terlibat dalam pelokalan, bagi para pengembang dan semua kontributor.</span></p> - -<h2 id="Lihat_pula">Lihat pula</h2> - -<dl> - <dt><a href="/id/docs/Project:MDN/Localizing" title="/en-US/docs/Project:MDN/Localizing">Pelokalan MDN</a></dt> - <dd>Sumber daya ini mencakup pelokalan dokumentasi di MDN.</dd> - <dt><a href="/id/Apps/Build/Localization">Pelokalan aplikasi</a></dt> - <dd>Kumpulan dokumen ini secara khusus digunakan untuk pelokalan aplikasi, termasuk aplikasi Firefox OS.</dd> - <dt><a href="/en-US/docs/Web/API/L10n">L10n</a></dt> - <dd>Dokumen referensi untuk API L10n yang digunakan Mozilla dalam pelokalan Firefox OS.</dd> -</dl> diff --git a/files/id/mozilla/localization/localizing_with_verbatim/index.html b/files/id/mozilla/localization/localizing_with_verbatim/index.html deleted file mode 100644 index 14e7d665b6..0000000000 --- a/files/id/mozilla/localization/localizing_with_verbatim/index.html +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: Pelokalan dengan Verbatim -slug: Mozilla/Localization/Localizing_with_Verbatim -translation_of: Mozilla/Localization/Localizing_with_Pontoon ---- -<p><span class="seoSummary">Verbatim adalah suatu alat berbasis web (khususnya Pootle yang dihosting Mozilla) untuk melokalkan konten web Mozilla. Alat tersebut dapat digunakan untuk melokalkan berbagai proyek Mozilla dan mampu mendukung bahasa apa saja. Panduan ini akan membantu Anda melakukan pelokalan proyek Mozilla pada umumnya.</span> Tutorial yang disediakan di sini akan memberi Anda landasan yang bermanfaat dalam penggunaan Verbatim untuk melokalkan setiap proyek Mozilla yang ingin Anda ikut sertakan dalam upaya komunitas pelokalan Anda. Kita akan membahas proyek-proyek khusus yang sedang menggunakan Verbatim, cara untuk mulai menggunakan Verbatim, dan pekerjaan-pekerjaan yang umumnya dapat diselesaikan dengan Verbatim.</p> - -<h2 id="Mulai_menggunakan_Verbatim">Mulai menggunakan Verbatim</h2> - -<p>Being that it is web-based, localizers must be online to use Verbatim. There are essentially two ways to get started with Verbatim: start a new localization or join an existing localization community's efforts. Either way, you will need to follow these steps to start working on a Verbatim project.</p> - -<table style="border-color: #000000; border-style: solid; width: 100%;"> - <thead> - <tr style="text-align: center;"> - <th scope="col" style="text-align: center;"><strong>Start a new localization on Verbatim</strong></th> - <th scope="col" style="text-align: center;"><strong>Join an existing localization on Verbatim</strong></th> - </tr> - </thead> - <tbody> - <tr> - <td> - <ol> - <li>Point your browser to <a class="external" href="http://localize.mozilla.org/">http://localize.mozilla.org</a>. This is where Verbatim is hosted.</li> - </ol> - </td> - <td> - <ol> - <li>Point your browser to <a class="external" href="http://localize.mozilla.org/">http://localize.mozilla.org</a>. This is where Verbatim is hosted.</li> - </ol> - </td> - </tr> - <tr> - <td> - <ol start="2"> - <li>If you have a Mozilla LDAP account, simply sign in using your LDAP credentials. If not, register for an account and sign in once you've completed registration. The links for both are located in the upper right-hand corner of the page.</li> - </ol> - </td> - <td> - <ol start="2"> - <li>If you have a Mozilla LDAP account, simply sign in using your LDAP credentials. If not, register for an account and sign in once you've completed registration. The links for both are located in the upper right-hand corner of the page.</li> - </ol> - </td> - </tr> - <tr> - <td> - <ol start="3"> - <li>File a <a class="link-https" href="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&assigned_to=nobody%40mozilla.org&blocked=&bug_file_loc=https%3A%2F%2Flocalize.mozilla.org%2F&bug_severity=normal&bug_status=NEW&cf_blocking_191=---&cf_blocking_192=---&cf_status_191=---&cf_status_192=---&cf_status_firefox10=---&cf_status_firefox11=---&cf_status_firefox8=---&cf_status_firefox9=---&cf_tracking_firefox10=---&cf_tracking_firefox11=---&cf_tracking_firefox8=---&cf_tracking_firefox9=---&comment=I%20would%20like%20to%20request%20that%20you%20add%20the%20%5Binsert%20your%20locale%20code%20here%5D%20as%20a%20new%20localization%20in%20Verbatim.%0D%0A%0D%0A%5BAdd%20any%20other%20comments%20you%20may%20have%20here.%5D&component=Verbatim&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&defined_groups=1&dependson=&description=&flag_type-4=X&flag_type-607=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Webtools&qa_contact=verbatim%40webtools.bugs&rep_platform=All&requestee_type-325=&requestee_type-4=&requestee_type-607=&short_desc=Request%20for%20new%20localization%20on%20Verbatim&status_whiteboard=&target_milestone=---&version=Trunk" title="https://bugzilla.mozilla.org/enter_bug.cgi?alias=&assigned_to=nobody%40mozilla.org&blocked=&bug_file_loc=https%3A%2F%2Flocalize.mozilla.org%2F&bug_severity=normal&bug_status=NEW&cf_blocking_191=---&cf_blocking_192=---&cf_status_191=---&cf_status_192=---&cf_status_firefox10=---&cf_status_firefox11=---&cf_status_firefox8=---&cf_status_firefox9=---&cf_tracking_firefox10=---&cf_tracking_firefox11=---&cf_tracking_firefox8=---&cf_tracking_firefox9=---&comment=I%20would%20like%20to%20request%20that%20you%20add%20the%20%5Binsert%20your%20locale%20code%20here%5D%20as%20a%20new%20localization%20in%20Verbatim.%0D%0A%0D%0A%5BAdd%20any%20other%20comments%20you%20may%20have%20here.%5D&component=Verbatim&contenttypeentry=&contenttypemethod=autodetect&contenttypeselection=text%2Fplain&data=&defined_groups=1&dependson=&description=&flag_type-4=X&flag_type-607=X&form_name=enter_bug&keywords=&maketemplate=Remember%20values%20as%20bookmarkable%20template&op_sys=All&priority=--&product=Webtools&qa_contact=verbatim%40webtools.bugs&rep_platform=All&requestee_type-325=&requestee_type-4=&requestee_type-607=&short_desc=Request%20for%20new%20localization%20on%20Verbatim&status_whiteboard=&target_milestone=---&version=Trunk">bug</a> using this prefilled bugzilla template. Add your locale code and language name to the description field, as well as any other information you'd like to share. See the following example.</li> - </ol> - - <div class="note"><strong>Example</strong>: I would like to request that you add the <em><strong>en-US</strong></em> as a new localization in Verbatim. The langauge is <em><strong>English</strong></em>. Also, I like cookies. Lots and lots of cookies. I can easily be motivated by any and all baked goods.</div> - </td> - <td> - <ol start="3"> - <li><a class="link-https" href="https://wiki.mozilla.org/Category:L10n_Teams" title="https://wiki.mozilla.org/Category:L10n_Teams">Contact the community</a> to find out which projects they need you to concentrate your efforts on. See the following example for what you could include in your email to the community leaders.</li> - </ol> - - <div class="note"><strong>Example</strong>: I would like to join your localization efforts on Verbatim for this locale. Where would be the best place for me to begin? Also, I would like to buy you a drink to encourage you to let me join the team!</div> - </td> - </tr> - </tbody> -</table> - -<p>Now that you're registered and logged in, we'll outline the general translation workflow, using the <a class="link-https" href="https://localize.mozilla.org/projects/mdn" title="https://localize.mozilla.org/projects/mdn/">MDN project page</a> as our example.</p> - -<h2 id="Translating">Translating</h2> - -<p>First thing's first, you need to find untranslated source strings to translate.</p> - -<ol> - <li>Navigate to the <a class="link-https" href="https://localize.mozilla.org/projects/mdn" title="https://localize.mozilla.org/projects/mdn/">MDN project page</a>.</li> - <li>Select your language from the <strong>Overview</strong> tab.</li> - <li>Now click on the the <strong>Translate</strong> tab. This tab will display the directories for the MDN user interface.</li> - <li>Select the <strong>LC Messages</strong> directory. This is where the project's <code>.po</code> files containing translatable strings are located. You will now see an overview of each <code>.po</code> file.</li> - <li>In the summary column, the number of words untranslated will be shown as a link. Click on that link to be taken directly to the first string that needs to be translated.</li> -</ol> - -<p>Now you're ready to contribute translations and you won't believe how easy it is. Check it out, you can contribute translations in two simple steps:</p> - -<ol> - <li>Simply type your translation in the box to below the English string</li> - <li>Select <strong>Suggest</strong>. If you have approval permission, select <strong>Submit</strong>. You will then be taken to the next string that needs translating.</li> - <li>Hooray! You're translating! Repeat steps one and two for the remainder of the untranslated strings.</li> -</ol> - -<div class="note"><strong>Note</strong>: If you come across a string that already has a suggested translation, you can still suggest your own translation if you feel it is more accurate.</div> - -<h3 id="Some_extra_cool_features_on_Verbatim">Some extra cool features on Verbatim</h3> - -<p>Here are a few additional items about the Verbatim interface that you should be aware of. Some of these can be seen in the screen shot below.</p> - -<p><a href="/@api/deki/files/5930/=Translate_Tab.png" title="Translate Tab.png"><img alt="Translate Tab.png" class="default internal" src="/@api/deki/files/5930/=Translate_Tab.png" style="height: 221px; width: 1113px;"></a></p> - -<ul> - <li>You can copy the English string over to the translation box by clicking the <strong>Copy</strong> icon.</li> - <li>You can use machine translation by clicking on the <strong>Google Translate</strong> icon.</li> - <li>You can move forward and back through the strings by clicking the <strong>Next</strong> and <strong>Previous</strong> buttons.</li> - <li>You can navigate directly to a particular string by clicking it's string number on the far left.</li> - <li>You can mark a translation as <strong>Fuzzy</strong> if you think there could be a better way to say something. This will mark it so it can be found and updated later. Remember that only submitted strings will be commited to the localization's repository, not fuzzy strings. If strings remain marked as fuzzy, the source string will appear in your localized version instead of a translated string.</li> - <li>You can add notes about a particular string in the <strong>Translator Comments</strong> section.</li> - <li>When translating a string with both singular and plural forms you will see two boxes on the right hand side. The box for the singular form is labeled <strong>Plural Form 0</strong> and the box for the plural form is labeled <strong>Plural Form 1</strong>.</li> -</ul> - -<h2 id="Additional_tasks">Additional tasks</h2> - -<p>If you are a localizer with approval priviledges, here are a few more tasks that you should be aware of.</p> - -<h3 id="Review_suggested_translations">Review suggested translations</h3> - -<ol start="1"> - <li>Click on the <strong>Review</strong> tab. It will show how many strings are waiting for review for each <code>.po</code> file.<a href="/@api/deki/files/5931/=Review_Tab1.png" title="Review Tab1.png"><img alt="Review Tab1.png" class="internal rwrap" src="/@api/deki/files/5931/=Review_Tab1.png?size=webview" style="float: right; height: 145px; width: 274px;"></a></li> - <li>Select <strong style="font-weight: bold;">Review</strong><strong> suggestions</strong> to start approving suggestions. It will take you to the first string that needs to be reviewed.</li> - <li>You can accept the suggestion by clicking the green checkmark or reject the suggestion by clicking the red X (see the screen shot from the previous section).</li> -</ol> - -<p>It is important to note that <em>only</em> submitted strings will appear in your localized pages. Neither suggestions nor fuzzy strings will appear. Before commiting your final localized product, make sure all strings have been submitted.</p> - -<h3 id="Using_VCS_on_Verbatim">Using VCS on Verbatim</h3> - -<p>VCS (<strong>V</strong>ersion <strong>C</strong>ontrol <strong>S</strong>ystem) is the repository system we use to update the project's strings as well as push your translated content onto the web. The difference between the two tasks is simply a matter of which link to click.</p> - -<p><img alt="VCS.png" class="internal rwrap" src="/@api/deki/files/5925/=VCS.png" style="float: right;">To push your strings onto the web and see your changes, simply select the <strong>Commit to VCS</strong> link underneath each file name. It usually takes about an hour before you can see your changes on the project site.</p> - -<p>To update your <code>.po</code> files with new untranslated strings, simple select the <strong>Update from VCS</strong> link underneath each file name.</p> - -<p> </p> - -<div class="note"><br> -<strong>Note</strong>: Some projects are automatically updated nightly while others require you to manually update them to receive new source content. Be sure to pay close attention to this, as it can alter your workflow.</div> - -<h2 id="Translating_Verbatim_files_with_an_external_application">Translating Verbatim files with an external application</h2> - -<p>While in the <strong>Translate</strong> tab, you have the option to export the <code>.po </code>and <code>.xliff</code> files and translate the strings with an external application (i.e., a text editor or translation memory tool).</p> - -<ol> - <li>To download the <code>.po</code> file, select the <strong>Download</strong> link found underneath each file name. To download the .<code>xliff</code> file, select the <strong>Download XLIFF</strong> link.</li> - <li>Proceed to translate the strings using your selected tool.</li> -</ol> - -<p>Once you've finished your translations, you'll need to upload your file to Verbatim. You can do this from the <strong>Translate</strong> tab.</p> - -<ol> - <li>Navigate to the bottom of the files list to the <strong>Upload File</strong> section.</li> - <li>Click on the <strong>Browse</strong> button and select the file you wish to upload.</li> - <li>Select an upload setting from the options provided.</li> - <li>Once your upload setting has been selected, click <strong>Upload</strong>.</li> -</ol> - -<div class="warning"> -<p class="warning"><strong>Important</strong>: There have been some problems in the past with community members updating their source strings while others are in the process of localizing the previous updated files. This can cause community members to overlook new source strings, producing untranslated strings in a localized project. Be sure to coordinate these manual updates within your community to avoid this problem.</p> -</div> - -<h2 id="You're_ready_to_go!">You're ready to go!</h2> - -<p>Whew! You've arrived at the end! Time to take what you've learned and put it to good use spreading Mozilla to everyone in your region. Have fun and <a class="link-mailto" href="mailto:l10n-drivers@mozilla.com" title="l10n-drivers@mozilla.com">let us know</a> if you run into any difficulties. We'll be happy to help in any way we can.</p> - -<p> </p> - -<p><a href="/en/Localization_Quick_Start_Guide:_Translation" title="Localization Quick Start Guide: Translation">Back: Quick Start Guide</a></p> diff --git a/files/id/mozilla/localization/quick_start_guide/index.html b/files/id/mozilla/localization/quick_start_guide/index.html deleted file mode 100644 index 216207c9c4..0000000000 --- a/files/id/mozilla/localization/quick_start_guide/index.html +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Panduan memulai cepat pelokalan -slug: Mozilla/Localization/Quick_start_guide -tags: - - ButuhPenerjemahan - - Guide - - Localization - - Mozilla - - NeedsTranslation - - Panduan - - Pelokalan - - Penerjemahan - - RintisanTopik - - TopicStub - - Translation -translation_of: Mozilla/Localization/Quick_start_guide ---- -<p>Selamat datang di pelokalan Mozilla (singkatnya L10n)!</p> - -<p>Entah Anda berada di sini untuk memulai pelokalan Anda sendiri dalam proyek Mozilla ataupun untuk bergabung dalam upaya pelokalan yang sedang berlangsung, Anda datang ke tempat yang tepat! <span class="seoSummary">Panduan ini memuat semua informasi dasar dan teknis yang Anda perlukan untuk terlibat dalam program L10n Mozilla.</span> Kami akan menunjukkan kepada Anda langkah-langkah untuk memulainya, dari pengaturan awal hingga pengetesan dan perilisan pelokalan Anda sendiri. Dalam prosesnya, Anda akan mempelajari berbagai proyek yang di dalamnya Anda dapat berkontribusi dan semua alat yang digunakan untuk pelokalan.</p> - -<p>Bilamana kita berhadapan dengan kasus-kasus khusus, kita mengambilnya dari proyek Firefox sebagai proyek yang paling banyak dilakukan pelokalan di Mozilla. Dan ketika Anda hampir menyelesaikan panduan ini, Anda seharusnya mampu melakukan perubahan pada pengaturan lokal Firefox Anda dan menyaksikan perubahan pada antarmukanya. Akhir kata, setelah Anda menyelesaikan panduan ini, Anda akan memiliki semua alat yang diperlukan untuk mulai berkontribusi!</p> - -<p>Ingat, panduan ini hanya memuat instruksi seputar aspek teknis L10n Mozilla saja. Kunjungi halaman <a class="link-https" href="https://wiki.mozilla.org/L10n:Localization_Process" title="https://wiki.mozilla.org/L10n:Overview">Proses L10n</a> untuk mempelajari keseluruhan prosesnya.</p> - -<div style="width: 25%; background-color: #4AA02C; float: left; display: block; margin: 1.5%; border: 1px solid #C4C295; text-align: center; padding: 2.5%; padding-top: 0px;"> -<h2 id="Pengaturan_awal"><a href="/id/docs/Mozilla/Localization/Quick_start_guide/Initial_setup" title="id/Localization_Quick_Start_Guide/Initial_setup">Pengaturan awal</a></h2> -Persiapan teknis sebelum melakukan pelokalan.</div> - -<div style="width: 25%; background-color: #A2BFF4; float: left; display: block; margin: 1.5%; border: 1px solid #C4C295; text-align: center; padding: 2.5%; padding-top: 0px;"> -<h2 id="Tahap_penerjemahan"><a href="/en-US/docs/Mozilla/Localization/Quick_start_guide/Translation_phase" title="id/Localization_Quick_Start_Guide/Translation_phase">Tahap penerjemahan</a></h2> -Tutorial penggunaan alat L10n untuk penerjemahan.</div> - -<div style="width: 25%; background-color: orange; float: left; display: block; margin: 1.5%; border: 1px solid #C4C295; text-align: center; padding: 2.5%; padding-top: 0px;"> -<h2 id="Tahap_QA"><a href="/id/docs/Mozilla/Localization/Quick_start_guide/QA_phase" title="id/Localization_Quick_Start_Guide/QA_phase">Tahap QA</a></h2> -Tutorial pengetesan L10n.</div> - -<div style="width: 92%; background-color: #C0C0C0; float: left; display: block; margin: 1.5%; border: 1px solid #C4C295; text-align: center; padding: 2.5%; padding-top: 0px;"> -<h2 id="Tahap_perilisan"><a href="/id/docs/Mozilla/Localization/Quick_start_guide/Release_phase" title="id/Localization_Quick_Start_Guide/Release_phase">Tahap perilisan</a></h2> -Langkah-langkah mengirimkan pekerjaan pelokalan Anda.</div> - -<div style="background-color: white; border: 3px solid; display: block; padding: 20px; margin-top: 20px;">Keempat tahap ini merupakan sisi teknis dari program L10n. Untuk mempelajari lebih lanjut tentang semua ini, silakan klik salah satu tautan di atas. Untuk mendapatkan gambaran besarnya, kami sarankan Anda memulai dengan boks hijau dan melanjutkannya secara bertahap.</div> - -<p> </p> - -<div class="note"><strong>Note</strong>: This guide is written for two types of contributors: those starting a new localization and those joining an existing localization. It is important to know which information applies to which type of contributor. To help you filter through to the most applicable information, note that all information that is unique to those starting a new localization will be in <span style="color: #daa520;">orange font</span>. All information that is unique to those joining an existing localization will be in <span style="color: #0000ff;">blue font</span>.</div> - -<p class="note"> </p> - -<p>{{ Next("Localization_Quick_Start_Guide/Initial_setup") }}</p> diff --git a/files/id/mozilla/localization/quick_start_guide/qa_phase/index.html b/files/id/mozilla/localization/quick_start_guide/qa_phase/index.html deleted file mode 100644 index 0ee69f43e4..0000000000 --- a/files/id/mozilla/localization/quick_start_guide/qa_phase/index.html +++ /dev/null @@ -1,197 +0,0 @@ ---- -title: Tahap QA -slug: Mozilla/Localization/Quick_start_guide/QA_phase -translation_of: Mozilla/Localization/Quick_start_guide/QA_phase ---- -<p>Setelah hasil kerja keras anda dalam melokalisasi kami yakin bahwa anda tidak hanya ingin melihat hasil kerja anda tapi juga ingin memastikan bahwa itu tepat! Jika anda tidak begitu awam dengan kode, anda pasti khawatir akan merusak sesuatu (oops!). Sekarang kami akan menuntun anda melakukan test kualitas pekerjaan anda untuk memastikan anda berada di jalur yang tepat.</p> - -<p>Jika anda melokalisasi halaman Mozilla, hasil pekerjaan anda akan ditampilkan<strong> </strong>segera setelah anda menyelesaikannya tanpa membutuhkan paket bahasa. Seperti halnya kasus ini, bagian dari pedoman ini tidak sepenuhnya dapat di aplikasikan oleh anda. Silahkan tekan tombol <strong>Next </strong>pada bagian paling bawah laman jika anda ingin melewati.</p> - -<p>Untuk melihat hasil pekerjaan anda di Firefox (atau dalam aplikasi Mozilla yang lain), anda butuh paket bahasa yang terinstal pada direktori anda.</p> - -<h2 id="Manual_automated_builds">Manual & automated builds</h2> - -<p>Dengan menekan tombol, beberapa alat L10n (seperti Narro and Koala) secara otomatis membuat paket bahasa untuk anda. Jika anda menggunakan salah satu dari alat tersebut, silahkan menuju ke bagian <a href="https://developer.mozilla.org/en/Localization_Quick_Start_Guide:_QA#Seeing_your_work">Melihat pekerjaan anda</a>, Sekarang mari menuju ke pembuatan paket bahasa anda sendiri secara manual.</p> - -<div class="note"><strong>Note</strong>: Remember all of those pre-requisite tools we asked you to install in the <a href="/en/Localization_Quick_Start_Guide#Local_environment_tools" title="https://developer.mozilla.org/en/Localization_Quick_Start_Guide#Local_environment_tools">initial setup</a>? Here's where you'll need almost all of them. If you haven't installed them yet, <em>now</em> is the time to do it.</div> - -<h3 id="Persiapan">Persiapan</h3> - -<p>Kita akan menggunakan file direktori berikut sebagai contoh:</p> - -<pre style="margin-left: 40px;">your working directory <em>(root)/</em> - mozilla-aurora <em>(en-US source, pulled from <a class="external" href="http://hg.mozilla.org/releases/mozilla-aurora" rel="external" title="http://hg.mozilla.org/releases/mozilla-aurora">http://hg.mozilla.org/releases/mozilla-aurora</a></em> <em>)</em>/ - l10n-central <em>(directory for L10n directories, one per L10n; often referred to as "l10n base")/</em> - your-locale-code <em>(a directory with your L10n files, in this example we'll use x-testing)</em> - -<strong>Example</strong>: <code>root/mozilla-aurora</code> & <code>root/l10n-central/x-testing</code> -</pre> - -<p>Additionally, you will need to c</p> - -<p>Please either follow the above structure closely or adjust the commands below according to your custom setup.</p> - -<p>To copy this file to the appropriate directory, do the following:</p> - -<ol> - <li>Navigate to your working directory from your command-line terminal (i.e., where you created the folder structure described above).</li> - <li>Enter the following commands:</li> -</ol> - -<pre style="margin-left: 40px;">mkdir -p l10n-central/x-testing/toolkit/ - -cp mozilla-aurora/toolkit/locales/en-US/defines.inc l10n-central/x-testing/toolkit/defines.inc -</pre> - -<p>Tah-dah! Copied!</p> - -<p>Finally, you will need a file called <code>.mozconfig</code> to proceed with manual builds. This file contains the necessary build instructions.</p> - -<p>To create and configure this file, follow these instructions:</p> - -<ol> - <li>Update the Mozilla source code:</li> -</ol> - -<p style="margin-left: 40px;"><code>$ cd mozilla-aurora<br> - $ hg pull -u</code></p> - -<ol start="2" style="list-style-type: decimal;"> - <li>Enter the following command to create the <code>.mozconfig</code> file: <code>$ nano -w .mozconfig</code></li> - <li>Enter the following lines in your <code>.mozconfig</code> file:</li> -</ol> - -<pre style="margin-left: 40px;">mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../firefox-build -ac_add_options --disable-compile-environment -ac_add_options --with-l10n-base=../l10n-central # path relative to MOZ_OBJDIR -ac_add_options --enable-application=[<em>browser or mail</em>] -</pre> - -<p style="margin-left: 40px;">You will need to specify which application you're localizing in the fourth line (e.g., for Firefox, that's <code>browser</code>, Thunderbird would be <code>mail</code>).</p> - -<ol start="4" style="list-style-type: decimal;"> - <li>Enter the following command to perform the configuration: <code>$ mach configure</code></li> - <li>Once your command-line finishes spitting out the config command's output, navigate to the newy created directory:<code> $ cd ../firefox-build/browser/locales</code></li> -</ol> - -<p>Now you're ready to build! At this point you can choose between two build options. You can either:</p> - -<ul> - <li><a href="/en/Creating_a_Language_Pack#Creating_a_langpack" title="https://developer.mozilla.org/en/Creating_a_Language_Pack#Creating_a_langpack">Create a langpack</a>, which is installed <em>on top of</em> your Mozilla application, or</li> - <li><a href="/en/Creating_a_Language_Pack#L10n_binary_repack" title="https://developer.mozilla.org/en/Creating_a_Language_Pack#L10n_binary_repack">Repack the application's binary</a> (aka, a L10n repack), which allows you to install <em>next</em> to your existing Mozilla application installation and use separately.</li> -</ul> - -<p>Visit the links above to learn how to make these testing builds.</p> - -<h2 id="Testing_your_L10n_seeing_your_work">Testing your L10n & seeing your work</h2> - -<p>Now that you have your langpack or L10n repack, let's discuss seeing your work and testing it in the application.</p> - -<p>Testing the langpack will put you one step closer to having your localization added to the L10n releases. Follow the steps below to test your localization:</p> - -<ol> - <li>Install Aurora in your preferred language.</li> - <li>Install the <code>.xpi</code> langpack you just created (or exported).</li> - <li>Set your language using the Quick Locale Switcher or Locale Switcher add-ons by navigating to Tools->Language->Your localization's language code.</li> - <li>Restart your browser and start testing!</li> -</ol> - -<p>Now you should be able to see all of your work up to this point. Click <a class="link-https" href="https://wiki.mozilla.org/MozillaQualityAssurance:l10n_checklist" title="https://wiki.mozilla.org/MozillaQualityAssurance:l10n_checklist">here</a> for guidelines on how to test your localization.</p> - -<h2 id="Don't_lose_your_work!">Don't lose your work!</h2> - -<p>You're work is <em>SO</em> important! We would really hate to see you lose any of it. After you test your localization, you should send it to a remote repository, which will serve as a backup for your work and will let others follow your progress. We're going to go through the process below.</p> - -<p>The official localization teams use repositories at <a class="external" href="http://hg.mozilla.org/" rel="external" title="http://hg.mozilla.org/">hg.mozilla.org</a>. Before a team becomes official, we like to get the localizers comfortable with the Hg commands that allow for cloning, pulling, committing, and pushing work to an experimental repository. We use a web service called <a class="external" href="http://www.bitbucket.org/" rel="external" title="http://www.bitbucket.org/">Bit Bucket</a> to start the learning process.</p> - -<div class="note"><strong>Note</strong>: You must have Mercurial configured before you begin. That step is back on the initial setup page. If you haven't done that yet, don't worry, we'll wait for you!</div> - -<h3 class="note" id="Pushing_to_your_repository">Pushing to your repository</h3> - -<p>There are a couple of things you should take note of before you push to your repository:</p> - -<ul> - <li>Make sure that your files have been encoded in Unicode without BOM (byte order mark).</li> - <li>Remember that here you are pushing an entire directory, not a <code>.zip</code> archive file or an <code>.xpi</code> lang pack.</li> -</ul> - -<p>The instructions below will help you learn how to use your Hg repository.</p> - -<ol> - <li><span style="color: #daa520;">After your new repository is created by the l10n-drivers</span>, please visit the URL for your repo. We'll use x-testing here for our example. You can do this by entering the following URL into your browser: <code><a class="external" href="http://hg.mozilla.org/l10n-central/x-testing" rel="freelink">http://hg.mozilla.org/l10n-central/x-testing</a></code></li> - <li>Now, navigate to your locale's directory on your local machine.</li> -</ol> - -<p style="margin-left: 40px;">If you're using Koala, this should be located at <code>/path/to/your/koala.project/locale/3.6/x-testing</code>, otherwise, it should be located at <code>/path/to/your/working_dir/l10n_base/x-testing</code>.</p> - -<p style="margin-left: 40px;">In this directory, you should have an hg repository. You might have created it yourself by running <code>hg init</code> or <code>hg clone</code> or you might have had it created by Koala when you were setting up a new localization project. Also at this point, you shouldn't have any uncommitted changes (i.e., running the <code>hg status </code>command should show nothing). Let's see what the last revision in this repository is.</p> - -<ol start="3" style="list-style-type: decimal;"> - <li style="">Enter the following command: <code>$ hg log -l 1</code></li> -</ol> - -<p style="margin-left: 40px;">You should see an output similar to the one below:</p> - -<pre style="margin-left: 40px;">changeset: 0:7c543e8f3a6a -tag: tip -user: Your Name <email@example.com> -date: Mon Nov 23 18:08:25 2009 +0100 -summary: Added search bar strings -</pre> - -<ol start="4" style="list-style-type: decimal;"> - <li>Now compare the local repository on your machine with the remote Hg repository by entering this command: <code>$ hg outgoing <a class="external" href="http://hg.mozilla.org/l10n-central/x-testing" rel="freelink">http://hg.mozilla.org/l10n-central/x-testing</a></code></li> -</ol> - -<p style="margin-left: 40px;">The <code>hg outgoing</code> command compares the two repositories and lists all changesets that are present locally, but not in the remote repository. These changesets will need to be "pushed" to the remote repository. You can expect to see output like this:</p> - -<pre style="margin-left: 40px;">comparing with http://hg.mozilla.org/l10n-central/x-testing -searching for changes - -changeset: 0:7c543e8f3a6a -tag: tip -user: Your Name <email@example.com> -date: Mon Nov 23 18:08:25 2009 +0100 -summary: Added search bar strings -</pre> - -<ol start="5" style="list-style-type: decimal;"> - <li>Let's now push this changeset. Enter the following command:<code> hg push <a class="external" href="http://hg.mozilla.org/l10n-central/x-testing" rel="freelink">http://hg.mozilla.org/l10n-central/x-testing</a></code></li> - <li>Mercurial will connect to your repo and ask you to provide your account information (i.e., the username and the password).</li> -</ol> - -<pre style="margin-left: 40px;">real URL is http://hg.mozilla.org/l10n-central/x-testing -pushing to http://hg.mozilla.org/l10n-central/x-testing -searching for changes -http authorization required -realm: hg.mozilla.org HTTP -user: your_id -password: -</pre> - -<p style="margin-left: 40px;">After you enter your account information, the changeset will be pushed.</p> - -<pre style="margin-left: 40px;">adding changesets -adding manifests -adding file changes -added 1 changesets with 2 changes to 2 files -bb/acl: your_id is allowed. accepted payload. -quota: 979.7 KB in use, 150.0 MB available (0.64% used) -</pre> - -<p>Your changeset has been successfully pushed to your repository!</p> - -<p>As you begin to move through your translations, you should <code>commit</code> the changes locally and <code>push</code> your work to this experimental repository. For instance, if you have finished translating all the <code>.dtd</code> and <code>.properties</code> files in your <code>x-testing/browser/chrome/browser/</code> directory, then you should run these commands:</p> - -<pre style="">$ hg status -$ hg commit -m "Translated browser/chrome/browser/" -$ hg outgoing -$ hg push http://hg.mozilla.org/l10n-central/x-testing</pre> - -<p>Note that due to the distributed nature of Hg, <code>hg commit</code> saves the changes locally (i.e., in your computer's Hg repository). You can see the history of commits with <code>hg log</code>. After doing <code>hg commit</code>, you still need to send the changes to the remote repository. This is where <code>hg push</code> comes in. This sends your commits to the remote repository.</p> - -<p>Now you're ready to proceed to the release phase!</p> - -<p> </p> - -<p>{{ PreviousNext("Localization_Quick_Start_Guide/Translation_phase", "Localization_Quick_Start_Guide/Release_phase") }}</p> diff --git a/files/id/mozilla/localization/web_localizability/index.html b/files/id/mozilla/localization/web_localizability/index.html deleted file mode 100644 index e4ff426a11..0000000000 --- a/files/id/mozilla/localization/web_localizability/index.html +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Kemampulokalan Web -slug: Mozilla/Localization/Web_Localizability -tags: - - Internationalization - - Localizability - - Localization - - NeedsTranslation - - TopicStub - - Web Development -translation_of: Mozilla/Localization/Web_Localizability ---- -<p>Kemampulokalan (atau singkatnya <em>l12y</em>) adalah karakteristik yang terkandung dalam suatu aplikasi atau konten yang memungkinkan untuk dilakukan pelokalan. Daftar berikut ini berisi tautan ke halaman yang menjabarkan langkah-langkah untuk membuat konten web dapat dilokalkan. Dokumentasi dibagi menjadi 4 bagian:</p> - -<ol> - <li><a href="/en/Web_Localizability/Creating_localizable_web_content" title="en/Web Localizability/Creating localizable web content">How to create localizable content.</a></li> - <li><a href="/en/Web_Localizability/Localization_formats" title="en/Web Localizability/Localization formats">How to choose the right localization format.</a></li> - <li><a href="/en/Web_Localizability/Creating_localizable_web_applications" title="en/Web Localizability/Creating localizable web applications">How to create localizable web applications.</a></li> - <li><a href="/en/Web_Localizability/Setting_up_the_infrastructure" title="en/Web Localizability/Setting up the infrastructure">How to set up the infrastructure for localization.</a></li> -</ol> - -<h3 id="Why_localizability_is_important">Why localizability is important</h3> - -<p>There are many reasons why you should start thinking about making your web app localizable as soon as possible.</p> - -<ol> - <li>You will make localizer's life easier, for which they will be grateful.</li> - <li>You will have quality content, localized and adapted to the needs of the local market.</li> - <li>Extending you web app to support new languages will be easy.</li> - <li>The content will be easier to maintain and update.</li> - <li>You will end up writing more semanticly-correct code, which is good for your SEO.</li> - <li>By reviewing your content and code for l12y, you will find and fix bugs in your original language too.</li> -</ol> diff --git a/files/id/mozilla/mercurial/basics/index.html b/files/id/mozilla/mercurial/basics/index.html deleted file mode 100644 index e3b797d0f2..0000000000 --- a/files/id/mozilla/mercurial/basics/index.html +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: Dasar-dasar Mercurial -slug: Mozilla/Mercurial/Basics -translation_of: Mozilla/Mercurial/Basics ---- -<p>Saya ingin berbagi pengetahuan denganmu tentang <a href="/en/Mercurial" title="en/Mercurial">Mercurial</a> yang mungkin dapat melindungimu dari frustasi. Halaman ini memang sinis dan survival-oriented. Tetapi saya masih menganggap Mercurial sedikit lebih baik dari pada CVS. —<a href="/User:Jorend" title="User:Jorend">jorendorff</a> 16:06, 12 May 2008 (PDT)</p> - -<p> </p> - -<h3 id="Expectations" name="Expectations">Expectations</h3> - -<p><strong>Mercurial bukan CVS.</strong> Perintah-perintahnya tidak sama. The konsepnya tidak sama. <a href="/en/Mozilla/Mercurial/How_Is_Mercurial_different_from_CVS" title="en/Mozilla/Mercurial/How_Is_Mercurial_different_from_CVS">Bagaimana Mercurial berbeda dengan CVS?</a></p> - -<p><strong>Sepanan ini sudah terisi.</strong> Anda dapat menembak dirimu sendiri. Anda dapat kehilangan pekerjaan. Perkakasa sudah mencoba melindungi Anda , tetapi kecelakan tetap dapat terjadi. Ada dua kesalahan umum: (a) Anda menjalankan perintah tanpa mengetahui apa yang akan dilakukan oleh perintah tersebut; (b) Anda melakukan <code>hg commit</code>atau <code>hg qrefresh</code> dengan salah paham pada status direktori kerja Anda. Oleh karena itu tanpa sengaja Anda membuat commit pada perubahan yang sebenarnya tidak ingin Anda buat commit; atau tanpa sengaka Anda membuat commit sebuah merge yang rusak; dlsb. Seringkali kesalahan seperti ini tidak langsung ketahuan.</p> - -<p>Forewarned is forearmed. Don't do these things. Don't run commands without knowing what they're going to do—<code>hg help</code> is your friend. Don't commit without diffing and thinking. And don't let yourself get into "play mode" and stop paying attention to the fact that what you're playing with is your own uncommitted work.</p> - -<p><strong>Mercurial is not magic dust.</strong> Mercurial is flexible, powerful, and fun. It lets you attempt stuff you never would have tried in CVS. But of course not everything turns out to have been a good idea. (For example, we tried sharing patch queues. It sort of sucked.)</p> - -<h3 id="Avoiding_trouble" name="Avoiding_trouble">Avoiding trouble</h3> - -<p><strong>Use the latest stable release of Mercurial.</strong></p> - -<p><strong>Learn how to get your bearings.</strong> Use read-only commands (like <code>hg status</code>, <code>hg head</code>, <code>hg parents</code>, <code>hg log</code>, <code>hg diff</code>, <code>hg outgoing</code>) to check the status of your repository. This is a key skill.</p> - -<p><strong>Configure a <a class="external" href="https://www.mercurial-scm.org/wiki/MergeToolConfiguration">merge program</a> and make sure you know how to use it. DO IT NOW.</strong> Otherwise you will likely screw up your repository at some point.</p> - -<p>Mercurial doesn't leave conflict markers in your files; instead, it wants you to fix the conflicts <em>immediately</em>, using a merge program (like <code>kdiff3</code>) which it can launch for you.</p> - -<p>This can be error-prone. By default, Mercurial uses the first merge program it finds on your system, and merge programs can have a learning curve. Mercurial does not do a good job of detecting busted merges and refusing to proceed, so just by closing a window you can unwittingly put yourself in a bad state. Bad merges may lead to seemingly inexplicable Mercurial behavior in the future.</p> - -<p><strong>If a merge fails, make sure Mercurial knows that it has failed.</strong> When you're first learning the ropes, merges often go wrong. You might see this message:</p> - -<pre class="eval">0 files updated, 0 files merged, 0 files removed, 1 files unresolved -There are unresolved merges, you can redo the full merge using: - hg update -C 2 - hg merge 1 -</pre> - -<p>This means some conflicts weren't resolved during the merge. If you don't know exactly what they are and how to fix them, use that <code>hg update -C</code> command to tell Mercurial that you've given up on that merge.</p> - -<p>If you don't, Mercurial won't know, and the next time you commit, it'll make a merge changeset. This is bad. The result can look a lot like accidentally destroying a bunch of work, actually, but the damage can be undone.</p> - -<p>If <code>hg parents</code> shows two parents, you're merging.</p> - -<p><strong>If you use <a href="/en/Mercurial_Queues" title="Mercurial_Queues">Mercurial Queues</a>, back up your work.</strong> <code>hg qrefresh</code> destructively replaces the old patch with the new one! Use <code>hg qinit -c</code> to create a separate backup repository for your patches and <code>hg commit --mq -m backup</code> regularly.</p> - -<p><strong>Don't use Mercurial Queues in a repository that someone might pull from since applied (non-public) patches would also be pulled.</strong></p> - -<h3 id="Recovering" name="Recovering">Recovering</h3> - -<p>Oops! Mercurial cut off your arm!</p> - -<p><strong>Don't randomly try stuff to see if it'll magically fix it.</strong> Remember what you stand to lose, and <em>set down the chainsaw</em> while you still have one good arm.</p> - -<p><strong>Get help on IRC.</strong> Try <a class="link-irc" href="irc://irc.mozilla.org/hg">#hg</a> or <a class="link-irc" href="irc://irc.mozilla.org/developers">#developers</a> on Mozilla IRC or <a class="link-irc" href="irc://irc.freenode.net/mercurial">#mercurial on freenode</a>.</p> - -<p> </p> - -<p>{{ languages( { "es": "es/Lo_b\u00e1sico_de_Mercurial", "fr": "fr/Les_bases_de_Mercurial", "ja": "ja/Mercurial_basics" } ) }}</p> diff --git a/files/id/mozilla/mercurial/index.html b/files/id/mozilla/mercurial/index.html deleted file mode 100644 index 3e940e7690..0000000000 --- a/files/id/mozilla/mercurial/index.html +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Mercurial -slug: Mozilla/Mercurial -tags: - - Developing Mozilla - - Mercurial - - NeedsTranslation - - TopicStub -translation_of: Mozilla/Mercurial ---- -<p> </p> - -<div class="note"> -<p><a href="https://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/index.html">Please refer to Mercurial For Mozillians at ReadTheDocs</a> for current best-practices around Mercurial, including many helpful extra tools and guidelines that make using Mercurial fast and easy.</p> -</div> - -<p><a class="external" href="https://www.mercurial-scm.org/"><strong>Mercurial</strong></a> (also known as "hg"), is the <a class="external" href="https://en.wikipedia.org/wiki/Distributed_revision_control">distributed version control</a> software used for the development of Firefox, Thunderbird, and the shared Gecko core. It replaced <a href="/en-US/docs/Developer_Guide/Source_Code/CVS" title="en-US/docs/Developer_Guide/Source_Code/CVS">CVS</a> after Mozilla 1.9 was branched.</p> - -<p><strong><code>hg</code></strong> is the Mercurial command-line tool, Hg being the chemical symbol for the element mercury.</p> - -<h2 id="Learning_to_use_Mercurial" name="Learning_to_use_Mercurial">Installation, configuration, and getting the source</h2> - -<p>See <a href="/en-US/docs/Installing_Mercurial" title="/en-US/docs/Installing_Mercurial">Installing Mercurial</a> for installation and configuration tips.</p> - -<p>See <a href="/en-US/docs/Developer_Guide/Source_Code/Mercurial" title="en-US/docs/Developer_Guide/Source_Code/Mercurial">Getting Mozilla Source Code Using Mercurial</a> for getting a tree to build.</p> - -<h2 id="Learning_to_use_Mercurial" name="Learning_to_use_Mercurial">Learning to use Mercurial</h2> - -<p>If you are new to Mercurial, you should start with the <a href="https://www.mercurial-scm.org/guide">official guide</a>.</p> - -<p>Then, move on to <a href="/en-US/docs/Mercurial_basics" title="en-US/docs/Mercurial_basics">Mercurial basics</a> and <a href="/en-US/docs/Mercurial_FAQ" title="en-US/docs/Mercurial_FAQ">Mercurial FAQ</a> and the <a href="https://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/">version control tool docs</a> for Mozilla-centric Mercurial information.</p> - -<h2 id="Further_reading" name="Further_reading">Further reading</h2> - -<p>The <a href="https://developer.mozilla.org/en-US/docs/tag/Mercurial" title="https://developer.mozilla.org/en-US/docs/tag/Mercurial">Mercurial tag</a> lists the Mercurial-related articles on MDN.</p> - -<p>And on wiki.mozilla.org, these helpful pages:</p> - -<ul> - <li>{{ interwiki('wikimo', 'Using_Mercurial_locally_with_CVS', 'Using Mercurial locally with CVS') }}, a how-to. (Note that this is only useful for code that's still exclusively in CVS.)</li> - <li>{{ interwiki('wikimo', 'Mercurial_on_Windows', 'Mercurial on Windows') }}</li> - <li><a href="/en-US/docs/Creating_Mercurial_User_Repositories" title="en-US/docs/Creating_Mercurial_User_Repositories">Creating Mercurial User Repositories</a> - If you have a LDAP account that allows you to push to hg.mozilla.org you can also create your own user repositories on the server to share work.</li> -</ul> - -<p>{{ languages( { "es": "es/Mercurial", "fr": "fr/Mercurial", "ja": "ja/Mercurial" } ) }}</p> diff --git a/files/id/mozilla/persona/index.html b/files/id/mozilla/persona/index.html deleted file mode 100644 index 529d510e4d..0000000000 --- a/files/id/mozilla/persona/index.html +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: Persona -slug: Mozilla/Persona -translation_of: Archive/Mozilla/Persona ---- -<div class="callout-box"> -<p><strong>Tetap berhubungan atau dapatkan bantuan!</strong></p> - -<p>Ikuti <a class="external" href="http://identity.mozilla.com/" title="http://identity.mozilla.com/">blog kami</a>, bergabung dalam <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-identity" title="https://lists.mozilla.org/listinfo/dev-identity">milis kami</a>, atau cari kami dalam <a class="link-irc" href="irc://irc.mozilla.org/identity" title="irc://irc.mozilla.org/identity">#identity</a> di <a class="link-https" href="https://www.facebook.com/tb.k.makmur" title="https://wiki.mozilla.org/IRC"> IRC</a>.</p> -</div> - -<p><a class="link-https" href="https://www.mozilla.org/en-US/persona/" title="https://www.mozilla.org/en-US/persona/">Mozilla Persona</a> adalah Sistem otentikasi yang sepenuhnya aman dan desentralisasi untuk web berdasarkan pada protokol BrowserID. Untuk memastikan Persona berkerja dimana saja dan untuk siapa saja, Mozilla saat ini mengoperasikan serangkaian kecil <a href="/en-US/docs/Persona/Bootstrapping_Persona" title="Persona/Bootstrapping_Persona">optional, centralized services</a> yang terkait dengan Persona.</p> - -<p>Mengapa Anda seharusnya menggunakan Persona pada situs web anda?</p> - -<ol> - <li><strong>Persona <span class="short_text" id="result_box" lang="id"><span class="hps">sepenuhnya menghilangkan</span> <span class="hps">password situs</span><span class="atn">-</span><span>spesifik</span></span></strong>, membebaskan pengguna dan situs jejaring dari beban dalam menciptakan, mengatur, dan menyimpan kata sandi dengan aman.</li> - <li><strong>Persona mudah digunakan.</strong> Hanya dengan dua kali klik pengguna Persona dapat masuk kedalam sebuah situs baru seperti<a href="http://voo.st" title="http://voo.st"> Voost</a> atau <a href="http://crossword.thetimes.co.uk/" title="http://crossword.thetimes.co.uk/">The Times Crossword</a>, melewati kesulitan yang berhubungan dengan pembuatan akun.</li> - <li><strong>Persona mudah diimplementasikan</strong><strong>. </strong>Pengembang dapat menambah Persona kedalam sebuah situs hanya dalam semalam.</li> - <li>Yang terbaik dari semuanya, tidak adanya <strong>ketergantungan</strong>. Pengembang mendapat alamat-alamat surel yang telah diverifikasi dari semua pengguna mereka, dan pengguna situs dapat menggunakan surel apapun dengan Persona.</li> - <li><strong>Persona dibuat dengan protokol BrowserID. </strong>Sekali penyedia peramban populer menggunakan BrowserID, <b>mereka tidak perlu lagi ke Mozilla untuk log in.</b></li> -</ol> - -<p>Baca Memulai!</p> - -<div class="note"><strong>Note:</strong> Persona sedang dalam pengembangan. ikuti <a class="external" href="http://identity.mozilla.com/" title="http://identity.mozilla.com/">blog kami</a> untuk menemukan fitur-fitur baru, atau bergabunglah dengan <a class="link-https" href="https://lists.mozilla.org/listinfo/dev-identity" title="https://lists.mozilla.org/listinfo/dev-identity">milis kami</a> dan tawarkan umpan-balik anda!</div> - -<h2 id="Gunakan_Persona_untuk_laman_anda">Gunakan Persona untuk laman anda</h2> - -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h3 id="Memulai">Memulai</h3> - - <dl> - <dt><a href="/en-US/docs/Persona/Why_Persona" title="BrowserID/Why_BrowserID">Kenapa Persona?</a></dt> - <dd>Pelajari tentang alasan Persona untuk pendukung dalam laman anda, dan bandingkan dengan sistem identitas otentikasi lainnya.</dd> - <dt><a href="/en-US/docs/Persona/Quick_Setup" title="BrowserID/Quick setup">Pengaturan cepat</a></dt> - <dd>Pedoman cepat bagaimana cara untuk menambahkan Persona dalam laman/website anda.</dd> - </dl> - </td> - <td> - <h3 id="Persona_API">Persona API</h3> - - <dl> - <dt><a href="/en-US/docs/DOM/navigator.id" title="navigator.id">Referensi navigator.id API</a></dt> - <dd>Referensi untuk the <code>navigator.id</code> object, yang mana web developers dapat gunakan untuk memadukan Persona kedalam laman.</dd> - <dt><a href="/en-US/docs/Persona/Remote_Verification_API" title="BrowserID/Remote_Verification_API">Verifikasi API</a></dt> - <dd>Referensi untuk remote verification API hosted at <code>https://verifier.login.persona.org/verify</code>.</dd> - </dl> - </td> - </tr> - <tr> - <td> - <h3 id="Panduan">Panduan</h3> - - <dl> - <dt><a href="/en-US/docs/Persona/Security_Considerations" title="BrowserID/Security considerations">Perhatian Keamanan</a></dt> - <dd>Latihan dan Teknik untuk memastikan Persona anda aman.</dd> - <dt><a href="/en-US/docs/Persona/Browser_compatibility" title="/Browser_compatibility">Kococokan Peramban (Browser)</a></dt> - <dd>Pelajari dengan cermat peramban/browser mana yang mendukung Persona.</dd> - <dt><a href="/en-US/docs/Persona/Internationalization" title="/Internationalization">Internasionalisasi</a></dt> - <dd>Pelajari bagaimana Persona menangani Bahasa yang berbeda.</dd> - </dl> - </td> - <td> - <dl> - <dt><a class="link-https" href="https://github.com/mozilla/browserid/wiki/Persona-Libraries" title="https://github.com/mozilla/browserid/wiki/BrowserID-Libraries">Pustaka dan plugins</a></dt> - <dd>Temukan pustaka Drop-in untuk Bahasa pemrograman favorit, web framework, blog, atau sistem konten manajemen anda.</dd> - <dt><a class="link-https" href="https://github.com/mozilla/browserid-cookbook" title="https://github.com/mozilla/browserid-cookbook">Persona cookbook</a></dt> - <dd>Contoh kode sumber/source code untuk laman Persona. Termasuk snippets dalam C# (MVC3), PHP, Node.JS, dan lainnya.</dd> - <dt><a href="/en-US/docs/persona/branding" title="persona/branding">Branding resources</a></dt> - <dd>Tombol Sign in dan gambar lainnya untuk membantu menampilkan Persona kepada anda.</dd> - </dl> - </td> - </tr> - </tbody> -</table> - -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h2 id="Informasi_untuk_penyedia_layanan_identitas">Informasi untuk penyedia layanan identitas</h2> - - <p>Jika anda penyedia layanan surel atau layanan penyedia Identitas lainnya, Periksa tautan/link dibawah ini untuk mempelajari bagaimana menjadi penyedia layanan Identitas untuk Persona.</p> - - <dl> - <dt><a href="/en-US/docs/Persona/Identity_Provider_Overview" title="IdP">Ringkasan IdP</a></dt> - <dd>Gambaran Persona Identity Providers.</dd> - <dt><a href="/en-US/docs/Persona/Implementing_a_Persona_IdP" title="Guide to Implementing a Persona IdP">Implementasi IdP</a></dt> - <dd>Pedoman teknis terinci untuk menjadi idP (Penyedia layanan Identitas).</dd> - <dt><a href="/en-US/Persona/IdP_Development_tips" title="Developer tips">Tips Pengembangan</a></dt> - <dd>Kumpulan tips dan trik yang berguna saat mengembangkan penyedia identitas baru.</dd> - <dt><a href="/en-US/docs/Persona/.well-known-browserid" title="https://developer.mozilla.org/en-US/docs/Persona/.well-known-browserid">.well-known/browserid</a></dt> - <dd>Ringkasan setruktur dan tujuan dari <code>.well-known/browserid</code> file, yang mana IdPs gunakan untuk meyatakan dukungannya.</dd> - </dl> - </td> - <td> - <h2 id="Proyek_Persona">Proyek Persona</h2> - - <dl> - <dt><a href="/en-US/docs/Persona/Glossary" title="navigator.id">Istilah</a></dt> - <dd>Definisi istilah BrowserID and Persona.</dd> - <dt><a href="/en-US/docs/Persona/FAQ" title="BrowserID/FAQ">FAQ</a></dt> - <dd>Jawaban untuk pertanyaan umum.</dd> - <dt><a href="/en-US/docs/Persona/Protocol_Overview" title="BrowserID/Protocol overview">Ringkasan Protokol</a></dt> - <dd>Ringkasan teknik menengah yang mendasar dari BrowserID protocol.</dd> - <dt><a href="/en-US/docs/persona/Crypto" title="MDN">Keriptografi</a></dt> - <dd>lihat konsep kriptografi dibalik Persona dan BrowserID.</dd> - <dt><a class="link-https" href="https://github.com/mozilla/id-specs/blob/master/browserid/index.md" title="https://github.com/mozilla/id-specs/blob/master/browserid/index.md">Sepesifikasi</a></dt> - <dd>Detail teknis mendalam langsung sisini.</dd> - <dt><a href="/en-US/docs/Persona/Bootstrapping_Persona" title="Persona/Bootstrapping_Persona">Laman Persona</a></dt> - <dd>To get Persona going, we're hosting three services at <a class="link-https" href="https://login.persona.org" rel="freelink">https://login.persona.org</a>: a fallback Identity Provider, a portable implementation of the {{ domxref("navigator.id") }} APIs, and an identity assertion verification service.</dd> - <dt><a href="https://github.com/mozilla/browserid">Kode sumber Persona</a></dt> - <dd>The code behind the Persona website lives in a repository on GitHub. Patches welcome!</dd> - </dl> - </td> - </tr> - </tbody> -</table> - -<p> </p> - -<div id="__if72ru4ruh7fewui_once"> </div> diff --git a/files/id/mozilla/projects/index.html b/files/id/mozilla/projects/index.html deleted file mode 100644 index c1e43934a2..0000000000 --- a/files/id/mozilla/projects/index.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Projects -slug: Mozilla/Projects -tags: - - Mozilla - - NeedsContent - - NeedsTranslation - - Projects - - TopicStub -translation_of: Mozilla/Projects ---- -<p>{{ draft() }}</p> -<p>Below you'll find links to documentation about various Mozilla projects; these are often parts of Firefox or other products, but may also be used in other projects as well.</p> -<p>{{ LandingPageListSubpages() }}</p> diff --git a/files/id/mozilla/projects/nss/index.html b/files/id/mozilla/projects/nss/index.html deleted file mode 100644 index 3f7f3ed094..0000000000 --- a/files/id/mozilla/projects/nss/index.html +++ /dev/null @@ -1,180 +0,0 @@ ---- -title: Network Security Services -slug: Mozilla/Projects/NSS -translation_of: Mozilla/Projects/NSS ---- -<p><strong><font><font>Keamanan Jaringan Layanan</font></font></strong><font><font> </font><font>(NSS) </font><font>adalah satu set perpustakaan yang dirancang untuk mendukung pengembangan cross-platform dari klien dan server aplikasi keamanan-diaktifkan. </font><font>Aplikasi yang dibangun dengan NSS dapat mendukung SSL v2 dan v3, TLS, PKCS # 5, PKCS # 7, PKCS # 11, # 12 PKCS, S / MIME, sertifikat X.509 v3, dan standar keamanan lainnya.</font></font></p> - -<p><font><font>Untuk informasi rinci tentang standar yang didukung, lihat </font></font><a href="/en-US/docs/Overview_of_NSS" title="Overview_of_NSS"><font><font>Ikhtisar </font></font></a><font><font>NSS. </font><font>Untuk daftar pertanyaan yang sering diajukan, lihat </font><font>FAQ.</font></font></p> - -<p><font><font>NSS tersedia di bawah Mozilla Public License. </font><font>Untuk informasi tentang men-download NSS rilis sebagai file tar, melihat </font></font><a href="https://developer.mozilla.org/en-US/docs/NSS_Sources_Building_Testing"><font><font>Unduh PKI </font></font></a><font><font>Sumber.</font></font></p> - -<p><font><font>Jika Anda seorang pengembang dan ingin berkontribusi NSS, Anda mungkin ingin membaca dokumen </font></font><a href="/en-US/docs/An_overview_of_NSS_Internals" title="/ en-US / docs / An_overview_of_NSS_Internals"><font><font>ikhtisar highlevel rincian internal NSS</font></font></a><font><font> dan </font></font><a href="/en-US/docs/Getting_Started_With_NSS" title="/ en-US / docs / Getting_Started_With_NSS"><font><font>memulai dengan </font></font></a><font><font>NSS.</font></font></p> - -<table class="topicpage-table"> - <tbody> - <tr> - <td> - <h2 class="Documentation" id="Documentation" name="Documentation"><font><font>Dokumentasi</font></font></h2> - - <h3 id="Informasi_latar_belakang"><font><font>Informasi latar belakang</font></font></h3> - - <dl> - <dt><a href="/en-US/docs/Overview_of_NSS"><font><font>Ikhtisar NSS</font></font></a></dt> - <dd><font><font>Memberikan ringkasan singkat dari NSS dan kemampuannya.</font></font></dd> - <dt><a href="/en-US/docs/NSS_FAQ"><font><font>NSS FAQ</font></font></a></dt> - <dd><font><font>Menjawab pertanyaan dasar tentang NSS.</font></font></dd> - <dt><a href="/en-US/docs/Introduction_to_Public-Key_Cryptography"><font><font>Pengantar Kriptografi Public-Key</font></font></a></dt> - <dd><font><font>Menjelaskan konsep dasar kriptografi kunci publik yang mendasari NSS.</font></font></dd> - <dt><a href="/en-US/docs/Introduction_to_SSL"><font><font>Pengantar SSL</font></font></a></dt> - <dd><font><font>Memperkenalkan protokol SSL, termasuk informasi tentang cipher kriptografi didukung oleh SSL dan langkah-langkah yang terlibat dalam jabat tangan SSL.</font></font></dd> - </dl> - - <h3 id="Mulai"><font><font>Mulai</font></font></h3> - - <dl> - <dt><a href="/en-US/docs/NSS/NSS_Releases" title="NSS_releases"><font><font>NSS Pers</font></font></a></dt> - <dd><font><font>Halaman ini berisi informasi tentang rilis saat ini dan masa lalu dari NSS.</font></font></dd> - <dt><a href="/en-US/docs/NSS_Sources_Building_Testing"><font><font>Dapatkan kode sumber dan Membangun</font></font></a></dt> - <dd><font><font>Petunjuk tentang bagaimana membangun NSS pada platform yang didukung berbeda.</font></font></dd> - <dt><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/Mercurial"><font><font>Dapatkan Mozilla Source Code Menggunakan Mercurial</font></font></a></dt> - <dd><font><font>Informasi tentang dengan bekerja sama dengan Mercurial.</font></font></dd> - <dt><a href="/en-US/docs/Mozilla/Developer_guide/Source_Code/CVS"><font><font>Dapatkan Mozilla Source Code Menggunakan CVS (usang)</font></font></a></dt> - <dd><font><font>Old usang dokumentasi CVS.</font></font></dd> - </dl> - - <h3 id="NSS_API"><font><font>NSS API</font></font></h3> - - <dl> - <dt><a href="/en-US/docs/Introduction_to_Network_Security_Services"><font><font>Pengantar Keamanan Jaringan</font></font></a></dt> - <dd><font><font>Memberikan gambaran tentang perpustakaan NSS dan apa yang perlu Anda ketahui untuk menggunakannya.</font></font></dd> - <dt><a href="NSS/SSL_functions"><font><font>Fungsi NSS Umum</font></font></a></dt> - <dd><font><font>Merangkum diekspor oleh perpustakaan NSS bersama API.</font></font></dd> - <dt><a href="/en-US/docs/NSS_reference"><font><font>NSS Referensi</font></font></a></dt> - <dd><font><font>API yang digunakan untuk memanggil operasi SSL.</font></font></dd> - <dt><a href="NSS/NSS_API_GUIDELINES"><font><font>Pedoman API NSS</font></font></a></dt> - <dd><font><font>Menjelaskan bagaimana perpustakaan dan kode diatur, dan pedoman untuk mengembangkan kode (konvensi penamaan, penanganan error, benang pengaman, dll)</font></font></dd> - <dt><a href="NSS/nss_tech_notes"><font><font>NSS Catatan Teknis</font></font></a></dt> - <dd><font><font>Link ke NSS catatan teknis, yang menyediakan informasi terbaru tentang fitur NSS baru dan dokumentasi tambahan untuk topik-topik lanjutan dalam pemrograman dengan NSS.</font></font></dd> - </dl> - - <h3 id="Alat_pengujian_dan_rincian_teknis_lainnya"><font><font>Alat, pengujian, dan rincian teknis lainnya</font></font></h3> - - <dl> - <dt><a href="/en-US/docs/NSS_Sources_Building_Testing"><font><font>Membangun Petunjuk untuk NSS</font></font></a></dt> - <dd><font><font>Jelaskan bagaimana untuk memeriksa dan membangun NSS rilis.</font></font></dd> - </dl> - - <dl> - <dt><a href="/en-US/docs/Mozilla/Projects/NSS/NSS_Developer_Tutorial"><font><font>NSS Tutorial Pengembang</font></font></a></dt> - <dd><font><font>Bagaimana membuat perubahan di NSS. </font><font>Coding gaya, menjaga kompatibilitas ABI.</font></font></dd> - </dl> - - <dl> - <dt><a href="NSS/Tools"><font><font>NSS Alat</font></font></a></dt> - <dd><font><font>Alat untuk mengembangkan, debugging, dan mengelola aplikasi yang menggunakan NSS.</font></font></dd> - <dt><a href="NSS/NSS_Sample_Code"><font><font>Contoh Kode</font></font></a></dt> - <dd><font><font>Menunjukkan bagaimana NSS dapat digunakan untuk operasi kriptografi, penanganan sertifikat, SSL, dll</font></font></dd> - <dt><a href="http://www-archive.mozilla.org/projects/security/pki/nss/testnss_32.html"><font><font>NSS 3.2 Uji Suite</font></font></a></dt> - <dd><strong><font><font>Versi diarsipkan.</font></font></strong><font><font> Menjelaskan bagaimana menjalankan tes NSS standar.</font></font></dd> - <dt><a href="http://www-archive.mozilla.org/projects/security/pki/nss/performance_reports.html"><font><font>NSS Laporan Kinerja</font></font></a></dt> - <dd><strong><font><font>Versi diarsipkan.</font></font></strong><font><font> Link laporan kinerja untuk NSS 3.2 dan rilis berikutnya.</font></font></dd> - <dt><a href="http://www-archive.mozilla.org/projects/security/pki/nss/nss-3.11/nss-3.11-algorithms.html"><font><font>Enkripsi Teknologi Tersedia dalam NSS 3.11</font></font></a></dt> - <dd><strong><font><font>Versi diarsipkan.</font></font></strong><font><font> Mencantumkan algoritma kriptografi yang digunakan oleh NSS 3.11.</font></font></dd> - <dt><a href="http://www-archive.mozilla.org/projects/security/pki/nss/loadable_certs.html"><font><font>NSS 3.1 loadable Sertifikat Akar</font></font></a></dt> - <dd><strong><font><font>Versi diarsipkan.</font></font></strong><font><font> Menjelaskan skema untuk sertifikat CA memuat akar.</font></font></dd> - <dt><a href="http://www-archive.mozilla.org/projects/security/pki/nss/db_formats.html"><font><font>cert7.db</font></font></a></dt> - <dd><strong><font><font>Versi diarsipkan.</font></font></strong><font><font> Format Umum database cert7.db.</font></font></dd> - </dl> - - <h3 id="PKCS_11_informasi"><font><font>PKCS # 11 informasi</font></font></h3> - - <ul> - <li><a href="/en-US/docs/PKCS11" title="PKCS11"><font><font>Dokumentasi PKCS # 11 modul</font></font></a></li> - <li><a href="/en-US/docs/PKCS11_Implement"><font><font>Menerapkan PKCS # 11 untuk NSS</font></font></a></li> - <li><a href="/en-US/docs/PKCS11_Module_Specs" title="PKCS11_Module_Specs"><font><font>String NSS menggunakan untuk memuat PKCS # 11 modul</font></font></a></li> - <li><a href="/en-US/docs/PKCS11_FAQ"><font><font>PKCS # 11 FAQ</font></font></a></li> - <li><a href="/en-US/docs/PKCS11_Jar_Install"><font><font>Menggunakan Instalasi JAR Manager untuk Menginstal PKCS # 11 Modul kriptografi</font></font></a></li> - <li><a href="http://www-archive.mozilla.org/projects/security/pki/pkcs11/"><font><font>Versi Arsip - PKCS # 11 Kesesuaian Pengujian</font></font></a></li> - </ul> - - <dl> - </dl> - - <h3 id="CA_sertifikat_pre-loaded_ke_NSS"><font><font>CA sertifikat pre-loaded ke NSS</font></font></h3> - - <ul> - <li><a href="http://www.mozilla.org/projects/security/certs/policy/"><font><font>Kebijakan sertifikat Mozilla CA</font></font></a></li> - <li><a href="http://www.mozilla.org/projects/security/certs/included/"><font><font>Daftar sertifikat CA pre-loaded</font></font></a> - <ul> - <li><font><font>Konsumen dari daftar ini harus mempertimbangkan sedikit kepercayaan pengaturan untuk setiap sertifikat root disertakan. </font></font><a href="https://www.imperialviolet.org/2012/01/30/mozillaroots.html"><font><font>Informasi </font></font></a><font><font>Lebih, </font></font><a href="https://github.com/agl/extract-nss-root-certs"><font><font>Ekstrak akar dan kepercayaan bit mereka</font></font></a></li> - </ul> - </li> - </ul> - - <dl> - </dl> - - <h3 id="NSS_dibangun_di_atas_Netscape_Portabel_Runtime_(NSPR)"><font><font>NSS dibangun di atas Netscape Portabel Runtime (NSPR)</font></font></h3> - - <dl> - <dt><a href="NSPR"><font><font>Netscape Portabel Runtime</font></font></a></dt> - <dd><font><font>Halaman proyek NSPR.</font></font></dd> - <dt><a href="/en-US/docs/Mozilla/Projects/NSPR/Reference"><font><font>NSPR Referensi</font></font></a></dt> - <dd><font><font>NSPR dokumentasi API.</font></font></dd> - </dl> - - <h3 id="informasi_tambahan"><font><font>informasi tambahan</font></font></h3> - - <ul> - <li><a href="/en-US/docs/JavaScript_crypto" title="JavaScript_crypto"><font><font>Menggunakan objek window.crypto dari JavaScript</font></font></a></li> - <li><a href="/en-US/docs/HTTP_Delegation" title="HTTP_Delegation"><font><font>Delegasi HTTP download untuk OCSP</font></font></a></li> - <li><a href="/en-US/docs/TLS_Cipher_Suite_Discovery" title="TLS_Cipher_Suite_Discovery"><font><font>TLS Cipher Suite Penemuan</font></font></a></li> - <li><a href="/en-US/docs/NSS_Certificate_Download_Specification" title="NSS_Certificate_Download_Specification"><font><font>NSS Sertifikat Unduh Keterangan</font></font></a></li> - <li><a href="/en-US/docs/NSS/FIPS_Mode_-_an_explanation" title="FIPS Mode - penjelasan"><font><font>FIPS Mode - penjelasan</font></font></a></li> - <li><a href="/en-US/docs/NSS_Key_Log_Format" title="NSS Key Log Format"><font><font>Format file log kunci</font></font></a></li> - <li><font><font>Lihat </font></font><a href="/en-US/docs/tag/NSS" title="/ en-US / docs / tag / NSS"><font><font>semua artikel NSS-terkait pada MDN</font></font></a></li> - </ul> - - <h3 id="Pengujian"><font><font>Pengujian</font></font></h3> - - <ul> - <li><a href="/en-US/docs/Testing_third-party_PKCS#11_modules.2Ftokens_with_NSS" title="Testing_third-party_PKCS # 11_modules.2Ftokens_with_NSS"><font><font>Pengujian pihak ketiga PKCS # 11 modul / token dengan NSS</font></font></a></li> - </ul> - - <h3 id="Perencanaan"><font><font>Perencanaan</font></font></h3> - - <p><font><font>Informasi tentang perencanaan NSS dapat ditemukan di </font></font><a class="external" href="http://wiki.mozilla.org/NSS"><font><font>wiki.mozilla.org, termasuk:</font></font></a></p> - - <ul> - <li><a class="external" href="http://wiki.mozilla.org/FIPS_Validation"><font><font>FIPS Validasi</font></font></a></li> - <li><a class="external" href="http://wiki.mozilla.org/NSS:Roadmap"><font><font>Halaman NSS Roadmap</font></font></a></li> - <li><a href="https://fedoraproject.org/wiki/User:Mitr/NSS:DeveloperFriendliness" title="https://fedoraproject.org/wiki/User:Mitr/NSS:DeveloperFriendliness"><font><font>NSS Proyek Perbaikan</font></font></a></li> - </ul> - </td> - <td> - <h2 class="Community" id="Community" name="Community"><font><font>Masyarakat</font></font></h2> - - <ul> - <li><font><font>Lihat forum Mozilla Keamanan ...</font></font></li> - </ul> - - <p><font><font>{{DiscussionList ("dev-keamanan", "mozilla.dev.security")}}</font></font></p> - - <ul> - <li><font><font>Lihat forum Mozilla Kriptografi ...</font></font></li> - </ul> - - <p><font><font>{{DiscussionList ("dev-tech-kripto", "mozilla.dev.tech.crypto")}}</font></font></p> - - <h2 class="Related_Topics" id="Related_Topics" name="Related_Topics"><font><font>Topik-topik terkait</font></font></h2> - - <ul> - <li><a href="/en-US/docs/Security" title="Keamanan"><font><font>Keamanan</font></font></a></li> - </ul> - </td> - </tr> - </tbody> -</table> - -<p> </p> diff --git a/files/id/mozilla/projects/rhino/index.html b/files/id/mozilla/projects/rhino/index.html deleted file mode 100644 index 8396dc5c22..0000000000 --- a/files/id/mozilla/projects/rhino/index.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Rhino -slug: Mozilla/Projects/Rhino -tags: - - JavaScript - - Mozilla - - NeedsUpdate - - Rhino -translation_of: Mozilla/Projects/Rhino ---- -<p><img alt="Image:rhino.jpg" class="internal" src="/@api/deki/files/832/=Rhino.jpg"></p> - -<p><span class="seoSummary"><strong>Rhino</strong> adalah implementasi sumber-terbuka dari <a href="/en/JavaScript" title="en/JavaScript">JavaScript</a> yang ditulis keseluruhannya dalam bahasa pemrograman Java. Ini biasanya disisipkan di aplikasi Java untuk memberikan fasilitas scripting pada pengguna. Rhino telah disisipkan di J2SE 6 sebagai mesin scripting utama.</span></p> - -<h4 id="Rhino_downloads" name="Rhino_downloads">Unduh Rhino</h4> - -<p>Bagaimana <a class="internal" href="/en/RhinoDownload" title="en/RhinoDownload">mendapatkan sumber dan binari</a>. </p> - -<h4 id="Rhino_documentation" name="Rhino_documentation">Dokumentasi Rhino</h4> - -<p><a href="/en/Rhino_documentation" title="en/Rhino_documentation">Informasi tentang Rhino</a> bagi penulis script dan yang menyisipkannya.</p> - -<h4 id="Rhino_help" name="Rhino_help">Bantuan Rhino</h4> - -<p><a href="/en/Rhino/Community" title="en/Rhino/Community">Beberapa sumber</a> jika anda mengalami kebuntuan.</p> diff --git a/files/id/sandbox/index.html b/files/id/sandbox/index.html deleted file mode 100644 index 7d1668aea0..0000000000 --- a/files/id/sandbox/index.html +++ /dev/null @@ -1,201 +0,0 @@ ---- -title: Sandbox -slug: Sandbox -translation_of: Sandbox ---- -<h2 id="Sandbox" name="Sandbox">This is a page</h2> - -<div id="file"> -<pre class="brush: html">Sample HTML Content -</pre> -</div> - -<p>{{EmbedLiveSample('file')}}</p> - -<h2 id="asdfghjk" name="asdfghjk">coucou les amis</h2> - -<h3 id="HTML">HTML</h3> - -<pre class="brush: html">Sample HTML Content</pre> - -<h3 id="CSS_Content">CSS Content</h3> - -<pre class="brush: css">Sample CSS Content</pre> - -<h3 id="JavaScript_Content">JavaScript Content</h3> - -<pre class="brush: js">Sample JavaScript Content</pre> - -<h3 id="Result">Result</h3> - -<p>{{ EmbedLiveSample('asdfghjk') }}</p> - - - -<pre><font><font><html> -</font></font></html></pre> - - - - - -<h3 id="CSS_Content_2"><font><font>CSS Content</font></font></h3> - -<pre class="brush: css"><font><font>@ Compteur de style fisheye {</font></font><font><font> - système: cyclique;</font></font><font><font> - symboles: ◉; -</font></font></pre> - -<blockquote> -<p><br> - <h1>CSS font-family</h1><br> - <p class="serif">This is a paragraph, shown in the Times New Roman font.</p><br> - <p class="sansserif">This is a paragraph, shown in the Arial font.</p></p> -</blockquote> - -<pre class="brush: css"><font><font> -}</font></font> -<font><font> -.liste {</font></font><font><font> - list-style: fisheye, cercle;</font></font><font><font> -}</font></font></pre> - -<h2 id="Linux_is_life" name="Linux is life">Hello World</h2> - -<h3 id="HTML_2">HTML</h3> - -<pre class="brush: html"><p>Hello World</p></pre> - -<p><font><font>{{EmbedLiveSample ( 'Linux is life')}}</font></font></p> - -<p><font><font><img alt="Linux logo" src="https://greenwichmeantime.com/static/app/world_clock/icon/world.svg" style="height: 338px; width: 450px;"></font></font></p> - -<p><img alt="logo couleur MDN (bleu)" src="https://mdn.mozillademos.org/files/12728/mdn_logo-only_color.png" style="height: 200px; width: 200px;"></p> - - - -<p><span class="seoSummary"><font><font>Des trucs</font></font></span></p> - -<div class="note"> -<p><font><font>Une note </font></font></p> - -<div class="warning"> -<p><font><font>Un avertissement dans une note</font></font></p> - -<div class="note"> -<p><font><font>Une note dans un avertissement dans une note</font></font></p> - -<div class="warning"> - - -<div class="note"> - - -<div class="warning"> - - -<div class="note"> - - -<div class="warning"> - - -<div class="note"> - -</div> -</div> -</div> -</div> -</div> -</div> -</div> -</div> -</div> - - - -<div class="note"> -<p><font><font>une autre note</font></font></p> - -<div class="note"> -<p><font><font>Une note dans une note</font></font></p> -</div> - -<p>This is an example of how to use the MDN!</p> -</div> - - - -<p><math><semantics><mrow><mi><font><font>π</font></font></mi><mo><font><font>×</font></font></mo><mn><font><font>1</font></font></mn><mo><font><font>=</font></font></mo><mn><font><font>1</font></font></mn><mo><font><font>×</font></font></mo><mi><font><font>π</font></font></mi><mo><font><font>=</font></font></mo><mn><font><font>2</font></font></mn><mi><font><font>π</font></font></mi><mo><font><font>÷</font></font></mo><mi><font><font>π</font></font></mi><mo><font><font>=</font></font></mo><mi><font><font>π</font></font></mi></mrow><annotation encoding="TeX"><font><font>\ Pi \ times 1 = 1 \ times \ pi = 2 \ pi \ div \ pi = \ pi</font></font></annotation></semantics></math></p> - -<p><math><semantics><mrow><mi><font><font>π</font></font></mi><mfrac><mi><font><font>π</font></font></mi><mi><font><font>π</font></font></mi></mfrac><mfrac><mfrac><mi><font><font>π</font></font></mi><mi><font><font>π</font></font></mi></mfrac><mi><font><font>π</font></font></mi></mfrac></mrow><annotation encoding="TeX"><font><font>\ Pi \ frac {\ pi} {\ pi} \ frac {\ frac {\ pi} {\ pi}} {\ pi}</font></font></annotation></semantics></math></p> - -<p><math><semantics><mrow><mi><font><font>π</font></font></mi><mfrac><mi><font><font>π</font></font></mi><mi><font><font>π</font></font></mi></mfrac><mfrac><mfrac><mi><font><font>π</font></font></mi><mi><font><font>π</font></font></mi></mfrac><mi><font><font>π</font></font></mi></mfrac></mrow><annotation encoding="TeX"><font><font>\ Pi \ frac {\ pi} {\ pi} \ frac {\ frac {\ pi} {\ pi}} {\ pi}</font></font></annotation></semantics></math></p> - -<p><math><semantics><mrow><mo><font><font>∫</font></font></mo><mo lspace="0em" rspace="0em"><font><font>lim</font></font></mo><mi><font><font>je</font></font></mi><mi><font><font>t</font></font></mi><msubsup><mi><font><font>s</font></font></mi><mn><font><font>1</font></font></mn><mn><font><font>3</font></font></mn></msubsup><mfrac><mrow><msup><mi><font><font>e</font></font></mi><mn><font><font>3</font></font></mn></msup><mo><font><font>/</font></font></mo><mi><font><font>X</font></font></mi></mrow><msup><mi><font><font>X</font></font></mi><mn><font><font>2</font></font></mn></msup></mfrac><mspace width="thinmathspace"></mspace><mi><font><font>ré</font></font></mi><mi><font><font>X</font></font></mi></mrow><annotation encoding="TeX"><font><font>\ Int \ limits_ {1} ^ {3} \ frac {e ^ 3 / x} {x ^ 2} \, dx</font></font></annotation></semantics></math></p> - -<p><math><semantics><mrow><mo><font><font>∫</font></font></mo><mo lspace="0em" rspace="0em">ln(x) dx = x[ln(x) - 1]</mo></mrow><annotation encoding="TeX"><font><font>l\ Int \ limits_ {1} ^ {3} \ frac {e ^ 3 / x} {x ^ 2} \, d+x</font></font></annotation></semantics></math></p> - -<p><math><semantics><mtext><font><font>abcdefghijklmnopqrstuvwxyz</font></font></mtext><annotation encoding="TeX"><font><font>\alphabet</font></font></annotation></semantics></math></p> - -<p><math><semantics><mrow><mi><font><font>π</font></font></mi><mtext><font><font>est un nombre irrationnel, et cela est le rapport entre la circonférence d'un cercle à son diamètre. </font><font>Il est communément approchée comme 3,14159.</font></font></mtext></mrow><annotation encoding="TeX"><font><font>\ pifacts {3}</font></font></annotation></semantics></math></p> - -<p><font><font>contenu</font></font></p> - - - -<h2 id="Test_live_sample" name="Test live sample">Test live sample</h2> - -<h3 id="HTML_Content">HTML Content</h3> - -<pre class="brush: html"><p>Hello World</p></pre> - -<h3 id="Result_2">Result</h3> - -<p>{{ EmbedLiveSample('Test live sample') }}</p> - -<h2 id="sect1"></h2> - -<h2 id="Focus_on_a_text_field" name="Focus_on_a_text_field">Focus on a text field</h2> - -<h3 id="HTML_Content_2">HTML Content</h3> - -<pre class="brush: html"><input type="text" id="myTextField" value="Text field."> -<p></p> -<button type="button" onclick="focusMethod()">Click me to focus on the text field!</button> </pre> - -<h3 id="CSS_Content_3">CSS Content</h3> - -<pre class="brush: css">Sample CSS Content</pre> - -<h3 id="JavaScript_Content_2">JavaScript Content</h3> - -<pre class="brush: js">focusMethod = function getFocus() { - document.getElementById("myTextField").focus(); -} </pre> - -<h3 id="Result_3">Result</h3> - -<p>{{ EmbedLiveSample('Focus_on_a_text_field') }}</p> - -<h2 id="Focus_on_a_button" name="Focus_on_a_button">Focus on a button</h2> - -<h3 id="HTML_Content_3">HTML Content</h3> - -<pre class="brush: html"><button type="button" id="myButton">Click Me!</button> -<p></p> -<button type="button" onclick="focusMethod()">Click me to focus on the button!</button> </pre> - -<h3 id="CSS_Content_4">CSS Content</h3> - -<pre class="brush: css">Sample CSS Content</pre> - -<h3 id="JavaScript_Content_3">JavaScript Content</h3> - -<pre class="brush: js">focusMethod = function getFocus() { - document.getElementById("myButton").focus(); -} </pre> - -<h3 id="Result_4">Result</h3> - -<p>{{ EmbedLiveSample('Focus_on_a_button') }}</p> diff --git a/files/id/tools/webide/index.html b/files/id/tools/webide/index.html deleted file mode 100644 index 3cf3b7bf2b..0000000000 --- a/files/id/tools/webide/index.html +++ /dev/null @@ -1,458 +0,0 @@ ---- -title: WebIDE -slug: Tools/WebIDE -translation_of: Archive/WebIDE ---- -<div>{{ToolsSidebar}}</div><div class="geckoVersionNote"> -<p>WebIDE is available from Firefox 34 onwards.</p> -</div> - -<div class="summary"> -<p>WebIDE is the replacement for the <a href="/en-US/Firefox_OS/Using_the_App_Manager">App Manager</a>. Like the App Manager, it enables you to run and debug <a href="/en-US/Firefox_OS">Firefox OS</a> apps using the <a href="/en-US/docs/Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> or a real Firefox OS device.</p> - -<p>However, it also provides an editing environment for you to create and develop Firefox OS apps, including a tree view of all the files in your app with the ability to edit and save them, and two app templates to help you get started.</p> - -<p>Finally, WebIDE enables you to connect the <a href="/en-US/docs/Tools">Firefox Developer Tools</a> to a number of other browsers, including Firefox for Android, Chrome on Android, and Safari on iOS. See the <a href="/en-US/docs/Tools/Remote_Debugging">Remote Debugging</a> page for instructions on how to connect to a specific browser.</p> -</div> - -<p>With WebIDE, you first <a href="/en-US/docs/Tools/WebIDE#Setting_up_runtimes">set up one or more runtimes</a>. A runtime is an environment in which you'll run and debug the app. A runtime could be a Firefox OS device connected to the desktop over USB, or it could be a Firefox OS Simulator installed on the desktop itself.</p> - -<p>Next, you <a href="/en-US/docs/Tools/WebIDE#Creating_and_opening_apps">create an app, or open an existing app</a>. If you're creating a new app you start with a template that includes the directory structure and the minimum boilerplate you need to get started, or a more complete template that shows how to use a privileged API. WebIDE shows your app's files in a tree, and you can edit and save them using a built-in source editor. Of course, you don't have to use the built-in editor: you can develop your app entirely outside WebIDE, and only use it for debugging.</p> - -<p>Finally, you can <a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE#Running_and_debugging_apps">install the app in one of the runtimes and run it</a>. You can then open the usual suite of developer tools - the <a href="/en-US/docs/Tools/Page_Inspector">Inspector</a>, <a href="/en-US/docs/Tools/Web_Console">Console</a>, <a href="/en-US/docs/Tools/Debugger">JavaScript Debugger</a> and so on - to examine and modify the running app.</p> - -<h2 id="System_requirements">System requirements</h2> - -<p>To develop and debug apps using WebIDE, all you need is Firefox version 33 or later. To test on a real Firefox OS device, you need a device running Firefox OS 1.2 or later, and a USB cable.</p> - -<p>You can only use WebIDE for Firefox OS if you're targeting Firefox OS 1.2 or later.</p> - -<h2 id="Opening_WebIDE">Opening WebIDE</h2> - -<p>There are three ways to open WebIDE:</p> - -<ul> - <li>In the Web Developer menu, click on the "WebIDE" entry and WebIDE opens.</li> - <li>Use the keybinding Shift-F8.</li> - <li>A dedicated icon in the Firefox toolbar. This is always present if you're using <a href="/en-US/Firefox/Developer_Edition">Firefox Developer Edition</a>, and with any Firefox from version 36 onwards it appears after you've opened the WebIDE once:</li> -</ul> - -<p><img alt="" src="https://mdn.mozillademos.org/files/9437/webide-icon.png" style="display: block; margin-left: auto; margin-right: auto; width: 897px;"></p> - -<p>Here's what the WebIDE looks like:<img alt="" src="https://mdn.mozillademos.org/files/8033/webide-initial.png" style="display: block; height: 560px; margin-left: auto; margin-right: auto; width: 720px;">The dropdown on the left labeled "Open App" lets you open existing apps or create new ones. The dropdown on the right labeled "Select Runtime" lets you select a runtime or set up a new runtime.</p> - -<p>The buttons in the middle run, stop, and debug the app: they are only enabled when you have opened an app and selected a runtime.</p> - -<p>From Firefox 36, you can change the font size throughout WebIDE using the standard keyboard shortcuts (use <code>Command</code> instead of <code>Control</code> on OS X):</p> - -<ul> - <li><code>Ctrl +</code> increases font size</li> - <li><code>Ctrl -</code> decreases font size</li> - <li><code>Ctrl 0</code> resets the font size to the default</li> -</ul> - -<h2 id="Setting_up_runtimes">Setting up runtimes</h2> - -<p>Under the "Select Runtime" dropdown, runtimes are grouped into three types:</p> - -<ul> - <li><a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE#Connecting_a_Firefox_OS_device">USB devices</a>: Firefox OS devices connected over USB. From Firefox 36 this also gets you connected to <a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE">Firefox for Android over USB</a>.</li> - <li><a href="/en-US/docs/Tools/WebIDE#Adding_a_Simulator">Simulators</a>: instances of the Firefox OS Simulator that you've installed</li> - <li><a href="/en-US/docs/Tools/WebIDE#Custom_runtimes">Custom</a>: use this to connect a runtime to WebIDE using an arbitrary name and port. From Firefox 36, this runtime type is renamed "Other". If you have the <a href="/en-US/docs/Tools/Valence">Valence</a> add-on installed, this section will also list the <a href="/en-US/docs/Tools/WebIDE#Valence-enabled_runtimes">additional runtimes it enables</a>.</li> -</ul> - -<p>The first time you click the dropdown, you might not see any runtimes here:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8043/webide-no-runtimes.png" style="display: block; height: 564px; margin-left: auto; margin-right: auto; width: 723px;">The rest of this section describes how you can add some runtimes.</p> - -<h3 id="Connecting_a_Firefox_OS_device">Connecting a Firefox OS device</h3> - -<p>Before you can connect a Firefox OS device, there's some setup you have to go through:</p> - -<ul> - <li><strong>check your Firefox OS version: </strong>make sure your device is running Firefox OS 1.2/Boot2Gecko 1.2 or higher. To check the version, go to the Settings app on the device, then <code>Device Information > Software</code>. If you don't have a high enough version, find your device in the <a href="/en-US/Firefox_OS/Developer_phone_guide">developer phone guide</a> and follow the instructions for upgrading.</li> - <li><strong>enable remote debugging: </strong>in the Settings app on the device, go to <code>Device information > More information > Developer</code>. - <ul> - </ul> - - <ul> - <li>Firefox OS 1.3 and earlier: "Remote Debugging" is just a simple checkbox. Check it.</li> - <li>Firefox OS 1.4 and later: "Remote Debugging" asks you to enable for just ADB, or for ADB and DevTools. Select "ADB and DevTools".</li> - </ul> - </li> - <li><strong>disable Screen lock on your device:</strong> in the Settings app on the device, go to <code>Screen Lock</code> and unchecking the <code>Lock Screen</code> checkbox. This is a good idea because when the screen gets locked, the phone connection gets lost, meaning it is no longer available for debugging.</li> - <li><strong>if you want unrestricted debugging privileges, including certified apps, built-in apps, and apps already installed on a real device</strong>: see the section on <a href="/en-US/docs/Tools/WebIDE#Unrestricted_app_debugging_%28including_certified_apps.2C_main_process.2C_etc.%29">Unrestricted app debugging (including certified apps, main process, etc.)</a>.</li> -</ul> - -<div class="note"> -<p><strong>Linux only:</strong></p> - -<ul> - <li>add a <code>udev</code> rules file, as documented in step 3 of this guide to <a href="http://developer.android.com/tools/device.html#setting-up">setting up an Android device</a>. The <code>idVendor</code> attribute to use for the Geeksphone is "05c6", and <a href="http://developer.android.com/tools/device.html#VendorIds">this page</a> lists other <code>idVendor</code> values.</li> -</ul> -</div> - -<div class="note"> -<p><strong>Windows only:</strong></p> - -<ul> - <li>you need to install drivers, as documented in step 3 of this guide to <a href="http://developer.android.com/tools/device.html#setting-up">setting up an Android device</a>. You can find drivers for Geeksphone devices on the <a href="http://downloads.geeksphone.com/">Geeksphone web site</a>. Windows 8 by default will not let you install unsigned drivers. See this tutorial on <a class="external external-icon" 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>.</li> - <li>if WebIDE can't see your device after following all the steps, you may have to <a class="external external-icon" href="http://blog.fh-kaernten.at/wehr/?p=1182">edit adb_usb.ini</a>.</li> -</ul> -</div> - -<p>If there are any other Android devices connected to your computer, disconnect them. Now connect the device to the computer using USB. You should see the device appear under "USB DEVICES":</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8045/webide-select-runtime-keon.png" style="display: block; height: 562px; margin-left: auto; margin-right: auto; width: 710px;"></p> - -<p>If you don't see your device, see the <a href="/en-US/docs/Tools/WebIDE/Troubleshooting">Troubleshooting</a> page.</p> - -<h3 id="Connecting_to_Firefox_for_Android">Connecting to Firefox for Android</h3> - -<p>From Firefox 36 onwards Android devices connected over USB and running Firefox for Android appear as a runtime under "USB devices". See the article on <a href="/en-US/docs/Tools/Remote_Debugging/Debugging_Firefox_for_Android_with_WebIDE">connecting to Firefox for Android from WebIDE</a>.</p> - -<p>Before Firefox 36, you can <a href="/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android">connect to Firefox for Android without using WebIDE at all</a>, or can use WebIDE by setting up a <a href="/en-US/docs/Tools/WebIDE#Remote_runtime">custom remote runtime</a>.</p> - -<h3 id="Adding_a_Simulator">Adding a Simulator</h3> - -<p><span style="line-height: 1.5;">The <a href="/en-US/docs/Tools/Firefox_OS_Simulator">Firefox OS Simulator</a> is <span style="line-height: 1.5;">a version of the higher layers of Firefox OS</span> that simulates a Firefox OS device, but runs on the desktop</span><span style="line-height: 1.5;">. </span><span style="line-height: 1.5;">It runs in a window the same size as a Firefox OS device, includes the Firefox OS user interface and built-in apps, and simulates many of the Firefox OS device APIs.</span></p> - -<p><span style="line-height: 1.5;">This means that in many cases, you don't need a real device to test and debug your app. </span></p> - -<p>The Simulator is big, so it doesn't ship inside Firefox but as a Firefox <a href="/en-US/Add-ons">add-on</a>. If you click "Install Simulator" in the Runtimes dropdown menu, you will go to a page from which you can install Simulators for various versions of Firefox OS.</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8039/webide-install-simulator.png" style="display: block; height: 560px; margin-left: auto; margin-right: auto; width: 720px;">You can install as many as you like. Be patient, though: the Simulator is large and may take a few minutes to download. Once you've installed some Simulators you can close this "Extra Components" window, and the Simulators you've installed appear as options in the Runtimes dropdown menu:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8047/webide-select-runtime-keon-simulator.png" style="display: block; height: 559px; margin-left: auto; margin-right: auto; width: 712px;">To learn more about the Simulator, see its <a href="/en-US/docs/Tools/Firefox_OS_Simulator">documentation page</a>.</p> - -<h3 id="Custom_runtimes">Custom runtimes</h3> - -<h4 id="Remote_runtime">Remote runtime</h4> - -<p>With a custom remote runtime you can use an arbitrary hostname and port to connect to the remote device.</p> - -<p>Under the hood, Firefox OS devices and Android devices connect to the desktop using a program called the Android Debug Bridge, or <a href="http://developer.android.com/tools/help/adb.html">ADB</a>. By default, WebIDE uses an add-on called the ADB Helper: this simplifies the process for you by installing ADB and setting up port forwarding so the Firefox desktop tools can exchange messages with the device.</p> - -<p>This is convenient in most cases, but sometimes you might want to use ADB outside of WebIDE: for example, you might be running ADB directly from the command line. In that case you'll connect to the device by specifying a host and port using the <a href="http://developer.android.com/tools/help/adb.html#forwardports"><code>adb forward</code></a> command (example: <code>adb forward tcp:6000 localfilesystem:/data/local/debugger-socket</code>).<br> - <br> - If you then want to use WebIDE to connect as well, you should <a href="https://support.mozilla.org/en-US/kb/disable-or-remove-add-ons#w_how-to-disable-extensions-and-themes">disable the ADB Helper add-on</a> and connect WebIDE using the Custom runtime option, entering the host and port that you passed to <code>adb forward</code> (example: <code>localhost:6000</code>).</p> - -<p>Also, before Firefox 36, the ADB Helper does not yet support connecting to Firefox for Android, so if you want to connect WebIDE to Firefox for Android, you'll need to set up your own port forwarding and use a custom runtime. <a href="/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android">See more about connecting to Firefox for Android using ADB prior to Firefox 36</a>.</p> - -<h4 id="Valence-enabled_runtimes">Valence-enabled runtimes</h4> - -<p>If you have the <a href="/en-US/docs/Tools/Valence">Valence</a> add-on installed, you'll see three additional runtimes:</p> - -<ul> - <li>Chrome on Android</li> - <li>Safari on iOS</li> - <li>Chrome Desktop</li> -</ul> - -<p>For instructions on how to connect to these runtimes, see the relevant entry in the <a href="/en-US/docs/Tools/Remote_Debugging">Remote Debugging</a> page.</p> - -<h2 id="Selecting_a_runtime">Selecting a runtime</h2> - -<p>Once you've set up a runtime you can select it using the "Select Runtime" menu.</p> - -<ul> - <li>If you select a Simulator, WebIDE launches the Simulator.</li> - <li>If you select a Firefox OS device WebIDE connects to the device. On the device a dialog will ask you to confirm that you wish to connect: press "OK".</li> -</ul> - -<p>Now the "play" button in the center of the WebIDE toolbar is enabled: click it to install and run the app in the selected runtime.</p> - -<h3 id="Runtime_menu_items">Runtime menu items</h3> - -<p>When a runtime is selected, the Runtimes dropdown menu has up to five extra items:</p> - -<dl> - <dt><strong>Runtime Info</strong></dt> - <dd>Information on the current runtime</dd> - <dt><strong>Permissions Table</strong></dt> - <dd>A table summarising <a href="/en-US/Apps/Build/App_permissions">app permissions</a> for the current runtime, indicating, for each API and each <a href="/en-US/Marketplace/Options/Packaged_apps#Types_of_packaged_apps">app type</a>, whether access is allowed (✓), denied (✗), or whether the user is prompted (!)</dd> -</dl> - -<dl> - <dt><strong>Device Preferences</strong></dt> - <dd>A table listing, and letting you edit, the preferences that are made available in the runtime via the <a href="/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIPrefService">Preferences service</a>. These are platform-level configuration values exposing the same set of data as Firefox's about:config (but for the device). Because these preferences are highly security-sensitive, you need to disable the <a href="/en-US/docs/Tools/WebIDE#Unrestricted_app_debugging_%28including_certified_apps.2C_main_process.2C_etc.%29">DevTools restricted privileges setting</a> before you can modify them.</dd> - <dt><strong>Device Settings</strong> (new in Firefox 38/Firefox OS 3)</dt> - <dd>A table listing, and letting you edit, the settings that can be controlled in the Firefox OS Settings app. Most things on the device which have a UI control to change (volume, alarm, etc.) are found in Device Settings. Because these settings are less sensitive than the device preferences, you can modify them without removing the restricted privileges setting. However, since this feature is new in Gecko 38 you need the WebIDE in Firefox 38 and a nightly build of Firefox OS or the Simulator.</dd> - <dt><strong>Screenshot</strong></dt> - <dd>A command to take a screenshot from the runtime.</dd> -</dl> - -<p><img alt="" src="https://mdn.mozillademos.org/files/10185/webide-runtimes.png" style="display: block; height: 601px; margin-left: auto; margin-right: auto; width: 833px;"></p> - -<p> </p> - -<h2 id="Creating_and_opening_apps">Creating and opening apps</h2> - -<p>Under the "Open App" menu you get three options: create a new app, open a packaged app, and open a hosted app:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8049/webide-open-app-empty.png" style="display: block; height: 562px; margin-left: auto; margin-right: auto; width: 723px;"></p> - -<h3 id="Create_a_new_app">Create a new app</h3> - -<p>Select "New App..." to create a new app. You'll see a dialog offering you a choice between two templates, "Privileged Empty App" and "Privileged App".</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8053/webide-new-app.png" style="display: block; height: 591px; margin-left: auto; margin-right: auto; width: 739px;"></p> - -<p>Both templates are from Mozilla's <a href="https://github.com/mozilla/mortar">app template collection</a>, and provide you with the basic structure you need to get started. The "Privileged App" shows how an app can use permissions to load cross-origin content.</p> - -<p>Once you've selected a template you'll be asked to name the app and select a directory to store the files, and then the new app is opened in the <a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE#Editing_apps">project editor</a>.</p> - -<h3 id="Open_a_packaged_app">Open a packaged app</h3> - -<p>Select "Open Packaged App..." to open a <a href="/en-US/Marketplace/Options/Packaged_apps">packaged app</a>. You'll be asked to select a directory containing the app's <a href="/en-US/Apps/Build/Manifest">manifest</a>, and the app will be opened in the <a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE#Editing_apps">project editor</a>.</p> - -<h3 id="Open_a_hosted_app">Open a hosted app</h3> - -<p>Select "Open Hosted App..." to open a <a href="/en-US/Marketplace/Options/Hosted_apps">hosted app</a>. You'll be asked to enter a URL pointing to the app's <a href="/en-US/Apps/Build/Manifest">manifest</a>, and the app will be opened in the <a href="https://developer.mozilla.org/en-US/docs/Tools/WebIDE#Editing_apps">project editor</a>.</p> - -<h2 id="Editing_apps">Editing apps</h2> - -<p>The project editor provides an environment for editing apps. There's a tree view on the left of all the files in the app: you can add and delete files here using a context menu. There's an editor pane on the right.</p> - -<h3 id="The_app_summary_page">The app summary page</h3> - -<p>When you first open or create an app, the editor pane is occupied by the app summary page, which is shown below:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8055/webide-new-app-editor.png" style="display: block; height: 625px; margin-left: auto; margin-right: auto; width: 846px;"></p> - -<p>You can always get back to the app summary page by clicking on the root of the tree on the left.</p> - -<h3 id="Manifest_validation">Manifest validation</h3> - -<p>WebIDE automatically checks the manifest for certain common problems. If it finds a problem it indicates that the app is invalid and describes the problem in the app's summary:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8063/webide-invalid-manifest.png" style="display: block; height: 626px; margin-left: auto; margin-right: auto; width: 847px;"></p> - -<p>Of course, you can edit the <a href="/en-US/Apps/Build/Manifest">manifest.webapp</a> file right in the project editor as well.</p> - -<h3 id="The_source_editor">The source editor</h3> - -<p>WebIDE uses the <a href="http://codemirror.net/">CodeMirror</a> source editor.</p> - -<h4 id="Source_editor_shortcuts">Source editor shortcuts</h4> - -<p>{{ Page ("en-US/docs/tools/Keyboard_shortcuts", "source-editor") }}</p> - -<h4 id="Code_completion">Code completion</h4> - -<p>When editing CSS and JavaScript, the editor provides autocomplete suggestions. CSS autocompletion is always enabled:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8057/webide-css-autocomplete.png" style="display: block; height: 628px; margin-left: auto; margin-right: auto; width: 849px;">To display autocomplete suggestions in JavaScript press Control + Space:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8059/webide-js-autocomplete.png" style="display: block; height: 653px; margin-left: auto; margin-right: auto; width: 867px;"></p> - -<h4 id="Inline_documentation">Inline documentation</h4> - -<p>The editor also shows inline documentation for JavaScript. Press Shift + Space to see a popup containing documentation for the symbol your cursor is on:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8061/webide-js-inline-docs.png" style="display: block; height: 652px; margin-left: auto; margin-right: auto; width: 872px;"></p> - -<p>Clicking the <code>[docs]</code> link in the popup will take you to the MDN page for the symbol.</p> - -<h4 id="Saving_files">Saving files</h4> - -<p>For changes to your files to take effect you need to save them. Files with unsaved changes get an asterisk next to their name in the tree view, and you can save files using the menu or Control+S (Command+S on Mac OS X).</p> - -<h3 id="Removing_projects">Removing projects</h3> - -<p>To remove an app from WebIDE, go to the <a href="/en-US/docs/Tools/WebIDE#The_app_summary_page">app summary page</a> and click "Remove Project".</p> - -<h2 id="Running_a_custom_build_step">Running a custom build step</h2> - -<div class="geckoVersionNote"> -<p>New in Firefox 37.</p> -</div> - -<p>For some use cases you need to run a custom command before pushing your app to the device. For example, you might want to satisfy JavaScript dependencies or minify CSS, or use WebIDE to develop Gaia apps or Cordova apps, both of which require a custom build step.</p> - -<p>From Firefox 37 you can do this by including a file called "package.json" in the root of your app. This is the same file that's used to <a href="https://docs.npmjs.com/files/package.json">package a node.js library</a>, so you might already have one in the root of your project. If you don't, you can create one for this purpose.</p> - -<p>Inside package.json, WebIDE looks for a property called "webide". The table below summarises the syntax of "webide":</p> - -<table class="standard-table"> - <tbody> - <tr> - <td style="width: 10%;"><code>webide</code></td> - <td style="width: 10%;"> </td> - <td style="width: 10%;"> </td> - <td style="width: 70%;"> - <p>Object containing instructions for WebIDE.</p> - - <p>This may contain two properties, both optional: "<code>prepackage</code>" and "<code>packageDir</code>".</p> - </td> - </tr> - <tr> - <td> </td> - <td><code>prepackage</code></td> - <td> </td> - <td> - <p>Specifies a command-line command for WebIDE to run before pushing the app to the runtime.</p> - - <p>This may be a string, in which case the command is just executed as-is, or may be an object which must contain "<code>command</code>", and may contain any of "<code>env</code>", "<code>args</code>", and "<code>cwd</code>".</p> - </td> - </tr> - <tr> - <td> </td> - <td> </td> - <td><code>command</code></td> - <td> - <p>The command to execute in the command shell.</p> - - <p>For example: "<code>echo</code>".</p> - </td> - </tr> - <tr> - <td> </td> - <td> </td> - <td><code>env</code></td> - <td> - <p>Any environment variables to set.</p> - - <p>This is specified as an array of strings in the form "NAME=value". For example: <code>["NAME=world"]</code></p> - </td> - </tr> - <tr> - <td> </td> - <td> </td> - <td><code>args</code></td> - <td> - <p>Any arguments to pass along with the command.</p> - - <p>This is specified as an array of strings.</p> - </td> - </tr> - <tr> - <td> </td> - <td> </td> - <td><code>cwd</code></td> - <td> - <p>The directory from which to run the command.</p> - - <p>This may be absolute or relative to the current directory.</p> - </td> - </tr> - <tr> - <td> </td> - <td><code>packageDir</code></td> - <td> </td> - <td> - <p>The directory from which WebIDE should look for the app to push to the runtime.</p> - - <p>Use this if you want the project in WebIDE to be the source from which to build a packaged app. The build step specified in <code>prepackage</code> would place the built app in an output directory, you will specify the output directory in <code>packageDir</code>, and WebIDE will install the app from that output directory rather than the project directory.</p> - - <p>This property is optional, and if it's omitted WebIDE will package the app from the project root, just as if package.json was omitted.</p> - </td> - </tr> - </tbody> -</table> - -<h3 id="Examples">Examples</h3> - -<p>A "package.json" to build a Gaia app:</p> - -<pre class="brush: json">{ - "webide": { - "prepackage": { - "command": "make", - "env": ["APP=settings"], - "cwd": "../.." - }, - "packageDir": "../../build_stage/settings/" - } -}</pre> - -<p>A "package.json" for working with Cordova:</p> - -<pre class="brush: json">{ - "webide": { - "prepackage": "cordova prepare", - "packageDir": "./platforms/firefoxos/www" - } -}</pre> - -<h2 id="Running_and_debugging_apps">Running and debugging apps</h2> - -<p>When you're ready to run the app, you need to <a href="/en-US/docs/Tools/WebIDE#Selecting_a_runtime">select a runtime from the "Select Runtime" dropdown menu</a>. If you don't have any available runtimes here, find out how to add some in <a href="/en-US/docs/Tools/WebIDE#Setting_up_runtimes">Setting up runtimes</a>.</p> - -<p>The "play" button in the center of the WebIDE toolbar is now enabled: click it to install and run the app in the selected runtime:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8065/webide-running.png" style="display: block; height: 718px; margin-left: auto; margin-right: auto; width: 1314px;">To debug the app, click the "Pause" button and the Developer Tools <a href="/en-US/docs/Tools/Tools_Toolbox">Toolbox</a> appears, connected to your app:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8067/webide-debugging.png" style="display: block; height: 688px; margin-left: auto; margin-right: auto; width: 1310px;"></p> - -<div class="geckoVersionNote"> -<p>From Firefox 36 onwards, the "Pause" button is replaced with a wrench icon.</p> -</div> - -<p>Exactly which tools you'll have available depends on the runtime, but you will at least have the basics: the <a href="/en-US/docs/Tools/Page_Inspector">Inspector</a>, <a href="/en-US/docs/Tools/Web_Console">Console</a>, <a href="/en-US/docs/Tools/Debugger">JavaScript Debugger</a>, <a href="/en-US/docs/Tools/Style_Editor">Style Editor</a>, <a href="/en-US/docs/Tools/Profiler">Profiler</a> and <a href="/en-US/docs/Tools/Scratchpad">Scratchpad</a>. Just as in a web page, any changes you make in the tools are visible immediately in the app, but are not persistent. Conversely, any changes you make in the editor pane can be saved straight back to disk, but are not visible without restarting the app.</p> - -<h3 id="Unrestricted_app_debugging_(including_certified_apps_main_process_etc.)">Unrestricted app debugging (including certified apps, main process, etc.)</h3> - -<p>You can run the debugger against the simulator, b2g desktop, or a real device.</p> - -<p>With the Simulator, if you click on the app dropdown menu while the runtime is selected, you can see and debug not only your app but all apps running in that runtime, including <a href="/en-US/Marketplace/Options/Packaged_apps#Certified_app">certified apps</a>:</p> - -<p><img alt="" src="https://mdn.mozillademos.org/files/8069/webide-debugging-builtin.png" style="display: block; height: 681px; margin-left: auto; margin-right: auto; width: 1302px;"></p> - -<p><br> - However, when connecting to a real device we have a security policy in force:</p> - -<ul> - <li>On devices running Firefox OS versions up to 2.1, all installed apps on device that are <strong>not</strong> certified apps (so privileged and web / regular apps) appear in "Runtime Apps" by default.</li> - <li>On Firefox 2.1 and above, we changed this so that only apps installed via DevTools / WebIDE appear in "Runtime Apps", regardless of app type. We did this to protect potentially sensitive data that could be present in apps.</li> -</ul> - -<p>To remove this restriction:</p> - -<ul> - <li>The device must be running a development build of Firefox OS 1.2+</li> - <li>You must disable the <code>DevTools restricted privileges</code> setting.</li> -</ul> - -<p>To disable <code>DevTools restricted privileges</code>, connect to the runtime, and then, in the menu, go to <code>Runtime > Runtime Info</code>. The path then differs depending on what you are debugging against:</p> - -<ul> - <li>Real device - <ul> - <li>If it can be rooted, clicking <code>"request higher privileges"</code> will enable unrestricted app debugging (Firefox OS will restart). You may need to select your device again in the 'Select Runtime' drop down.</li> - </ul> - </li> - <li>Simulator - <ul> - <li>The simulators come with unrestricted app debugging enabled by default.</li> - </ul> - </li> - <li>B2G desktop - <ul> - <li>Manually edit the B2G desktop client <a href="https://developer.mozilla.org/en-US/Firefox_OS/Using_the_App_Manager#Using_the_B2G_desktop_client">preferences</a> before connecting to enable unrestricted app debugging.</li> - </ul> - </li> -</ul> - -<p>Now (or after a restart of the B2G desktop client) in WebIDE you should see all the apps on the device.</p> - -<div class="note"> -<p><strong>Note</strong>: As indicated above, to enable unrestricted privileges on a real device through WebIDE you'll need a rooted device. There is however a developer setting available in Firefox OS 2.2 onwards called <a href="/en-US/Firefox_OS/Debugging/Developer_settings#Reset_and_enable_full_DevTools">Reset and enable full DevTools</a> — when activated this will wipe all user data (for security reasons), reset the device, and enable unrestricted priviledges on <em>any</em> device.</p> -</div> - -<h2 id="Monitoring_performance">Monitoring performance</h2> - -<p>If you're interested in the performance of your apps, there are a few ways to measure their impact on the runtime in WebIDE:</p> - -<ul> - <li>The <a href="/docs/Tools/WebIDE/Monitor">Monitor</a> panel offers a good overview of a device's performance. This can help you detect problems, e.g. a sudden, excessive increase in an app's memory usage (leak).</li> - <li>The <a href="/docs/Tools/Profiler">Profiler</a> tool gives you a way to analyze a single app's footprint in great detail. This is especially useful when investigating a known performance problem.</li> -</ul> - -<h2 id="Troubleshooting">Troubleshooting</h2> - -<p>If you have any problems working with WebIDE, see the <a href="/en-US/docs/Tools/WebIDE/Troubleshooting">Troubleshooting</a> page.</p> - -<p> </p> - -<p> </p> diff --git a/files/id/tools/webide/troubleshooting/index.html b/files/id/tools/webide/troubleshooting/index.html deleted file mode 100644 index d39320049b..0000000000 --- a/files/id/tools/webide/troubleshooting/index.html +++ /dev/null @@ -1,117 +0,0 @@ ---- -title: WebIDE -slug: Tools/WebIDE/Troubleshooting -tags: - - Indonesia -translation_of: Archive/WebIDE/Troubleshooting ---- -<div>{{ToolsSidebar}}</div><h2 id="Connecting_a_Firefox_OS_device_over_USB">Connecting a Firefox OS device over USB</h2> - -<p>If you're trying to connect a Firefox OS device to WebIDE and it doesn't show up, here are some things you can try:</p> - -<ul> - <li>Check your Firefox OS version: make sure your device is running<strong> Firefox OS 1.2/Boot2Gecko 1.2 or higher</strong>. To check the version, go to the Settings app on the device, then <code>Device Information > Software</code>. If you don't have a high enough version, find your device in the <a href="/en-US/Firefox_OS/Developer_phone_guide">developer phone guide</a> and follow the instructions for upgrading.</li> - <li>Enable remote debugging: in the Settings app on the device, go to <code>Device information > More information > Developer</code>. - <ul> - <li>Firefox OS 1.3 and earlier: "Remote Debugging" is just a simple checkbox. Check the box.</li> - <li>Firefox OS 1.4 and later: "Remote Debugging" asks you to enable for just ADB, or for ADB and DevTools. Select "ADB and DevTools".</li> - </ul> - </li> - <li>Disable screen lock on your device: in the Settings app on the device, go to <code>Screen Lock</code> and unchecking the <code>Lock Screen</code> checkbox. This is a good idea because when the screen gets locked, the phone connection gets lost, meaning it is no longer available for debugging.</li> - <li>Make sure you haven't connected an Android phone at the same time as the Firefox OS phone to your computer.</li> - <li>Check the USB cable you are using: - <ul> - <li>Try unplugging and replugging in the USB cable.</li> - <li>Try plugging the USB cable into a different port on your computer. You may have to alternate between ports.</li> - <li>Try a different USB cable. The cables that come with phones are often of poor quality and fail often.</li> - <li>Try a shorter USB cable. Long USB cables have been known to not work so well.</li> - </ul> - </li> - <li>Try disabling and re-enabling Remote Debugging in the Settings app on the device.</li> - <li>If <a href="/en-US/docs/Tools/WebIDE#Custom_runtimes">you disabled the ADB Addon Helper</a>, did you successfully run the <code>adb forward</code> command?</li> - <li>If you use Linux: - <ul> - <li>Make sure you added a <code>udev</code> rules file, as documented in step 3 of this guide to <a class="external external-icon" href="http://developer.android.com/tools/device.html#setting-up">setting up an Android device</a>. The <code>idVendor</code> attribute to use for the Geeksphone is "05c6", and <a class="external external-icon" href="http://developer.android.com/tools/device.html#VendorIds">this page</a> lists other <code>idVendor</code> values. Next, run the <code>adb devices</code> to make sure your device is in the list. If device appears to be "no permission", you need to restart adb server (e.g. <code>adb kill-server;adb start-server</code>).</li> - </ul> - </li> - <li>If you use Windows: - <ul> - <li>You need to install drivers, as documented in step 3 of this guide to <a class="external external-icon" href="http://developer.android.com/tools/device.html#setting-up">setting up an Android device</a>. You can find drivers for Geeksphone devices on the <a class="external external-icon" href="http://downloads.geeksphone.com/">Geeksphone web site</a> and drivers for Google devices on <a href="http://developer.android.com/sdk/win-usb.htm">Google web site</a>. Windows 8 by default will not let you install unsigned drivers. See this tutorial on <a class="external-icon external" 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>.</li> - <li>If WebIDE can't see your device after following all the steps, you may have to <a class="external-icon external" href="http://blog.fh-kaernten.at/wehr/?p=1182">edit adb_usb.ini</a>.</li> - </ul> - </li> - <li>If you use Mac OS X: - <ul> - <li>If you're getting timeout errors connecting to both simulators and real devices, you may be unable to connect to localhost due to an empty /etc/hosts file. You can solve the problem by populating the file and flushing DNS cache <a href="https://discussions.apple.com/thread/2729411?tstart=0">as described here</a>.</li> - <li>If you're an EasyTether user, you will need to uninstall or disable EasyTether: <code>sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext</code></li> - </ul> - </li> -</ul> - -<h2 id="Connecting_a_Firefox_OS_device_over_Wi-Fi">Connecting a Firefox OS device over Wi-Fi</h2> - -<ul> - <li>Check your version: Wi-Fi debugging requires Firefox 39 or higher, and a Firefox OS device running a build of Firefox OS 3.0 from 2015-03-27 or later.</li> - <li>The QR code scanner can be a bit frustrating at the moment, as real devices appear to capture a very low resolution picture. <a href="https://bugzil.la/1145772">Bug 1145772</a> aims to improve this soon. If you have trouble with this, try scanning with a few different orientations. If you chose "Scan and Remember, then you won't have to scan the code again the next time you connect your computer to this device.</li> -</ul> - -<h2 id="Connecting_to_Firefox_for_Android">Connecting to Firefox for Android</h2> - -<p>If you're trying to connect to a Firefox instance running on the Android OS and it doesn't show up, here are some things you can try:</p> - -<ul> - <li>Check your Firefox version: make sure your device is running<strong> Firefox 36 or higher</strong>. WebIDE will not detect older versions automatically, so you need to enable port forwarding and connect to the device port - follow the instructions <a class="external external-icon" href="https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/Firefox_for_Android">here</a>.</li> - <li>Make sure you have enabled remote debugging in Firefox: open Firefox for Android, open its menu, select <code>Settings</code>, and then check the checkbox at <code>Developer Tools > Remote debugging</code>.</li> - <li>Make sure that USB debugging is allowed in the device's developer settings</li> - <li>If you still do not see your device in the WebIDE window, try toggling <code>Remote debugging</code> on the phone. - <ul> - <li>Disconnect your device from your computer and turn off <code>Remote debugging</code> on the phone.</li> - <li>Reconnect the device and turn on <code>Remote debugging</code> - this restarts the debugger instance on the phone.</li> - <li>Try connecting via WebIDE again.</li> - </ul> - </li> - <li>If using Windows, make sure that your Android device is recognized correctly and that it is using the Google USB Driver that is included with the Android SDK.</li> -</ul> - -<h2 id="Connecting_to_other_browsers_(Chrome_Safari)">Connecting to other browsers (Chrome, Safari)</h2> - -<p>WebIDE makes use of <a href="/en-US/docs/Tools/Valence">Valence (formerly Firefox Tools Adapter)</a> to reach other browsers, like Chrome and Safari. </p> - -<p>If you are having trouble connecting to these other browsers, check the setup steps and other notes for those browsers on the <a href="/en-US/docs/Tools/Valence">Valence page</a>.</p> - -<h2 id="Can't_debug_some_apps">Can't debug some apps</h2> - -<p>If you are finding that you can't debug certified apps, built-in apps, or apps already installed on a real device, then you may be coming across WebIDE's restricted privileges security policy. To find out more, see the section on <a href="/en-US/docs/Tools/WebIDE#Unrestricted_app_debugging_%28including_certified_apps.2C_main_process.2C_etc.%29">Unrestricted app debugging (including certified apps, main process, etc.)</a>.</p> - -<h2 id="Unable_to_load_project_list">Unable to load project list</h2> - -<p>If you open WebIDE in one version of Firefox, and then downgrade to a previous Firefox version with the same profile, you may see the error "Unable to load project list" when opening WebIDE in the earlier Firefox version.</p> - -<p>This can occur when the storage system that WebIDE uses (<a href="/en-US/docs/Web/API/IndexedDB_API">IndexedDB</a>) needs to move or restructure its internal files for the newer Firefox version. The project list then becomes effectively inaccessible to older versions of Firefox.</p> - -<p>No data has been lost, but you will need to keep using the newest version of Firefox that was used with your profile to get the project list back.</p> - -<p>If really want to use the older version of Firefox, you can attempt to delete just the project list in the following way, but this is unsupported and could result in the further problems or additional data loss:</p> - -<ol> - <li>Close Firefox</li> - <li>Find your Firefox profile directory</li> - <li>Find the <code>storage</code> folder inside the profile directory</li> - <li>Under some part of this file tree, there should be files and/or directories that start with <code>4268914080AsptpcPerjo</code> (a hashed name of the database)</li> - <li>Remove any such files and directories</li> - <li>Start Firefox and WebIDE again</li> -</ol> - -<h2 id="Enable_logging">Enable logging</h2> - -<p>You can also enable verbose logging to gather diagnostics:</p> - -<ol start="1" style="list-style-type: decimal;"> - <li>Open <a class="external external-icon" href="http://kb.mozillazine.org/About:config">about:config</a>, and add a new preference called <code>extensions.adbhelper@mozilla.org.sdk.console.logLevel</code>, with the string value <code>all</code>, and set <code>extensions.adbhelper@mozilla.org.debug</code> to <code>true</code>.</li> - <li>In the <a class="external external-icon" href="https://support.mozilla.org/en-US/kb/disable-or-remove-add-ons">Add-ons Manager</a>, disable and then re-enable the ADB Helper add-on.</li> - <li>Open the <a href="https://developer.mozilla.org/en-US/docs/Tools/Browser_Console">Browser Console</a> and you'll now see console messages prefixed with <code>adb</code>. If the messages don't mean anything to you, <a href="/en-US/docs/Tools/WebIDE/Troubleshooting#Get_help">ask for help</a>.</li> -</ol> - -<h2 id="Get_help">Get help</h2> - -<p>Go to the <a class="external external-icon" href="https://wiki.mozilla.org/DevTools/GetInvolved#Communication">#devtools room on IRC</a> and we will try to help.</p> diff --git a/files/id/web/api/mobile_connection_api/index.html b/files/id/web/api/mobile_connection_api/index.html deleted file mode 100644 index 7b5462e2ef..0000000000 --- a/files/id/web/api/mobile_connection_api/index.html +++ /dev/null @@ -1,149 +0,0 @@ ---- -title: Mobile Connection -slug: Web/API/Mobile_Connection_API -translation_of: Archive/B2G_OS/API/Mobile_Connection_API ---- -<p>{{ draft }}</p> -<p>{{ non-standard_header() }}</p> -<p>{{ B2GOnlyHeader2('certified') }}</p> -<h2 id="Summary">Summary</h2> -<p>This API has 2 purposes:</p> -<ul> - <li>Giving access to detailed information about the current states of the mobile connection of the device</li> - <li>Giving access to the specific capacities embedded within the <abbr title="Integrated Circuit Card">ICC</abbr> (the <abbr title="Subscriber Identity Module">SIM</abbr>/<abbr title="Removable User Identity Module">RUIM</abbr> card)</li> -</ul> -<p>As this API can access functionalities that can have an impact on the mobile plan subscribed by the user (some of the functionalities can cost money to use or can damage the <abbr title="Integrated Circuit Card">ICC</abbr>), it is restricted to certified applications only.</p> -<p>The main entry point for this API is the {{domxref("window.navigator.mozMobileConnection","navigator.mozMobileConnection")}} property which is an instance of the {{domxref("MozMobileConnection")}} interface.</p> -<h2 id="State_of_mobile_connection">State of mobile connection</h2> -<p>The state of the mobile connection is divided in two: on the one hand the <code>voice</code> connection, on the other hand the <code>data</code> connection. The data related to each type of connection are accessible through the {{domxref("MozMobileConnection.voice")}} and {{domxref("MozMobileConnection.data")}} properties which both return a {{domxref("MozMobileConnectionInfo")}} object.</p> -<p>Those objects give access to all information related to the quality of the network (<a href="/en-US/docs/DOM/MozMobileConnectionInfo.signalStrength" title="/en-US/docs/DOM/MozMobileConnectionInfo.signalStrength">signal strength</a>, <a href="/en-US/docs/DOM/MozMobileConnectionInfo.relSignalStrength" title="/en-US/docs/DOM/MozMobileConnectionInfo.relSignalStrength">quality of the signal</a>, position of the <a href="/en-US/docs/DOM/MozMobileConnectionInfo.cell" title="/en-US/docs/DOM/MozMobileConnectionInfo.cell">network's cells</a>, <a href="/en-US/docs/DOM/MozMobileConnectionInfo.emergencyCallsOnly" title="/en-US/docs/DOM/MozMobileConnectionInfo.emergencyCallsOnly">restricted usage</a>, <a href="/en-US/docs/DOM/MozMobileConnectionInfo.roaming" title="/en-US/docs/DOM/MozMobileConnectionInfo.roaming">roaming</a>, etc.), and related to <a href="/en-US/docs/DOM/MozMobileConnectionInfo.network" title="/en-US/docs/DOM/MozMobileConnectionInfo.network">the carrier operating the network</a>.</p> -<pre class="brush: js">var cnx = navigator.mozMobileConnection; - -console.log("The voice operator is " + cnx.voice.network.longName); - -if (cnx.voice.connected) { - console.log("The signal has a strength of " + (+cnx.voice.relSignalStrength) + "%"); -} else { - console.log("The state of the connection is: " + cnx.voice.state); -} -</pre> -<h2 id="ICC_Functionalities">ICC Functionalities</h2> -<p>The functionalities available for the <abbr title="Integrated Circuit Card">ICC</abbr> can be divided into two categories: the management of the <abbr title="Integrated Circuit Card">ICC</abbr> itself and the use of the integrated command available within the <a href="http://en.wikipedia.org/wiki/SIM_Application_Toolkit" title="http://en.wikipedia.org/wiki/SIM_Application_Toolkit">STK</a> (<em>SIM Application Toolkit</em>).</p> -<h3 id="Basic_actions">Basic actions</h3> -<p>The {{domxref("MozMobileConnection")}} provides a set of methods to deal with common behaviors on <abbr title="Integrated Circuit Card">ICC</abbr>s.</p> -<div class="note"> - <p><strong>Note:</strong> All original methods from the <code>MozMobileConnection</code> interface are fully asynchronous. They all return a {{domxref("DOMRequest")}} object which has an <code>onsuccess</code> and <code>onerror</code> event handler to handle the success or failure of the method call.</p> -</div> -<h4 id="Card_lock">Card lock</h4> -<p>As long as a card is locked, a user is unable to use it to reach its mobile network. It's possible to manage the card lock with the {{domxref("MozMobileConnection.getCardLock","getCardLock()")}}, {{domxref("MozMobileConnection.setCardLock","setCardLock()")}}, and {{domxref("MozMobileConnection.unlockCardLock","unlockCardLock()")}} methods.</p> -<p>If {{domxref("MozMobileConnection.getCardLock","getCardLock()")}} allows to get some detailed information about the lock, it's also possible to have quick info about the lock through {{domxref("MozMobileConnection.cardState")}} which returns a string representing the current state of the lock.</p> -<div class="note"> - <p><strong>Note:</strong> Even if the state change requests are successfully handled, it does not mean that the operations are necessarily successful. For that reason, any change in the card state is tracked independently through events:</p> - <ul> - <li>The {{event("icccardlockerror")}} event is triggered each time a call to {{domxref("MozMobileConnection.setCardLock","setCardLock()")}} or {{domxref("MozMobileConnection.unlockCardLock","unlockCardLock()")}} fails.</li> - <li>The {{event("cardstatechange")}} event is triggered each time the {{domxref("MozMobileConnection.cardState","cardState")}} property changes.</li> - </ul> -</div> -<pre class="brush: js">var cnx = navigator.mozMobileConnection; - -function unlockCard() { - var unlockOptions = { - lockType: "pin", - pin : prompt("Please, enter your PIN") - } - - var unlock = cnx.unlockCardLock(unlockOptions); - - unlock.onsuccess = function () { - console.log("The card has successfully handled the PIN number."); - - if (this.result.success === false) { - if (this.result.retryCount > 0) { - console.log("But you mistyped your PIN, you have " + this.result.retryCount + " tries left."); - } else { - console.log("But your card is hard locked, you need to contact your carrier to get a special unlocking code."); - } - } - } - - unlock.onerror = function () { - console.log("Hu! Something goes very wrong!") - } -} - -cnx.addEventListener('icccardlockerror', function () { - // In case of error, ask the user for his PIN again - unlockCard(); -}); - -cnx.addEventListener('cardsatechange', function () { - // In case the card state change and required to be unlocked - if (cnx.cardState === 'pinRequired') { - unlockCard(); - } -} - -// First call to unlockCard if required -if (cnx.cardState === 'pinRequired') { - unlockCard(); -} -</pre> -<h4 id="MMI_Messages">MMI Messages</h4> -<p><abbr title="Man Machine Interface">MMI</abbr> messages are human understandable code that, once typed with a phone keyboard, allow to trigger specific action from the <a class="external" href="http://en.wikipedia.org/wiki/Radio_Interface_Layer" title="Wikipedia: Radio Interface Layer">RIL</a> or get response from the network through a <a class="external" href="http://en.wikipedia.org/wiki/USSD" title="Wikipedia: Unstructured Supplementary Service Data">USSD</a> request. A common example is typing a short code to get the <a href="http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity" title="http://en.wikipedia.org/wiki/International_Mobile_Station_Equipment_Identity">IMEI</a> phone number.</p> -<p>Such messages are sent using the {{domxref("MozMobileConnection.sendMMI()")}} method (and can be canceled with {{domxref("MozMobileConnection.cancelMMI","cancelMMI()")}}). Even if it will return a {{domxref("DOMRequest")}} object, the response to such messages are handled in two ways:</p> -<ul> - <li>If the <abbr title="Man Machine Interface">MMI</abbr> code requires sending a <abbr title="Unstructured Supplementary Service Data">USSD</abbr> request, the request's <code>success</code> means that the <abbr title="Radio Interface Layer">RIL</abbr> has successfully processed and sent the <abbr title="Unstructured Supplementary Service Data">USSD</abbr> request to the network. However, the network reply is reported through the {{event("ussdreceived")}} event.</li> - <li>If the <abbr title="Man Machine Interface">MMI</abbr> code is not associated with a <abbr title="Unstructured Supplementary Service Data">USSD</abbr> but with another <abbr title="Radio Interface Layer">RIL</abbr> request, its result, if one is needed, is sent via the returned request's <code>success</code> or <code>error</code>.</li> -</ul> -<pre class="brush: js">var cnx = navigator.mozMobileConnection; - -cnx.addEventHandler('ussdreceived', function (evt) { - console.log('Network message: ' + evt.data.message); -}); - -var MMIRequest = cnx.sendMMI(prompt('Provide a valid MMI')); - -MMIRequest.onerror = function() { - console.log("Mmmh... Something goes wrong."); -} -</pre> -<h4 id="Call_forwarding_options">Call forwarding options</h4> -<p>Call forwarding options allow to define how a call can or cannot be forwarded to another phone number.</p> -<p>Those options are handled with the {{domxref("MozMobileConnection.getCallForwardingOption","getCallForwardingOption()")}} and {{domxref("MozMobileConnection.setCallForwardingOption","setCallForwardingOption()")}} methods.</p> -<pre class="brush: js">var options = { - action : MozMobileCFInfo.CALL_FORWARD_ACTION_ENABLE, - reason : MozMobileCFInfo.CALL_FORWARD_REASON_UNCONDITIONAL, - serviceClass: MozMobileConnectionInfo.ICC_SERVICE_CLASS_VOICE, - number : prompt('To which phone number would you wish to forward the calls?'), - timeSeconds : 5 -}; - -var setOption = navigator.mozMobileConnection.setCallForwardingOption(options); - -setOption.onsuccess = function () { - console.log('Options successfully set'); -} - -setOption.onerror = function () { - console.log('Unable to set options: ' + this.error.name); -} -</pre> -<h3 id="STK_commands">STK commands</h3> -<p>The STK commands depend on many factors (carriers, chips model, etc.) but can always be accessed through the {{domxref("MozMobileConnection.icc")}} property which returns a {{domxref("MozIccManager")}} object.</p> -<div class="warning"> - <p><strong>Warning:</strong> It's recommended to use the STK command only if you already know exactly what you are doing, as a misusage can damage the chip and make it unusable.</p> -</div> -<h2 id="Specification">Specification</h2> -<p>Not part of any specification.</p> -<h2 id="See_also">See also</h2> -<ul> - <li>{{domxref("window.navigator.mozMobileConnection","navigator.mozMobileConnection")}}</li> - <li>{{domxref("MozMobileConnection")}}</li> - <li>{{domxref("MozMobileConnectionInfo")}}</li> - <li>{{domxref("MozMobileICCInfo")}}</li> - <li>{{domxref("MozMobileNetworkInfo")}}</li> - <li>{{domxref("MozMobileCFInfo")}}</li> - <li>{{domxref("MozMobileCellInfo")}}</li> - <li>{{domxref("MozIccManager")}}</li> - <li>{{domxref("MozStkCommandEvent")}}</li> -</ul> diff --git a/files/id/web/events/cached/index.html b/files/id/web/events/cached/index.html deleted file mode 100644 index 195f18f846..0000000000 --- a/files/id/web/events/cached/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: cached -slug: Web/Events/cached -translation_of: Archive/Events/cached ---- -<p>Event <code>cached</code> dijalankan ketika resource pada daftar application cache manifest telah terunduh, dan aplikasi sekarang ter-cache.</p> - -<h2 id="Info_Umum">Info Umum</h2> - -<dl> - <dt style="float: left; text-align: right; width: 120px;">Spesifikasi</dt> - <dd style="margin: 0 0 0 120px;"><a class="external" href="https://html.spec.whatwg.org/multipage/browsers.html#offline">Offline</a></dd> - <dt style="float: left; text-align: right; width: 120px;">Interface</dt> - <dd style="margin: 0 0 0 120px;">Event</dd> - <dt style="float: left; text-align: right; width: 120px;">Bubbles</dt> - <dd style="margin: 0 0 0 120px;">No</dd> - <dt style="float: left; text-align: right; width: 120px;">Cancelable</dt> - <dd style="margin: 0 0 0 120px;">No</dd> - <dt style="float: left; text-align: right; width: 120px;">Target</dt> - <dd style="margin: 0 0 0 120px;">applicationCache</dd> - <dt style="float: left; text-align: right; width: 120px;">Default Action</dt> - <dd style="margin: 0 0 0 120px;">None</dd> -</dl> - -<h2 id="Properti">Properti</h2> - -<table class="standard-table"> - <tbody> - <tr> - <td class="header">Properti</td> - <td class="header">Type</td> - <td class="header">Deskripsi</td> - </tr> - <tr> - <td><code>target</code></td> - <td>EventTarget (DOM element)</td> - <td>The event target (the topmost target in the DOM tree). Read Only.</td> - </tr> - <tr> - <td><code>type</code></td> - <td>string</td> - <td>The type of event. Read only.</td> - </tr> - <tr> - <td><code>canBubble</code></td> - <td>boolean</td> - <td>Does the event normally bubble? Read only.</td> - </tr> - <tr> - <td><code>cancelable</code></td> - <td>boolean</td> - <td>Is it possible to cancel the event? Read only.</td> - </tr> - </tbody> -</table> - -<h2 id="Event_Terkait">Event Terkait</h2> - -<ul> - <li>{{Event("checking")}}</li> - <li>{{Event("noupdate")}}</li> - <li>{{Event("downloading")}}</li> - <li>{{Event("progress_(appcache_event)", "progress")}}</li> - <li>{{Event("cached")}}</li> - <li>{{Event("updateready")}}</li> - <li>{{Event("obsolete")}}</li> - <li>{{Event("error_(appcache_event)", "error")}}</li> -</ul> - -<h2 id="Lihat_juga">Lihat juga</h2> - -<ul> - <li><a href="/en-US/docs/Offline_resources_in_Firefox">Using the Application Cache</a></li> -</ul> diff --git a/files/id/web/javascript/new_in_javascript/index.html b/files/id/web/javascript/new_in_javascript/index.html deleted file mode 100644 index 79ee10c2b3..0000000000 --- a/files/id/web/javascript/new_in_javascript/index.html +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: New in JavaScript -slug: Web/JavaScript/New_in_JavaScript -tags: - - ECMAScript - - JavaScript - - NeedsTranslation - - TopicStub - - Versions -translation_of: Archive/Web/JavaScript/New_in_JavaScript ---- -<div>{{jsSidebar("New_in_JS")}}</div> - -<p>This chapter contains information about JavaScript's version history and implementation status for Mozilla/SpiderMonkey-based JavaScript applications, such as Firefox.</p> - -<h2 id="ECMAScript_versions">ECMAScript versions</h2> - -<dl> - <dt><a href="/en-US/docs/Web/JavaScript/Language_Resources">Language resources</a></dt> - <dd>Learn more about the ECMAScript standards on which the JavaScript language is based on.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_5_support_in_Mozilla">ECMAScript 5 support</a></dt> - <dd>Implementation status for the current standard ECMA-262 Edition 5.1 in Mozilla-based engines and products.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_2015_support_in_Mozilla">ECMAScript 2015 support</a></dt> - <dd>Implementation status for the draft ECMA-262 Edition 6 (ES2015) in Mozilla-based engines and products.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_Next_support_in_Mozilla">ECMAScript Next support</a></dt> - <dd>Implementation status for upcoming ECMA-262 features as per the yearly (ES2016/ES2017/ES2018/...) release schedule in Mozilla-based engines and products.</dd> -</dl> - -<h2 id="JavaScript_release_notes">JavaScript release notes</h2> - -<dl> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/Firefox_JavaScript_changelog">Firefox JavaScript changelog</a></dt> - <dd>See this changelog for JavaScript features implemented in Firefox 5 and later.</dd> -</dl> - -<h2 id="JavaScript_versions">JavaScript versions</h2> - -<p><strong>Deprecated</strong> ({{deprecated_inline}}). The explicit versioning and opt-in of language features was Mozilla-specific and <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=867609">are in process of being removed</a>. Firefox 4 was the last version which referred to a JavaScript version (1.8.5). With new ECMA standards, JavaScript language features are now often mentioned with their initial definition in ECMA-262 Editions such as ECMAScript 2015.</p> - -<p>JavaScript was released as version 1.0 in March 1996 in Netscape Navigator 2.0 and Internet Explorer 2.0.</p> - -<dl> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.1">JavaScript 1.1</a></dt> - <dd>Version shipped in Netscape Navigator 3.0. Released on August 19, 1996.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.2">JavaScript 1.2</a></dt> - <dd>Version shipped in Netscape Navigator 4.0-4.05. Released on June 11, 1997.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.3">JavaScript 1.3</a></dt> - <dd>Version shipped in Netscape Navigator 4.06-4.7x. Released on October 19, 1998.<br> - Standardization work to be compliant with ECMA-262 1st and 2nd Edition.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.4">JavaScript 1.4</a></dt> - <dd>Version shipped with Netscape's server-side JavaScript. Released in 1999.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.5">JavaScript 1.5</a></dt> - <dd>Version shipped in Netscape Navigator 6.0 and Firefox 1.0. Release on November 14, 2000.<br> - Standardization work to be compliant with ECMA-262 3rd Edition.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.6">JavaScript 1.6</a></dt> - <dd>Version shipped in Firefox 1.5. Released in November 2005.<br> - Includes ECMAScript for XML (E4X), new <code>Array</code> methods plus <code>String</code> and <code>Array</code> generics.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.7">JavaScript 1.7</a></dt> - <dd>Version shipped in Firefox 2. Released in October 2006.<br> - Includes generators, iterators, array comprehensions, <code>let</code> expressions, and destructuring assignment.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8">JavaScript 1.8</a></dt> - <dd>Version shipped in Firefox 3. Released in June 2008.<br> - Includes expression closures, generator expressions and <code>Array.reduce()</code></dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8.1">JavaScript 1.8.1</a></dt> - <dd>Version shipped in Firefox 3.5. Released on June 30, 2009.<br> - Includes the TraceMonkey JIT and supports native JSON.</dd> - <dt>JavaScript 1.8.2</dt> - <dd>Version shipped in Firefox 3.6. Released June 22, 2009.<br> - Includes only minor changes.</dd> - <dt><a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/1.8.5">JavaScript 1.8.5</a></dt> - <dd>Version shipped in Firefox 4. Released July 27, 2010.<br> - Includes many new features for ECMA-262 Edition 5 compliance.<br> - This is the last JavaScript version.</dd> -</dl> diff --git a/files/id/zones/index.html b/files/id/zones/index.html deleted file mode 100644 index 1e9cf86546..0000000000 --- a/files/id/zones/index.html +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Zones -slug: Zones -translation_of: Zones ---- -<p>MDN zones provide you one-stop access to information about specific topic areas or products. Here's a list of all the zones available to you.</p> -<div class="row topicpage-table"> - <div class="section"> - <h2 id="Web_and_app_development">Web and app development</h2> - <dl> - <dt> - <a href="/en-US/Apps">App Center</a></dt> - <dd> - Learn how to create open Web apps—rich experiences that run across multiple devices and form factors—using the same Web standards and open technologies you already know.</dd> - <dt> - <a href="/en-US/docs/Tools">Developer tools</a></dt> - <dd> - Learn how to use the Firefox developer tools to debug, test, and optimize your Web apps and sites.</dd> - <dt> - <a href="/en-US/Marketplace">Firefox Marketplace</a></dt> - <dd> - An open, non-proprietary online marketplace for Web applications built using HTML, CSS, and JavaScript. Submit apps to the Firefox Marketplace or use the code to build your own marketplace.</dd> - <dt> - <a href="/en-US/docs/Games">Game development</a></dt> - <dd> - Learn how to develop games for the Web, how to port existing games to Web technologies, and how to turn your games into Web apps.</dd> - <dt> - <a href="/en-US/docs/Mozilla/Developer_Program">Mozilla Developer Program</a></dt> - <dd> - Learn more about the Mozilla Developer Program, where you can sign up for membership in the program, subscribe to our newsletter, and access our growing array of features for Web developers.</dd> - </dl> - </div> - <div class="section"> - <h2 id="Products" name="Products">Products and projects</h2> - <dl> - <dt> - <a href="/en-US/docs/Emscripten">Emscripten</a></dt> - <dd> - An LLVM to JavaScript compiler; this lets you compile, for example, C++ code into JavaScript code which can be run in any Web browser.</dd> - <dt> - <a href="/en-US/docs/L20n">L20n</a></dt> - <dd> - A JavaScript localization framework for unleashing your natural language's power with simple code.</dd> - <dt> - <a href="/en-US/docs/Project:MDN">The MDN project</a></dt> - <dd> - The Mozilla Developer Network (this site) relies on its community of readers and contributors to grow and improve. You can learn here how to help use, contribute to, and build the code behind MDN!1</dd> - <dt> - <a href="/en-US/Persona">Persona</a></dt> - <dd> - A new simple, privacy-sensitive single-sign in system developed by Mozilla which lets users log into your Web site using their email address, freeing you from password management.</dd> - </dl> - <h2 id="Mozilla_technologies">Mozilla technologies</h2> - <dl> - <dt> - <a href="/en-US/Add-ons">Add-ons</a></dt> - <dd> - Learn how to build and install extensions, themes, and plug-ins for Mozilla-based software, including the popular Firefox Web browser.</dd> - <dt> - <a href="/en-US/Firefox">Firefox</a></dt> - <dd> - Learn all about Firefox, from how to build and revise it to how to build add-ons specifically for it.</dd> - <dt> - <a href="/en-US/Firefox_OS">Firefox OS</a></dt> - <dd> - A new mobile operating system developed by Mozilla which lets users install and run open Web applications created using HTML, CSS, and JavaScript.</dd> - </dl> - </div> -</div> -<p> </p> |