aboutsummaryrefslogtreecommitdiff
path: root/files/id/mozilla
diff options
context:
space:
mode:
authorRyan Johnson <rjohnson@mozilla.com>2021-04-29 16:16:42 -0700
committerGitHub <noreply@github.com>2021-04-29 16:16:42 -0700
commit95aca4b4d8fa62815d4bd412fff1a364f842814a (patch)
tree5e57661720fe9058d5c7db637e764800b50f9060 /files/id/mozilla
parentee3b1c87e3c8e72ca130943eed260ad642246581 (diff)
downloadtranslated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.gz
translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.tar.bz2
translated-content-95aca4b4d8fa62815d4bd412fff1a364f842814a.zip
remove retired locales (#699)
Diffstat (limited to 'files/id/mozilla')
-rw-r--r--files/id/mozilla/add-ons/index.html16
-rw-r--r--files/id/mozilla/add-ons/webextensions/api/browsersettings/index.html63
-rw-r--r--files/id/mozilla/add-ons/webextensions/api/index.html50
-rw-r--r--files/id/mozilla/add-ons/webextensions/api/notifications/index.html63
-rw-r--r--files/id/mozilla/add-ons/webextensions/api/windows/createtype/index.html65
-rw-r--r--files/id/mozilla/add-ons/webextensions/api/windows/index.html127
-rw-r--r--files/id/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html21
-rw-r--r--files/id/mozilla/add-ons/webextensions/content_scripts/index.html554
-rw-r--r--files/id/mozilla/add-ons/webextensions/index.html91
-rw-r--r--files/id/mozilla/add-ons/webextensions/what_are_webextensions/index.html35
-rw-r--r--files/id/mozilla/add-ons/webextensions/your_first_webextension/index.html153
-rw-r--r--files/id/mozilla/firefox/index.html75
-rw-r--r--files/id/mozilla/firefox/releases/index.html12
-rw-r--r--files/id/mozilla/index.html13
14 files changed, 0 insertions, 1338 deletions
diff --git a/files/id/mozilla/add-ons/index.html b/files/id/mozilla/add-ons/index.html
deleted file mode 100644
index f25d110860..0000000000
--- a/files/id/mozilla/add-ons/index.html
+++ /dev/null
@@ -1,16 +0,0 @@
----
-title: Add-ons
-slug: Mozilla/Add-ons
-translation_of: Mozilla/Add-ons
----
-<p>{{AddonSidebar}}</p>
-
-<p><span class="seoSummary">Add-ons Menambah fungsi baru pada aplikasi berbasis <span class="seoSummary"><a href="https://developer.mozilla.org/en-US/docs/Mozilla/Gecko">Gecko</a></span> seperti Firefox, SeaMonkey dan Thunderbird. Ada dua jenis "add-on" :  <a href="/en-US/docs/Extensions" title="Extensions">Extensions</a> menambahkan fitur ke aplikasi, sedangkan <a href="https://developer.mozilla.org/id/docs/Mozilla/Add-ons$edit#Themes">Tema</a> merubah tampilan pada aplikasi.</span></p>
-
-<p>Keduanya (Extention, dan Tema) ditemukan dalam <a href="https://addons.mozilla.org/">addons.mozilla.org</a>, dikenal juga sebagai AMO. Ketika Anda <a href="https://developer.mozilla.org/en-US/Add-ons/Submitting_an_add-on_to_AMO">masukan add-ons ke AMO</a> mereka meninjau, dan setelah melewati tinjauan maka mereka menyajikan untuk pengguna. Anda tidak harus masukan add-on ke AMO, tetapi anda lakukan, <span id="result_box" lang="id"><span class="hps">pengguna dapat</span> <span class="hps">menaruh keyakinan </span><span class="hps">bahwa</span> <span class="hps">mereka</span> <span class="hps">telah ditinjau</span></span>, dan Anda dapat keuntungan dari visibilitas AMO sebagai sumber add-on yang berguna.</p>
-
-<p><span id="result_box" lang="id"><span class="atn hps">Add-</span><span>ons</span> <span class="hps">dapat </span><span class="hps">mempengaruhi perilaku</span> <span class="hps">aplikasi</span> <span class="hps">host</span> <span class="hps">mereka</span></span>. Kami telah membangun <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Add-on_guidelines">sekumpulan panduan</a> untuk membantu memastikan bahwa mereka telah didukung mendapatkan pengalaman yang baik pada pengguna. Panduan ini digunakan untuk beberapa add-on, apakah mereka juga ditaruh di <a href="https://addons.mozilla.org/">addons.mozilla.org</a> atau tidak.</p>
-
-<h2 id="Extentions"><strong>Extentions</strong></h2>
-
-<p>Extention menambah fungsi dari aplikasi Mozzila seperti Firefox dan Thunderbird. Extension dapat menambahkan fitur pada peramban, seperti mengatur tab, dan mereka dapat merubah konten web untuk meningkatkan pengguanan atau keamanan website tertentu.</p>
diff --git a/files/id/mozilla/add-ons/webextensions/api/browsersettings/index.html b/files/id/mozilla/add-ons/webextensions/api/browsersettings/index.html
deleted file mode 100644
index 2372f738e0..0000000000
--- a/files/id/mozilla/add-ons/webextensions/api/browsersettings/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: browserSettings
-slug: Mozilla/Add-ons/WebExtensions/API/browserSettings
-translation_of: Mozilla/Add-ons/WebExtensions/API/browserSettings
----
-<div>{{AddonSidebar}}</div>
-
-<div>Enables an extension to modify certain global browser settings. Each property of this API is a {{WebExtAPIRef("types.BrowserSetting", "BrowserSetting")}} object, providing the ability to modify a particular setting.</div>
-
-<div></div>
-
-<div>Because these are global settings, it's possible for extensions to conflict. See the documentation for <code><a href="/en-US/Add-ons/WebExtensions/API/types/BrowserSetting/set">BrowserSetting.set()</a></code> for details of how conflicts are handled.</div>
-
-<div></div>
-
-<div>
-<p>To use this API you need to have the "browserSettings" <a href="https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permission</a>.</p>
-</div>
-
-<h2 id="Properties">Properties</h2>
-
-<dl>
- <dt>{{WebExtAPIRef("browserSettings.allowPopupsForUserEvents")}}</dt>
- <dd>Determines whether code running in web pages can display popups in response to user events.</dd>
- <dt>{{WebExtAPIRef("browserSettings.cacheEnabled")}}</dt>
- <dd>Determines whether the browser cache is enabled or not.</dd>
- <dt>{{WebExtAPIRef("browserSettings.closeTabsByDoubleClick")}}</dt>
- <dd>Determines whether the selected tab can be closed with a double click.</dd>
- <dt>{{WebExtAPIRef("browserSettings.contextMenuShowEvent")}}</dt>
- <dd>Determines the mouse event that triggers a context menu popup.</dd>
- <dt>{{WebExtAPIRef("browserSettings.ftpProtocolEnabled")}}</dt>
- <dd>Determines whether the FTP protocol is enabled.</dd>
- <dt>{{WebExtAPIRef("browserSettings.homepageOverride")}}</dt>
- <dd>Read the value of the browser's home page.</dd>
- <dt>{{WebExtAPIRef("browserSettings.imageAnimationBehavior")}}</dt>
- <dd>Determines how the browser treats animated images.</dd>
- <dt>{{WebExtAPIRef("browserSettings.newTabPageOverride")}}</dt>
- <dd>Reads the value of the browser's new tab page.</dd>
- <dt>{{WebExtAPIRef("browserSettings.newTabPosition")}}</dt>
- <dd>Controls the position of newly opened tabs relative to already open tabs.</dd>
- <dt>{{WebExtAPIRef("browserSettings.openBookmarksInNewTabs")}}</dt>
- <dd>Determines whether bookmarks are opened in the current tab or a new tab.</dd>
- <dt>{{WebExtAPIRef("browserSettings.openSearchResultsInNewTabs")}}</dt>
- <dd>Determines whether search results are opened in the current tab or a new tab.</dd>
- <dt>{{WebExtAPIRef("browserSettings.openUrlbarResultsInNewTabs")}}</dt>
- <dd>Determines whether address bar autocomplete suggestions are opened in the current tab or a new tab.</dd>
- <dt>{{WebExtAPIRef("browserSettings.overrideDocumentColors")}}</dt>
- <dd>Controls whether the user-chosen colors override the page's colors.</dd>
- <dt>{{WebExtAPIRef("browserSettings.useDocumentFonts")}}</dt>
- <dd>Controls whether the browser will use the fonts specified by a web page or use only built-in fonts.</dd>
- <dt>{{WebExtAPIRef("browserSettings.webNotificationsDisabled")}}</dt>
- <dd>Prevents websites from showing notifications using the <code><a href="/en-US/docs/Web/API/notification">Notification</a></code> Web API.</dd>
- <dt>{{WebExtAPIRef("browserSettings.zoomFullPage")}}</dt>
- <dd>Controls whether zoom is applied to the entire page or to text only.</dd>
- <dt>{{WebExtAPIRef("browserSettings.zoomSiteSpecific")}}</dt>
- <dd>Controls whether page zoom is applied on a per-site or per-tab basis. If {{WebExtAPIRef("privacy.websites")}}<code>.resistFingerprinting</code> is true, this setting has no effect and zoom is applied on a per-tab basis.</dd>
-</dl>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-<p>{{Compat("webextensions.api.browserSettings")}}</p>
-
-<p>{{WebExtExamples("h2")}}</p>
diff --git a/files/id/mozilla/add-ons/webextensions/api/index.html b/files/id/mozilla/add-ons/webextensions/api/index.html
deleted file mode 100644
index 9b63bd59e8..0000000000
--- a/files/id/mozilla/add-ons/webextensions/api/index.html
+++ /dev/null
@@ -1,50 +0,0 @@
----
-title: JavaScript APIs
-slug: Mozilla/Add-ons/WebExtensions/API
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Add-ons/WebExtensions/API
----
-<div>{{AddonSidebar}}</div>
-
-<div>
-<p>The WebExtension JavaScript APIs can be used inside the add-on's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Background_scripts">background scripts</a> and in any <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/User_interface_components#Browser_actions">browser action</a> or <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/User_interface_components#Page_actions">page action</a> popups that the add-on defines. A few of these APIs can also be accessed by an add-on's <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension#Content_scripts">content scripts</a> (see the <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs">list in the content script guide</a>).</p>
-
-<p>To use the more powerful APIs you need to <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions">request permission</a> in your add-on's manifest.json.</p>
-
-<p>You can access the APIs using the <code>browser</code> namespace:</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logTabs</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span> <span class="punctuation token">{</span>
- console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>tabs<span class="punctuation token">)</span><span class="punctuation token">;</span>
-<span class="punctuation token">}</span>
-
-browser<span class="punctuation token">.</span>tabs<span class="punctuation token">.</span><span class="function token">query</span><span class="punctuation token">(</span><span class="punctuation token">{</span>currentWindow<span class="punctuation token">:</span> <span class="keyword token">true</span><span class="punctuation token">}</span><span class="punctuation token">,</span> logTabs<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
-</div>
-
-<div>
-<p>Many of the APIs are asynchronous, returning a <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promise</a></code>:</p>
-
-<pre class="brush: js line-numbers language-js"><code class="language-js"><span class="keyword token">function</span> <span class="function token">logCookie</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span> <span class="punctuation token">{</span>
- console<span class="punctuation token">.</span><span class="function token">log</span><span class="punctuation token">(</span>c<span class="punctuation token">)</span><span class="punctuation token">;</span>
-<span class="punctuation token">}</span>
-
-<span class="keyword token">function</span> <span class="function token">logError</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span> <span class="punctuation token">{</span>
- console<span class="punctuation token">.</span><span class="function token">error</span><span class="punctuation token">(</span>e<span class="punctuation token">)</span><span class="punctuation token">;</span>
-<span class="punctuation token">}</span>
-
-<span class="keyword token">var</span> setCookie <span class="operator token">=</span> browser<span class="punctuation token">.</span>cookies<span class="punctuation token">.</span><span class="keyword token">set</span><span class="punctuation token">(</span>
- <span class="punctuation token">{</span>url<span class="punctuation token">:</span> <span class="string token">"https://developer.mozilla.org/"</span><span class="punctuation token">}</span>
-<span class="punctuation token">)</span><span class="punctuation token">;</span>
-setCookie<span class="punctuation token">.</span><span class="function token">then</span><span class="punctuation token">(</span>logCookie<span class="punctuation token">,</span> logError<span class="punctuation token">)</span><span class="punctuation token">;</span></code></pre>
-</div>
-
-<div>
-<p>Note that this is different from Google Chrome's extension system, which uses the <code>chrome</code> namespace instead of <code>browser</code>, and which uses callbacks instead of promises for asynchronous functions. As a porting aid, the Firefox implementation of WebExtensions supports <code>chrome</code> and callbacks as well as <code>browser</code> and promises. Mozilla has also written a polyfill which enables code that uses <code>browser</code> and promises to work unchanged in Chrome: <a class="external external-icon" href="https://github.com/mozilla/webextension-polyfill">https://github.com/mozilla/webextension-polyfill</a>.</p>
-
-<p>Microsoft Edge uses the <code>browser</code> namespace, but doesn't yet support promise-based asynchronous APIs. In Edge, for the time being, asynchronous APIs must use callbacks.</p>
-
-<p>Not all browsers support all the APIs: for the details, see <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser support for JavaScript APIs</a>.</p>
-</div>
-
-<div>{{SubpagesWithSummaries}}</div>
diff --git a/files/id/mozilla/add-ons/webextensions/api/notifications/index.html b/files/id/mozilla/add-ons/webextensions/api/notifications/index.html
deleted file mode 100644
index 76b0e1cfe0..0000000000
--- a/files/id/mozilla/add-ons/webextensions/api/notifications/index.html
+++ /dev/null
@@ -1,63 +0,0 @@
----
-title: notifikasi
-slug: Mozilla/Add-ons/WebExtensions/API/notifications
-tags:
- - API
- - Add-ons
- - Ekstensi
- - Notifikasi
- - WebExtensions
-translation_of: Mozilla/Add-ons/WebExtensions/API/notifications
-original_slug: Mozilla/Add-ons/WebExtensions/API/notifikasi
----
-<div>{{AddonSidebar}}</div>
-
-<p>Tampilkan pemberitahuan kepada pengguna, menggunakan mekanisme pemberitahuan sistem operasi yang mendasarinya. Karena API ini menggunakan mekanisme pemberitahuan sistem operasi, detail tentang bagaimana pemberitahuan muncul dan berperilaku mungkin berbeda sesuai dengan sistem operasi dan pengaturan pengguna.</p>
-
-<p>Untuk menggunakan API ini Anda harus memiliki izin "notifikasi"</p>
-
-<h2 id="Tipe">Tipe</h2>
-
-<dl>
- <dt>{{WebExtAPIRef("notifications.NotificationOptions")}}</dt>
- <dd>Menentukan isi pemberitahuan.</dd>
- <dt>{{WebExtAPIRef("notifications.TemplateType")}}</dt>
- <dd>Jenis pemberitahuan. Misalnya, ini menentukan apakah pemberitahuan dapat memuat gambar.</dd>
-</dl>
-
-<h2 id="Fungsi">Fungsi</h2>
-
-<dl>
- <dt>{{WebExtAPIRef("notifications.clear()")}}</dt>
- <dd>Hapus pemberitahuan khusus, berikan ID-nya.</dd>
- <dt>{{WebExtAPIRef("notifications.create()")}}</dt>
- <dd>Buat dan tampilkan pemberitahuan baru.</dd>
- <dt>{{WebExtAPIRef("notifications.getAll()")}}</dt>
- <dd>Dapatkan semua notifikasi.</dd>
- <dt>{{WebExtAPIRef("notifications.update()")}}</dt>
- <dd>Perbarui notifikasi</dd>
-</dl>
-
-<h2 id="Events">Events</h2>
-
-<dl>
- <dt>{{WebExtAPIRef("notifications.onButtonClicked")}}</dt>
- <dd>Dipecat ketika pengguna mengklik tombol di notifikasi.</dd>
- <dt>{{WebExtAPIRef("notifications.onClicked")}}</dt>
- <dd>Dipecat ketika pengguna mengklik pemberitahuan, tetapi tidak pada tombol.</dd>
- <dt>{{WebExtAPIRef("notifications.onClosed")}}</dt>
- <dd>Dipecat ketika pemberitahuan ditutup, baik oleh sistem atau karena pengguna memecatnya.</dd>
- <dt>{{WebExtAPIRef("notifications.onShown")}}</dt>
- <dd>Dipecat segera setelah pemberitahuan telah ditampilkan.</dd>
-</dl>
-
-<h2 id="Kompatibilitas_peramban">Kompatibilitas peramban</h2>
-
-<p>{{Compat("webextensions.api.notifications")}}</p>
-
-<p>{{WebExtExamples("h2")}}</p>
-
-<div class="note"><strong>Ucapan terima kasih</strong>
-
-<p>API ini berdasarkan pada API Chromium <a href="https://developer.chrome.com/extensions/notifications"><code>chrome.notifications</code></a>.</p>
-</div>
diff --git a/files/id/mozilla/add-ons/webextensions/api/windows/createtype/index.html b/files/id/mozilla/add-ons/webextensions/api/windows/createtype/index.html
deleted file mode 100644
index 569dbc0b97..0000000000
--- a/files/id/mozilla/add-ons/webextensions/api/windows/createtype/index.html
+++ /dev/null
@@ -1,65 +0,0 @@
----
-title: windows.CreateType
-slug: Mozilla/Add-ons/WebExtensions/API/windows/CreateType
-translation_of: Mozilla/Add-ons/WebExtensions/API/windows/CreateType
----
-<div>{{AddonSidebar()}}</div>
-
-<p>Menentukan jenis browser window yang akan dibuat.</p>
-
-<h2 id="Tipe">Tipe</h2>
-
-<p>Nilai dari tipe ini adalah <code>strings</code>. Nilai yang tersedia adalah:</p>
-
-<ul>
- <li><code>"normal"</code></li>
- <li><code>"popup"</code></li>
- <li><code>"panel"</code></li>
- <li><code>"detached_panel"</code></li>
-</ul>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-<p class="hidden">The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> and send us a pull request.</p>
-
-<p>{{Compat("webextensions.api.windows.CreateType")}}</p>
-
-<p>{{WebExtExamples}}</p>
-
-<div class="note"><strong>Acknowledgements</strong>
-
-<p>This API is based on Chromium's <a href="https://developer.chrome.com/extensions/windows#type-CreateType"><code>chrome.windows</code></a> API. This documentation is derived from <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/windows.json"><code>windows.json</code></a> in the Chromium code.</p>
-
-<p>Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.</p>
-</div>
-
-<div class="hidden">
-<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-</pre>
-</div>
diff --git a/files/id/mozilla/add-ons/webextensions/api/windows/index.html b/files/id/mozilla/add-ons/webextensions/api/windows/index.html
deleted file mode 100644
index d0611824cd..0000000000
--- a/files/id/mozilla/add-ons/webextensions/api/windows/index.html
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: windows
-slug: Mozilla/Add-ons/WebExtensions/API/windows
-tags:
- - API
- - Add-ons
- - Extensions
- - Interface
- - NeedsTranslation
- - Non-standard
- - Reference
- - TopicStub
- - WebExtensions
- - Windows
-translation_of: Mozilla/Add-ons/WebExtensions/API/windows
----
-<div>{{AddonSidebar}}</div>
-
-<p>Interact with browser windows. You can use this API to get information about open windows and to open, modify, and close windows. You can also listen for window open, close, and activate events.</p>
-
-<h2 id="Types">Types</h2>
-
-<dl>
- <dt>{{WebExtAPIRef("windows.WindowType")}}</dt>
- <dd>The type of browser window this is.</dd>
- <dt>{{WebExtAPIRef("windows.WindowState")}}</dt>
- <dd>The state of this browser window.</dd>
- <dt>{{WebExtAPIRef("windows.Window")}}</dt>
- <dd>Contains information about a browser window.</dd>
- <dt>{{WebExtAPIRef("windows.CreateType")}}</dt>
- <dd>Specifies the type of browser window to create.</dd>
-</dl>
-
-<h2 id="Properties">Properties</h2>
-
-<dl>
- <dt>{{WebExtAPIRef("windows.WINDOW_ID_NONE")}}</dt>
- <dd>The <code>windowId</code> value that represents the absence of a browser window.</dd>
- <dt>{{WebExtAPIRef("windows.WINDOW_ID_CURRENT")}}</dt>
- <dd>The <code>windowId</code> value that represents the current window.</dd>
-</dl>
-
-<h2 id="Functions">Functions</h2>
-
-<dl>
- <dt>{{WebExtAPIRef("windows.get()")}}</dt>
- <dd>Gets details about a window, given its ID.</dd>
- <dt>{{WebExtAPIRef("windows.getCurrent()")}}</dt>
- <dd>Gets the current window.</dd>
- <dt>{{WebExtAPIRef("windows.getLastFocused()")}}</dt>
- <dd>Gets the window that was most recently focused — typically the window 'on top'.</dd>
- <dt>{{WebExtAPIRef("windows.getAll()")}}</dt>
- <dd>Gets all windows.</dd>
- <dt>{{WebExtAPIRef("windows.create()")}}</dt>
- <dd>
- <p>Creates a new window.</p>
- </dd>
- <dt>{{WebExtAPIRef("windows.update()")}}</dt>
- <dd>Updates the properties of a window. Use this to move, resize, and (un)focus a window, etc.</dd>
- <dt>{{WebExtAPIRef("windows.remove()")}}</dt>
- <dd>Closes a window, and all its tabs.</dd>
-</dl>
-
-<h2 id="Events">Events</h2>
-
-<dl>
- <dt>{{WebExtAPIRef("windows.onCreated")}}</dt>
- <dd>Fired when a window is created.</dd>
- <dt>{{WebExtAPIRef("windows.onRemoved")}}</dt>
- <dd>Fired when a window is closed.</dd>
- <dt>{{WebExtAPIRef("windows.onFocusChanged")}}</dt>
- <dd>Fired when the currently focused window changes.</dd>
-</dl>
-
-<h2 id="Browser_compatibility">Browser compatibility</h2>
-
-<p>{{Compat("webextensions.api.windows")}}</p>
-
-<div class="hidden note">
-<p>The "Chrome incompatibilities" section is included from <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities"> https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities</a> using the <a href="/en-US/docs/Template:WebExtChromeCompat">WebExtChromeCompat</a> macro.</p>
-
-<p>If you need to update this content, edit <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities">https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities</a>, then shift-refresh this page to see your changes.</p>
-</div>
-
-<h3 id="Edge_incompatibilities">Edge incompatibilities</h3>
-
-<p>Promises are not supported in Edge. Use callbacks instead.</p>
-
-<p>{{WebExtExamples("h2")}}</p>
-
-<div class="note"><strong>Acknowledgements</strong>
-
-<p>This API is based on Chromium's <a href="https://developer.chrome.com/extensions/windows"><code>chrome.windows</code></a> API. This documentation is derived from <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/windows.json"><code>windows.json</code></a> in the Chromium code.</p>
-
-<p>Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.</p>
-</div>
-
-<div class="hidden">
-<pre>// Copyright 2015 The Chromium Authors. All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-</pre>
-</div>
diff --git a/files/id/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html b/files/id/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html
deleted file mode 100644
index 96ab65479e..0000000000
--- a/files/id/mozilla/add-ons/webextensions/browser_support_for_javascript_apis/index.html
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Browser support for JavaScript APIs
-slug: Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs
-translation_of: Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs
----
-<div>{{AddonSidebar}}</div>
-
-
-
-<p>{{WebExtAllCompatTables}}</p>
-
-<div class="note"><strong>Acknowledgments</strong>
-
-<p>Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.</p>
-</div>
-
-<h2 id="See_also">See also</h2>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_compatibility_for_manifest.json">Browser compatibility for manifest.json</a></li>
-</ul>
diff --git a/files/id/mozilla/add-ons/webextensions/content_scripts/index.html b/files/id/mozilla/add-ons/webextensions/content_scripts/index.html
deleted file mode 100644
index da5a653034..0000000000
--- a/files/id/mozilla/add-ons/webextensions/content_scripts/index.html
+++ /dev/null
@@ -1,554 +0,0 @@
----
-title: Content scripts
-slug: Mozilla/Add-ons/WebExtensions/Content_scripts
-translation_of: Mozilla/Add-ons/WebExtensions/Content_scripts
----
-<div>{{AddonSidebar}}</div>
-
-<p>A content script is a part of your extension that runs in the context of a particular web page (as opposed to background scripts which are part of the extension, or scripts which are part of the web site itself, such as those loaded using the {{HTMLElement("script")}} element).</p>
-
-<p><a href="/en-US/Add-ons/WebExtensions/Background_scripts">Background scripts</a> can access all the <a href="/en-US/Add-ons/WebExtensions/API">WebExtension JavaScript APIs</a>, but they can't directly access the content of web pages. So if your extension needs to do that, you need content scripts.</p>
-
-<p>Just like the scripts loaded by normal web pages, content scripts can read and modify the content of their pages using the standard DOM APIs.</p>
-
-<p>Content scripts can only access <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#WebExtension_APIs">a small subset of the WebExtension APIs</a>, but they can <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#Communicating_with_background_scripts">communicate with background scripts</a> using a messaging system, and thereby indirectly access the WebExtension APIs.</p>
-
-<div class="note">
-<p>Note that content scripts are blocked on the following domains:</p>
-
-<ul style="display: grid;">
- <li>accounts-static.cdn.mozilla.net</li>
- <li>accounts.firefox.com</li>
- <li>addons.cdn.mozilla.net</li>
- <li>addons.mozilla.org</li>
- <li>api.accounts.firefox.com</li>
- <li>content.cdn.mozilla.net</li>
- <li>content.cdn.mozilla.net</li>
- <li>discovery.addons.mozilla.org</li>
- <li>input.mozilla.org</li>
- <li>install.mozilla.org</li>
- <li>oauth.accounts.firefox.com</li>
- <li>profile.accounts.firefox.com</li>
- <li>support.mozilla.org</li>
- <li>sync.services.mozilla.com</li>
- <li>testpilot.firefox.com</li>
-</ul>
-
-<p>If you try to inject a content script into a page in these domains, it fails and the page logs a <a href="/en-US/docs/Web/HTTP/CSP">CSP</a> error.</p>
-
-<p>Because these restrictions include addons.mozilla.org, users may attempt to use your extension immediately after installation—only to find that it doesn't work! You may want to add an appropriate warning, or an <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/onboarding_upboarding_offboarding_best_practices">onboarding page</a> to move users away from <code>addons.mozilla.org</code>.</p>
-</div>
-
-<div class="note">
-<p>Values added to the global scope of a content script with <code>let foo</code> or <code>window.foo = "bar"</code> may disappear due to bug <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1408996">1408996</a>.</p>
-</div>
-
-<h2 id="Loading_content_scripts">Loading content scripts</h2>
-
-<p>You can load a content script into a web page in one of three ways:</p>
-
-<ol>
- <li>
- <dl>
- <dt>At install time, into pages that match URL patterns.</dt>
- <dd>Using the <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code> key in your <code>manifest.json</code>, you can ask the browser to load a content script whenever the browser loads a page whose URL <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns">matches a given pattern</a>.</dd>
- </dl>
- </li>
- <li>
- <dl>
- <dt>At runtime, into pages that match URL patterns.</dt>
- <dd>Using the {{WebExtAPIRef("contentScripts")}} API, you can ask the browser to load a content script whenever the browser loads a page whose URL <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Match_patterns">matches a given pattern</a>. (This is similar to method 1, <em>except</em> that you can add and remove content scripts at runtime.)</dd>
- </dl>
- </li>
- <li>
- <dl>
- <dt>At runtime, into specific tabs.</dt>
- <dd>Using the <code><a href="/en-US/Add-ons/WebExtensions/API/Tabs/executeScript">tabs.executeScript()</a></code> API, you can load a content script into a specific tab whenever you want. (For example, in response to the user clicking on a <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Browser_action">browser action</a>.)</dd>
- </dl>
- </li>
-</ol>
-
-<p>There is only one global scope <em>per frame, per extension</em>. This means that variables from one content script can directly be accessed by another content script, regardless of how the content script was loaded.</p>
-
-<p>Using methods (1) and (2), you can only load scripts into pages whose URLs can be represented using a <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Match_patterns">match pattern</a>.</p>
-
-<p>Using method (3), you can also load scripts into pages packaged with your extension, but you can't load scripts into privileged browser pages (like "<code>about:debugging</code>" or "<code>about:addons</code>").</p>
-
-<h2 id="Content_script_environment">Content script environment</h2>
-
-<h3 id="DOM_access">DOM access</h3>
-
-<p>Content scripts can access and modify the page's DOM, just like normal page scripts can. They can also see any changes that were made to the DOM by page scripts.</p>
-
-<p>However, content scripts get a "clean" view of the DOM. This means:</p>
-
-<ul>
- <li>Content scripts cannot see JavaScript variables defined by page scripts.</li>
- <li>If a page script redefines a built-in DOM property, the content script sees the original version of the property, not the redefined version.</li>
-</ul>
-
-<p>In Firefox, this behavior is called <a href="/en-US/docs/Mozilla/Tech/Xray_vision">Xray vision</a>.</p>
-
-<p>Consider a web page like this:</p>
-
-<pre class="brush: html notranslate">&lt;!DOCTYPE html&gt;
-&lt;html&gt;
- &lt;head&gt;
- &lt;meta http-equiv="content-type" content="text/html; charset=utf-8" /&gt;
- &lt;/head&gt;
-
- &lt;body&gt;
- &lt;script src="page-scripts/page-script.js"&gt;&lt;/script&gt;
- &lt;/body&gt;
-&lt;/html&gt;</pre>
-
-<p>The script <code>page-script.js</code> does this:</p>
-
-<pre class="brush: js notranslate">// page-script.js
-
-// add a new element to the DOM
-let p = document.createElement("p");
-p.textContent = "This paragraph was added by a page script.";
-p.setAttribute("id", "page-script-para");
-document.body.appendChild(p);
-
-// define a new property on the window
-window.foo = "This global variable was added by a page script";
-
-// redefine the built-in window.confirm() function
-window.confirm = function() {
- alert("The page script has also redefined 'confirm'");
-}</pre>
-
-<p>Now an extension injects a content script into the page:</p>
-
-<pre class="brush: js notranslate">// content-script.js
-
-// can access and modify the DOM
-let pageScriptPara = document.getElementById("page-script-para");
-pageScriptPara.style.backgroundColor = "blue";
-
-// can't see page-script-added properties
-console.log(window.foo); // undefined
-
-// sees the original form of redefined properties
-window.confirm("Are you sure?"); // calls the original window.confirm()</pre>
-
-<p>The same is true in reverse; page scripts cannot see JavaScript properties added by content scripts.</p>
-
-<p>This means that content scripts can rely on DOM properties behaving predictably, without worrying about its variables clashing with variables from the page script.</p>
-
-<p>One practical consequence of this behavior is that a content script doesn't have access to any JavaScript libraries loaded by the page. So, for example, if the page includes jQuery, the content script can't see it.</p>
-
-<p>If a content script needs to use a JavaScript library, then the library itself should be injected as a content script <em>alongside</em> the content script that wants to use it:</p>
-
-<pre class="brush: json notranslate">"content_scripts": [
- {
- "matches": ["*://*.mozilla.org/*"],
- "js": ["jquery.js", "content-script.js"]
- }
-]</pre>
-
-<div class="blockIndicator note">
-<p><strong>Note:</strong> Firefox <em>does</em> provide some APIs that enable content scripts to access JavaScript objects created by page scripts, and to expose their own JavaScript objects to page scripts.</p>
-
-<p>See <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Sharing_objects_with_page_scripts">Sharing objects with page scripts</a> for more details.</p>
-</div>
-
-<h3 id="WebExtension_APIs">WebExtension APIs</h3>
-
-<p>In addition to the standard DOM APIs, content scripts can use the following WebExtension APIs:</p>
-
-<dl>
- <dt>From <code><a href="/en-US/Add-ons/WebExtensions/API/extension">extension</a></code>:</dt>
- <dd>
- <ul>
- <li><code><a href="/en-US/Add-ons/WebExtensions/API/extension#getURL()">getURL()</a></code></li>
- <li><code><a href="/en-US/Add-ons/WebExtensions/API/extension#inIncognitoContext">inIncognitoContext</a></code></li>
- </ul>
- </dd>
- <dt>From <code><a href="/en-US/Add-ons/WebExtensions/API/runtime">runtime</a></code>:</dt>
- <dd>
- <ul>
- <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#connect()">connect()</a></code></li>
- <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#getManifest()">getManifest()</a></code></li>
- <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#getURL()">getURL()</a></code></li>
- <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#onConnect">onConnect</a></code></li>
- <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#onMessage">onMessage</a></code></li>
- <li><code><a href="/en-US/Add-ons/WebExtensions/API/runtime#sendMessage()">sendMessage()</a></code></li>
- </ul>
- </dd>
- <dt>From <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n">i18n</a></code>:</dt>
- <dd>
- <ul>
- <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n/getMessage">getMessage()</a></code></li>
- <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n/getAcceptLanguages">getAcceptLanguages()</a></code></li>
- <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n/getUILanguage">getUILanguage()</a></code></li>
- <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/i18n/detectLanguage">detectLanguage()</a></code></li>
- </ul>
- </dd>
- <dt>From <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus">menus</a></code>:</dt>
- <dd>
- <ul>
- <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement">getTargetElement</a></code></li>
- </ul>
- </dd>
- <dt>Everything from:</dt>
- <dd><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code></dd>
-</dl>
-
-<h3 id="XHR_and_Fetch">XHR and Fetch</h3>
-
-<p>Content scripts can make requests using the normal <code><a href="/en-US/docs/Web/API/XMLHttpRequest">window.XMLHttpRequest</a></code> and <code><a href="/en-US/docs/Web/API/Fetch_API">window.fetch()</a></code> APIs.</p>
-
-<div class="blockIndicator note">
-<p>In Firefox, content script requests (for example, using <code><a href="/en-US/docs/Web/API/Fetch_API/Using_Fetch">fetch()</a></code>) happen in the context of an extension, so you must provide an absolute URL to reference page content.</p>
-
-<p>In Chrome, these requests happen in context of the page, so they are made to a relative URL.  For example, <code>/api</code> is sent to <code>https://<strong>«</strong><var>current page URL</var><strong>»</strong>/api</code>.</p>
-</div>
-
-<p>Content scripts get the same cross-domain privileges as the rest of the extension: so if the extension has requested cross-domain access for a domain using the <code><a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/manifest.json/permissions">permissions</a></code> key in <code>manifest.json</code>, then its content scripts get access that domain as well.</p>
-
-<p>This is accomplished by exposing more privileged XHR and fetch instances in the content script, which has the side-effect of not setting the <code><a href="/en-US/docs/Web/HTTP/Headers/Origin">Origin</a></code> and <code><a href="/en-US/docs/Web/HTTP/Headers/Referer">Referer</a></code> headers like a request from the page itself would; this is often preferable to prevent the request from revealing its cross-origin nature.</p>
-
-<div class="blockIndicator note">
-<p>In Firefox, extensions that need to perform requests that behave as if they were sent by the content itself can use  <code>content.XMLHttpRequest</code> and <code>content.fetch()</code> instead.</p>
-
-<p>For cross-browser extensions, the presence of these methods must be feature-detected.</p>
-</div>
-
-<h2 id="Communicating_with_background_scripts">Communicating with background scripts</h2>
-
-<p>Although content scripts can't directly use most of the WebExtension APIs, they can communicate with the extension's background scripts using the messaging APIs, and can therefore indirectly access all the same APIs that the background scripts can.</p>
-
-<p>There are two basic patterns for communicating between the background scripts and content scripts:</p>
-
-<ul>
- <li>You can send <strong>one-off messages</strong> (with an optional response).</li>
- <li>You can set up a <strong>longer-lived connection between the two sides</strong>, and use that connection to exchange messages.</li>
-</ul>
-
-<h3 id="One-off_messages">One-off messages</h3>
-
-<p>To send one-off messages, with an optional response, you can use the following APIs:</p>
-
-<table class="fullwidth-table standard-table">
- <thead>
- <tr>
- <th scope="row"></th>
- <th scope="col">In content script</th>
- <th scope="col">In background script</th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <th scope="row">Send a message</th>
- <td><code><a href="/en-US/Add-ons/WebExtensions/API/runtime/sendMessage">browser.runtime.sendMessage()</a></code></td>
- <td><code><a href="/en-US/Add-ons/WebExtensions/API/Tabs/sendMessage">browser.tabs.sendMessage()</a></code></td>
- </tr>
- <tr>
- <th scope="row">Receive a message</th>
- <td><code><a href="/en-US/Add-ons/WebExtensions/API/runtime/onMessage">browser.runtime.onMessage</a></code></td>
- <td><code><a href="/en-US/Add-ons/WebExtensions/API/runtime/onMessage">browser.runtime.onMessage</a></code></td>
- </tr>
- </tbody>
-</table>
-
-<p>For example, here's a content script that listens for click events in the web page.</p>
-
-<p>If the click was on a link, it sends a message to the background page with the target URL:</p>
-
-<pre class="brush: js notranslate">// content-script.js
-
-window.addEventListener("click", notifyExtension);
-
-function notifyExtension(e) {
- if (e.target.tagName != "A") {
- return;
- }
- browser.runtime.sendMessage({"url": e.target.href});
-}</pre>
-
-<p>The background script listens for these messages and displays a notification using the <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/notifications">notifications</a></code> API:</p>
-
-<pre class="brush: js notranslate">// background-script.js
-
-browser.runtime.onMessage.addListener(notify);
-
-function notify(message) {
- browser.notifications.create({
- "type": "basic",
- "iconUrl": browser.extension.getURL("link.png"),
- "title": "You clicked a link!",
- "message": message.url
- });
-}
-</pre>
-
-<p>(This example code is lightly adapted from the <a href="https://github.com/mdn/webextensions-examples/tree/master/notify-link-clicks-i18n">notify-link-clicks-i18n</a> example on GitHub.)</p>
-
-<h3 id="Connection-based_messaging">Connection-based messaging</h3>
-
-<p>Sending one-off messages can get cumbersome if you are exchanging a lot of messages between a background script and a content script. So an alternative pattern is to establish a longer-lived connection between the two contexts, and use this connection to exchange messages.</p>
-
-<p>Both sides have a <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port">runtime.Port</a></code> object, which they can use to exchange messages.</p>
-
-<p>To create the connection:</p>
-
-<ul>
- <li>One side listens for connections using <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnect">runtime.onConnect</a></code></li>
- <li>The other side calls:
- <ul>
- <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/connect">tabs.connect()</a></code> (if connecting to a content script)</li>
- <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/connect">runtime.connect()</a></code> (if connecting to a background script)</li>
- </ul>
- </li>
-</ul>
-
-<p>This returns a <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port">runtime.Port</a></code> object.</p>
-
-<ul>
- <li>The <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/onConnect">runtime.onConnect</a></code> listener gets passed its own <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/Port">runtime.Port</a></code> object.</li>
-</ul>
-
-<p>Once each side has a port, the two sides can:</p>
-
-<ul>
- <li>Send messages using <code>runtime.Port.postMessage()</code></li>
- <li>Receive messages using <code>runtime.Port.onMessage()</code></li>
-</ul>
-
-<p>For example, as soon as it loads, the following content script:</p>
-
-<ul>
- <li>Connects to the background script</li>
- <li>Stores the <code>Port</code> in a variable <code>myPort</code></li>
- <li>Listens for messages on <code>myPort</code>  (and logs them)</li>
- <li>Uses <code>myPort</code> to sends messages to the background script when the user clicks the document</li>
-</ul>
-
-<pre class="brush: js notranslate">// content-script.js
-
-let myPort = browser.runtime.connect({name:"port-from-cs"});
-myPort.postMessage({greeting: "hello from content script"});
-
-myPort.onMessage.addListener(function(m) {
- console.log("In content script, received message from background script: ");
- console.log(m.greeting);
-});
-
-document.body.addEventListener("click", function() {
- myPort.postMessage({greeting: "they clicked the page!"});
-});</pre>
-
-<p>The corresponding background script:</p>
-
-<ul>
- <li>Listens for connection attempts from the content script</li>
- <li>When receiving a connection attempt:
- <ul>
- <li>Stores the port in a variable named <code>portFromCS</code></li>
- <li>Sends the content script a message using the port</li>
- <li>Starts listening to messages received on the port, and logs them</li>
- </ul>
- </li>
- <li>Sends messages to the content script, using <code>portFromCS</code>, when the user clicks the extension's browser action</li>
-</ul>
-
-<pre class="brush: js notranslate">// background-script.js
-
-let portFromCS;
-
-function connected(p) {
- portFromCS = p;
- portFromCS.postMessage({greeting: "hi there content script!"});
- portFromCS.onMessage.addListener(function(m) {
- portFromCS.postMessage({greeting: "In background script, received message from content script:" + m.greeting});
- });
-}
-
-browser.runtime.onConnect.addListener(connected);
-
-browser.browserAction.onClicked.addListener(function() {
- portFromCS.postMessage({greeting: "they clicked the button!"});
-});
-</pre>
-
-<h4 id="Multiple_content_scripts">Multiple content scripts</h4>
-
-<p>If you have multiple content scripts communicating at the same time, you might want to store connections to them in an array.</p>
-
-<ul>
-</ul>
-
-<pre class="brush: js notranslate">// background-script.js
-
-let ports = []
-
-function connected(p) {
- ports[p.sender.tab.id] = p
- //...
-}
-
-browser.runtime.onConnect.addListener(connected)
-
-browser.browserAction.onClicked.addListener(function() {
- ports.forEach( p =&gt; {
-        p.postMessage({greeting: "they clicked the button!"})
-    })
-});
-</pre>
-
-<ul>
-</ul>
-
-<h3 id="Choosing_between_one-off_messages_and_connection-based_messaging">Choosing between one-off messages and connection-based messaging</h3>
-
-<p>The choice between one-off and connection-based messaging depends on how your extension expects to make use of messaging.</p>
-
-<p>The recommended best practices are:</p>
-
-<dl>
- <dt>Use one-off messages when…</dt>
- <dd>
- <ul>
- <li>Only one response is expected to a message.</li>
- <li>A small number of scripts listen to receive messages ({{WebExtAPIRef("runtime.onMessage")}} calls).</li>
- </ul>
- </dd>
- <dt>Use connection-based messaging when…</dt>
- <dd>
- <ul>
- <li>Scripts engage in sessions where multiple messages are exchanged.</li>
- <li>The extension need to know about task progress, needs to know if a task is interrupted, or may want to interrupt a task initiated using messaging.</li>
- </ul>
- </dd>
-</dl>
-
-<h2 id="Communicating_with_the_web_page">Communicating with the web page</h2>
-
-<p>By default, content scripts don't get access to objects created by page scripts. However, they can communicate with page scripts using the DOM <code><a href="/en-US/docs/Web/API/Window/postMessage">window.postMessage</a></code> and <code><a href="/en-US/docs/Web/API/EventTarget/addEventListener">window.addEventListener</a></code> APIs.</p>
-
-<p>For example:</p>
-
-<pre class="brush: js notranslate">// page-script.js
-
-let messenger = document.getElementById("from-page-script");
-
-messenger.addEventListener("click", messageContentScript);
-
-function messageContentScript() {
- window.postMessage({
- direction: "from-page-script",
- message: "Message from the page"
- }, "*");
-}
-</pre>
-
-<pre class="brush: js notranslate">// content-script.js
-
-window.addEventListener("message", function(event) {
- if (event.source == window &amp;&amp;
- event.data &amp;&amp;
- event.data.direction == "from-page-script") {
- alert("Content script received message: \"" + event.data.message + "\"");
- }
-});</pre>
-
-<p>For a complete working example of this, <a href="https://mdn.github.io/webextensions-examples/content-script-page-script-messaging.html">visit the demo page on GitHub</a> and follow the instructions.</p>
-
-<div class="warning">
-<p><strong>Be very careful when interacting with untrusted web content in this manner!</strong> Extensions are privileged code which can have powerful capabilities and hostile web pages can easily trick them into accessing those capabilities.</p>
-
-<p>To give a trivial example, suppose the content script code that receives the message does something like this:</p>
-
-<pre class="brush: js example-bad notranslate">// content-script.js
-
-window.addEventListener("message", function(event) {
- if (event.source == window &amp;&amp;
- event.data.direction &amp;&amp;
- event.data.direction == "from-page-script") {
- eval(event.data.message);
- }
-});</pre>
-
-<p>Now the page script can run any code with all the privileges of the content script.</p>
-</div>
-
-<h2 id="Using_eval_in_content_scripts">Using <code>eval()</code> in content scripts</h2>
-
-<dl>
- <dt>In Chrome</dt>
- <dd>{{jsxref("eval")}} always runs code in the context of the <strong>content script</strong>, not in the context of the page.</dd>
- <dt>In Firefox</dt>
- <dd>
- <p>If you call <code>eval()</code>, it runs code in the context of the <strong>content script</strong>.</p>
-
- <p>If you call <code>window.eval()</code>, it runs code in the context of the <strong>page</strong>.</p>
- </dd>
-</dl>
-
-<p>For example, consider a content script like this:</p>
-
-<pre class="brush: js notranslate">// content-script.js
-
-window.eval('window.x = 1;');
-eval('window.y = 2');
-
-console.log(`In content script, window.x: ${window.x}`);
-console.log(`In content script, window.y: ${window.y}`);
-
-window.postMessage({
- message: "check"
-}, "*");</pre>
-
-<p>This code just creates some variables <code><var>x</var></code> and <code><var>y</var></code> using <code>window.eval()</code> and <code>eval()</code>,  logs their values, and then messages the page.</p>
-
-<p>On receiving the message, the page script logs the same variables:</p>
-
-<pre class="brush: js notranslate">window.addEventListener("message", function(event) {
- if (event.source === window &amp;&amp; event.data &amp;&amp; event.data.message === "check") {
- console.log(`In page script, window.x: ${window.x}`);
- console.log(`In page script, window.y: ${window.y}`);
- }
-});</pre>
-
-<dl>
- <dt>In Chrome, this produces output like this:</dt>
- <dd>
- <pre class="notranslate">In content script, window.x: 1
-In content script, window.y: 2
-In page script, window.x: undefined
-In page script, window.y: undefined</pre>
- </dd>
- <dt>In Firefox, this produces output like this:</dt>
- <dd>
- <pre class="notranslate">In content script, window.x: undefined
-In content script, window.y: 2
-In page script, window.x: 1
-In page script, window.y: undefined</pre>
- </dd>
-</dl>
-
-<p>The same applies to <code><a href="/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout">setTimeout()</a></code>, <code><a href="/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval">setInterval()</a></code>, and <code><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function">Function()</a></code>.</p>
-
-<div class="blockIndicator warning">
-<p><strong>Be very careful when running code in the context of the page!</strong> </p>
-
-<p>The page's environment is controlled by potentially malicious web pages, which can redefine objects you interact with to behave in unexpected ways:</p>
-
-<pre class="brush: js example-bad notranslate">// page.js redefines console.log
-
-let original = console.log;
-
-console.log = function() {
-  original(true);
-}
-</pre>
-
-
-<pre class="brush: js example-bad notranslate">// content-script.js calls the redefined version
-
-window.eval('console.log(false)');
-</pre>
-</div>
diff --git a/files/id/mozilla/add-ons/webextensions/index.html b/files/id/mozilla/add-ons/webextensions/index.html
deleted file mode 100644
index a486f8391c..0000000000
--- a/files/id/mozilla/add-ons/webextensions/index.html
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: WebExtensions
-slug: Mozilla/Add-ons/WebExtensions
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Add-ons/WebExtensions
----
-<div>{{AddonSidebar}}</div>
-
-<p>WebExtensions adalah sistem cross-browser untuk mengembangkan browser add-ons. Untuk sebagian besar API tersebut kompatibel dengan <a class="external-icon external" href="https://developer.chrome.com/extensions">extension API</a> yang didukung oleh Google Chrome dan Opera. Ekstensi ditulis untuk browser ini dalam banyak kasus akan berjalan di Firefox atau <a href="https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/extensions/">Microsoft Edge</a> hanya dengan <a href="/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">beberapa perubahan</a>. API ini juga sepenuhnya kompatibel dengan <a href="/en-US/Firefox/Multiprocess_Firefox">multiprocess Firefox</a>.</p>
-
-<p>Kami juga berniat untuk memperpanjang API untuk mendukung kebutuhan para pengembang, jadi jika Anda memiliki ide, kami akan senang mendengar mereka. Anda dapat menghubungi kami <a href="https://mail.mozilla.org/listinfo/dev-addons">dev-addons mailing list</a> atau <a href="irc://irc.mozilla.org/webextensions">#webextensions</a> di <a href="https://wiki.mozilla.org/IRC">IRC</a>.</p>
-
-<div class="row topicpage-table">
-<div class="section">
-<h3 id="Memulai">Memulai</h3>
-
-<ul>
- <li><a href="/en-US/Add-ons/WebExtensions/What_are_WebExtensions">Apa Itu WebExtensions?</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Your_first_WebExtension">WebExtension Pertama Anda</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Your_second_WebExtension">WebExtension Kedua Anda</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomi dari WebExtension</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Examples">Contoh WebExtensions</a></li>
-</ul>
-
-<h3 id="Bagaimana">Bagaimana</h3>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Intercept_HTTP_requests">Menangkap HTTP requests</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Modify_a_web_page">Merubah halaman web</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Add_a_button_to_the_toolbar">Menambah button ke toolbar</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Implement_a_settings_page">Implementasi pengaturan halaman</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboard">Interaksi dengan clipboard</a></li>
- <li>Memanipulasi tab browser</li>
- <li>Akses dan modifikasi bookmarks</li>
- <li>Akses dan modifikasi cookies</li>
-</ul>
-
-<h3 id="Konsep">Konsep</h3>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">Meninjau JavaScript API</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/User_interface_components">Komponen User interface</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Content scripts</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Match_patterns">Match patterns</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Internationalization">Internasionalisasi</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_Security_Policy">Content Security Policy</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Native_messaging">Native messaging</a></li>
-</ul>
-
-<h3 id="Porting">Porting</h3>
-
-<ul>
- <li><a href="/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">Porting  ekstensi Google Chrome</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Porting_a_legacy_Firefox_add-on">Porting legacy Firefox add-on</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Embedded_WebExtensions">Embedded WebExtensions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_the_Add-on_SDK">Perbandingan dengan the Add-on SDK</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Comparison_with_XUL_XPCOM_extensions">Perbandingan dengan XUL/XPCOM extensions</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Chrome_incompatibilities">Chrome incompatibilities</a></li>
-</ul>
-
-<h3 id="Alur_Kerja_Firefox">Alur Kerja Firefox</h3>
-
-<ul>
- <li><a href="/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Pemasangan</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Debugging">Debugging</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">Memulai dengan web-ext</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/web-ext_command_reference">Referensi perintah web-ext</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/WebExtensions_and_the_Add-on_ID">WebExtensions dan Add-on ID</a></li>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">Penerbitan WebExtension anda</a></li>
-</ul>
-</div>
-
-<div class="section">
-<h3 id="Reference">Reference</h3>
-
-<ul>
- <li><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API">JavaScript API overview</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs">Browser compatibility tables for JavaScript APIs</a></li>
-</ul>
-
-<h4 id="JavaScript_APIs">JavaScript APIs</h4>
-
-<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/API") }}</div>
-
-<h4 id="Manifest_keys">Manifest keys</h4>
-
-<div class="twocolumns">{{ ListSubpages ("/en-US/Add-ons/WebExtensions/manifest.json") }}</div>
-</div>
-</div>
diff --git a/files/id/mozilla/add-ons/webextensions/what_are_webextensions/index.html b/files/id/mozilla/add-ons/webextensions/what_are_webextensions/index.html
deleted file mode 100644
index 917d65c274..0000000000
--- a/files/id/mozilla/add-ons/webextensions/what_are_webextensions/index.html
+++ /dev/null
@@ -1,35 +0,0 @@
----
-title: Apa itu WebExtensions?
-slug: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions
-translation_of: Mozilla/Add-ons/WebExtensions/What_are_WebExtensions
-original_slug: Mozilla/Add-ons/WebExtensions/Apa_Itu_WebExtensions
----
-<div>{{AddonSidebar}}</div>
-
-<p><span id="result_box" lang="id"><span title="Add-ons extend and modify the functionality of a web browser.">Add-ons memperluas dan memodifikasi fungsi dari web browser. </span><span title="They are written using standard Web technologies - JavaScript, HTML, and CSS - plus some dedicated JavaScript APIs.">Mereka ditulis menggunakan teknologi Web standar - JavaScript, HTML, dan CSS - ditambah beberapa API JavaScript. </span><span title="Among other things, add-ons can add new features to the browser or change the appearance or content of particular websites.
-
-">Antara lain, add-ons dapat menambahkan fitur baru untuk browser atau mengubah tampilan atau konten dari situs web tertentu.</span></span></p>
-
-<p><span id="result_box" lang="id"><span title="WebExtensions are a cross-browser system for developing browser add-ons.">WebExtensions adalah sistem cross-browser untuk mengembangkan browser add-ons. </span><span title="To a large extent the API is compatible with the extension API supported by Google Chrome and Opera.">Untuk sebagian besar API tersebut kompatibel dengan</span></span> <a class="external external-icon" href="https://developer.chrome.com/extensions">ekstensi API</a> <span id="result_box" lang="id"><span title="To a large extent the API is compatible with the extension API supported by Google Chrome and Opera.">yang didukung oleh Google Chrome dan Opera</span></span>. <span id="result_box" lang="id"><span title="Extensions written for these browsers will in most cases run in Firefox or Microsoft Edge with just a few changes.">Ekstensi ditulis untuk browser ini dalam banyak kasus akan berjalan di Firefox atau Microsoft Edge hanya</span></span> <a href="https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Porting_from_Google_Chrome">dengan beberapa perubahan</a>. <span id="result_box" lang="id"><span title="The API is also fully compatible with multiprocess Firefox.
-
-">API ini juga sepenuhnya kompatibel dengan</span></span> <a href="https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox">multiprocess Firefox</a>.</p>
-
-<p><span id="result_box" lang="id"><span title="We're also intending to extend the APIs to support the needs of add-on developers, so if you have ideas, we'd love to hear them.">Kami juga berniat untuk memperpanjang API untuk mendukung kebutuhan para pengembang, jadi jika Anda memiliki ide, kami akan senang mendengar mereka. </span><span title="You can reach us on the dev-addons mailing list or #webextensions on IRC.
-
-">Anda dapat menghubungi kami</span></span> <a class="external external-icon" href="https://mail.mozilla.org/listinfo/dev-addons">dev-addons mailing list</a> atau <a href="irc://irc.mozilla.org/webextensions">#webextensions</a> di <a class="external external-icon" href="https://wiki.mozilla.org/IRC">IRC</a>.</p>
-
-<p><span id="result_box" lang="id"><span title="Before WebExtensions, you could develop Firefox add-ons using one of three different systems: XUL/XPCOM overlays, bootstrapped extensions, or the Add-on SDK.">Sebelum WebExtensions, Anda bisa mengembangkan Firefox add-ons menggunakan salah satu dari tiga sistem yang berbeda</span></span>: <a href="/en-US/Add-ons/Overlay_Extensions">XUL/XPCOM overlays</a>, <a href="/en-US/docs/Mozilla/Add-ons/Bootstrapped_extensions">bootstrapped extensions</a>, atau <a href="/en-US/docs/Mozilla/Add-ons/SDK">Add-on SDK</a>. <span id="result_box" lang="id"><span title="In the future, WebExtensions will be the recommended way to develop Firefox add-ons, and other systems will be deprecated.
-">Di masa depan, WebExtensions akan menjadi cara yang direkomendasikan untuk mengembangkan add-ons pada </span></span><span lang="id"><span title="In the future, WebExtensions will be the recommended way to develop Firefox add-ons, and other systems will be deprecated.
-">Firefox, dan sistem lainnya akan dihentikan.</span></span></p>
-
-<h2 id="Apa_berikutnya"><span id="result_box" lang="id"><span title="What's next?
-">Apa berikutnya?</span></span></h2>
-
-<ul>
- <li><span id="result_box" lang="id"><span title='To try out some example WebExtensions, see our "webextensions-examples" GitHub repo.
-    '>Untuk mencoba beberapa contoh WebExtensions, lihat</span></span> <a href="https://github.com/mdn/webextensions-examples">"webextensions-examples" GitHub repo</a>.</li>
- <li><span id="result_box" lang="id"><span title="To learn about the structure of a WebExtension, see Anatomy of a WebExtension.
-    ">Untuk mempelajari tentang struktur WebExtension, lihat</span></span> <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">Anatomy of a WebExtension</a>.</li>
- <li><span id="result_box" lang="id"><span title="To learn about the structure of a WebExtension, see Anatomy of a WebExtension.
-    "> </span><span title="To walk through the development of a simple WebExtension, see Your first WebExtension.">Berjalan melalui pengembangan WebExtension sederhana</span></span>, lihat <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Your_first_WebExtension">Your first WebExtension</a>.</li>
-</ul>
diff --git a/files/id/mozilla/add-ons/webextensions/your_first_webextension/index.html b/files/id/mozilla/add-ons/webextensions/your_first_webextension/index.html
deleted file mode 100644
index 27204f8504..0000000000
--- a/files/id/mozilla/add-ons/webextensions/your_first_webextension/index.html
+++ /dev/null
@@ -1,153 +0,0 @@
----
-title: WebExtensions Pertama Anda
-slug: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension
-translation_of: Mozilla/Add-ons/WebExtensions/Your_first_WebExtension
----
-<div>{{AddonSidebar}}</div>
-
-<p><span id="result_box" lang="id"><span>Dalam</span> <span>artikel ini kita</span> <span>akan</span> mulai <span>menciptakan</span> <span>WebExtension</span> <span>untuk</span> <span>Firefox</span><span>,</span> <span>dari awal sampai akhir</span><span>.</span> <span>add</span><span>-on</span> ini <span>hanya menambahkan</span> <span>garis</span> <span>merah untuk</span> <span>setiap</span> <span>halaman</span> <span>yang dimuat dari</span> <span>"</span><span>mozilla.org</span><span>"</span> <span>atau</span> <span>subdomainnya</span><span>.</span></span></p>
-
-<p><span class="short_text" id="result_box" lang="id"><span>Kode sumber untuk</span> <span>contoh ini</span> <span>ada pada</span> <span>GitHub</span></span>: <a href="https://github.com/mdn/webextensions-examples/tree/master/borderify">https://github.com/mdn/webextensions-examples/tree/master/borderify</a>.</p>
-
-<p>Pertama, anda membutuhkan Firefox versi 45 atau lebih baru.</p>
-
-<h2 id="Menulis_sebuah_WebExtension">Menulis sebuah WebExtension</h2>
-
-<p>Buat sebuah directory baru dan arahkan kesana:</p>
-
-<pre class="brush: bash">mkdir borderify
-cd borderify</pre>
-
-<h3 id="manifest.json">manifest.json</h3>
-
-<p>Sekarang buat file baru dengan nama "manifest.json" di dalam folder "borderify". Berikan kode seperti berikut:</p>
-
-<pre class="brush: json">{
-
- "manifest_version": 2,
- "name": "Borderify",
- "version": "1.0",
-
- "description": "Adds a red border to all webpages matching mozilla.org.",
-
- "icons": {
- "48": "icons/border-48.png"
- },
-
- "content_scripts": [
- {
- "matches": ["*://*.mozilla.org/*"],
- "js": ["borderify.js"]
- }
- ]
-
-}</pre>
-
-<ul>
- <li>Tiga key pertama: <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/manifest_version">manifest_version</a></code>, <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/name">name</a></code>, dan <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/version">version</a></code>, <span id="result_box" lang="id"><span>adalah wajib</span> <span>dan mengandung</span> <span>metadata</span> <span>dasar</span> <span>untuk</span> <span>add</span><span>-on</span></span>.</li>
- <li><code><a href="/en-US/Add-ons/WebExtensions/manifest.json/description">description</a></code> <span id="result_box" lang="id"><span>adalah</span> <span>opsional</span><span>,</span> <span>tetapi dianjurkan</span><span>:</span> <span>ini akan ditampilkan</span> <span>dalam</span> <span>Add-ons</span> Manager</span>.</li>
- <li><code><a href="/en-US/Add-ons/WebExtensions/manifest.json/icons">icons</a></code> <span id="result_box" lang="id"><span>adalah opsional</span><span>,</span> <span>tetapi</span> <span>dianjurkan</span><span>:</span> <span>memungkinkan</span> <span>Anda untuk menentukan</span> <span>sebuah ikon</span> <span>untuk</span> <span>add-on</span><span>,</span> <span>yang akan ditampilkan</span> <span>dalam</span></span> Add-ons Manager.</li>
-</ul>
-
-<p><span class="short_text" id="result_box" lang="id"><span>Kunci </span></span><span class="short_text" lang="id"><span>yang paling menarik</span> <span> di sini adalah</span></span> <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/content_scripts">content_scripts</a></code>, <span id="result_box" lang="id"><span>yang memberitahu</span> <span>Firefox</span> <span>untuk memuat</span></span> script ke Halaman web dengan URL yang cocok dengan pola tertentu. Dalam hal ini, Kita akan meminta Firefox untuk memuat script yang di disebut "borderify.js" ke semua halaman HTTP atau HTTPS yang disajikan dari "mozilla.org" atau subdomainnya.</p>
-
-<ul>
- <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Learn more about content scripts.</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Match_patterns">Learn more about match patterns</a>.</li>
-</ul>
-
-<div class="note">
-<p>Jika anda menggunakan Firefox versi 48 kebawah, <span id="result_box" lang="id"><span>Anda</span> <span>juga</span> <span>akan</span> <span>memerlukan key</span> <span>tambahan yang disebut</span></span> <code><a href="/en-US/Add-ons/WebExtensions/manifest.json/applications">applications</a></code>:</p>
-
-<pre class="brush: json">"applications": {
- "gecko": {
- "id": "borderify@example.com",
- "strict_min_version": "42.0",
- "strict_max_version": "50.*",
- "update_url": "https://example.com/updates.json"
- }
-}</pre>
-</div>
-
-<h3 id="iconsborder-48.png">icons/border-48.png</h3>
-
-<p>Add-on <span id="result_box" lang="id"><span>harus memiliki</span> <span>ikon</span><span>.</span> <span>Ini</span> <span>akan ditampilkan</span> <span>di sebelah</span> <span>list add-on</span> <span>di</span></span> Add-ons Manager. Manifest.json menjanjikan <span id="result_box" lang="id"><span>bahwa kita akan memiliki</span> <span>ikon di</span></span> "icons/border-48.png".</p>
-
-<p>Membuat sebuah folder "ikon" pada folder "borderify". Simpan ikon dengan nama "border-48.png".  Anda dapat menggunakan <a href="https://github.com/mdn/webextensions-examples/blob/master/borderify/icons/border-48.png">salah satu dari contoh kami</a>, <span id="result_box" lang="id"><span>yang</span> <span>diambil dari</span> <span>ikon</span></span> Google Material Design iconset, <span id="result_box" lang="id"><span>dan</span> <span>digunakan di bawah</span> <span>ketentuan lisensi</span></span> <a href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution-ShareAlike</a>.</p>
-
-<p><span id="result_box" lang="id"><span>Jika</span> <span>Anda memilih</span> <span>untuk menggunakan</span> <span>ikon</span> <span>Anda sendiri</span><span>,</span> <span>itu</span> <span>harus</span> <span>berukuran</span> <span>48x48 pixel</span><span>.</span> <span>Anda</span> <span>juga bisa menggunakan</span> <span>ikon</span> <span>96x96</span> <span>pixel</span><span>,</span> <span>untuk</span> <span>display resolusi tinggi</span><span>,</span> <span>dan jika</span> <span>Anda</span> <span>melakukan hal ini</span> <span>akan</span> <span>ditentukan</span> <span>property</span> <span>96</span> <span>milik</span> <span>ikon</span> <span>objek</span> <span>di</span> <span>manifest.json</span></span>:</p>
-
-<pre class="brush: json">"icons": {
- "48": "icons/border-48.png",
- "96": "icons/border-96.png"
-}</pre>
-
-<p><span id="result_box" lang="id"><span>Atau, Anda bisa</span> <span>menggunakan</span> <span>file</span> <span>SVG</span><span>,</span> <span>dan itu</span> <span>akan</span> <span>ditingkatkan</span> <span>dengan benar</span><span>.</span></span></p>
-
-<ul>
- <li><a href="/en-US/Add-ons/WebExtensions/manifest.json/icons">Learn more about specifying icons.</a></li>
-</ul>
-
-<h3 id="borderify.js">borderify.js</h3>
-
-<p><span id="result_box" lang="id"><span>Akhirnya</span><span>,</span> <span>buat file dengan nama</span> <span>"</span><span>borderify.js</span><span>"</span> pada folder <span>"</span><span>borderify</span><span>"</span><span>.</span> Berikan kode seperti berikut<span>:</span></span></p>
-
-<pre class="brush: js">document.body.style.border = "5px solid red";</pre>
-
-<p><span id="result_box" lang="id"><span>Script ini</span> <span>akan dimuat</span> <span>ke dalam</span> <span>halaman</span> <span>yang cocok dengan</span> <span>pola yang diberikan</span> <span>dalam key</span> <span>content_scripts pada</span> <span>manifest.json</span><span>.</span> <span>Script</span> <span>memiliki akses langsung ke</span> <span>dokumen</span><span>,</span> <span>seperti</span> <span>script</span> <span>dimuat oleh</span> <span>halaman itu sendiri</span></span>.</p>
-
-<ul>
- <li><a href="/en-US/Add-ons/WebExtensions/Content_scripts">Learn more about content scripts.</a></li>
-</ul>
-
-<h2 id="Trying_it_out">Trying it out</h2>
-
-<p><span id="result_box" lang="id"><span>Pertama</span><span>,</span> <span>periksa</span> <span>bahwa Anda memiliki</span> <span>file</span> <span>yang tepat</span> <span>di tempat yang tepat</span><span>:</span></span></p>
-
-<pre>borderify/
- icons/
- border-48.png
- borderify.js
- manifest.json</pre>
-
-<h3 id="Pemasangan">Pemasangan</h3>
-
-<p>Buka "about:debugging" di Firefox, klik "Load Temporary Add-on" dan pilih file pada folder add-on anda:</p>
-
-<p>{{EmbedYouTube("cer9EUKegG4")}}</p>
-
-<p>Add-on <span id="result_box" lang="id"><span class="alt-edited">kini akan</span> <span>diinstal</span><span>,</span> <span>dan</span> <span>akan</span> <span class="alt-edited">tetap sampai</span> <span>Anda me-restart</span> <span>Firefox</span></span>.</p>
-
-<p><span id="result_box" lang="id"><span>Atau, Anda dapat</span> <span>menjalankan</span> <span>WebExtension</span> <span>dari baris perintah</span> <span>menggunakan </span></span><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Getting_started_with_web-ext">web-ext</a> tool.</p>
-
-<h3 id="Testing">Testing</h3>
-
-<p><span id="result_box" lang="id"><span>Sekarang</span> <span>coba kunjungi</span> <span>halaman</span> <span>dengan domain</span> <span>"</span><span>mozilla.org</span><span>"</span><span>,</span> <span>dan</span> <span>Anda akan melihat</span> <span>garis merah</span> <span>melingkar pada</span> <span>halaman:</span></span></p>
-
-<p>{{EmbedYouTube("rxBQl2Z9IBQ")}}</p>
-
-<div class="note">
-<p><span id="result_box" lang="id"><span>Jangan</span> <span>mencobanya pada</span> <span>addons.mozilla.org</span><span>!</span> <span>skrip</span> <span>konten</span> <span>saat ini</span> <span>diblokir pada</span> <span>domain tersebut.</span></span>.</p>
-</div>
-
-<p><span id="result_box" lang="id"><span>Coba</span> <span>bereksperimen</span> <span>sedikit</span><span>.</span> <span>Edit</span> script <span>konten</span> <span>untuk mengubah</span> <span>warna garis</span><span>,</span> <span>atau melakukan</span> <span>sesuatu yang lain untuk</span> <span>konten halaman</span><span>.</span> <span>Simpan</span> <span>script konten</span><span>,</span> <span>kemudian muat kembali</span> <span>file</span> <span>add</span><span>-on</span> <span>dengan mengklik</span> <span>button "</span><span>Reload</span><span>" pada</span> about<span>:</span><span>debugging</span><span>.</span> <span>Anda</span> <span>dapat</span> <span>melihat perubahan</span> <span>segera.</span></span></p>
-
-<p>{{EmbedYouTube("NuajE60jfGY")}}</p>
-
-<ul>
- <li><a href="/en-US/Add-ons/WebExtensions/Temporary_Installation_in_Firefox">Learn more about loading add-ons</a></li>
-</ul>
-
-<h2 id="Packaging_dan_publishing">Packaging dan publishing</h2>
-
-<p><span id="result_box" lang="id"><span>Bagi orang lain yang akan untuk</span> <span>menggunakan</span> <span>add</span><span>-on</span><span>, Anda</span> <span>perlu memaketkan</span> <span>itu</span> <span>dan</span> <span>mengirimkannya ke</span> <span>Mozilla</span> <span>untuk</span> <span>penandaan</span><span>.</span> <span>Untuk mempelajari lebih lanjut</span> <span>tentang itu</span><span>, lihat</span></span> <a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/Publishing_your_WebExtension">"Publishing your WebExtension"</a>.</p>
-
-<h2 id="Apa_berikutnya"><span class="short_text" id="result_box" lang="id"><span>Apa berikutnya?</span></span></h2>
-
-<p><span id="result_box" lang="id"><span>Sekarang</span> <span>Anda punya</span> <span>ide dari</span> <span>proses pengembangan</span> <span>WebExtension</span> <span>untuk</span> <span>Firefox</span><span>, coba:</span></span></p>
-
-<ul>
- <li><a href="/en-US/Add-ons/WebExtensions/Anatomy_of_a_WebExtension">reading more about the anatomy of WebExtensions</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/Your_second_WebExtension">writing a more complex WebExtension</a></li>
- <li><a href="/en-US/Add-ons/WebExtensions/API">reading about the JavaScript APIs available to WebExtensions.</a></li>
-</ul>
diff --git a/files/id/mozilla/firefox/index.html b/files/id/mozilla/firefox/index.html
deleted file mode 100644
index cf3e7acc66..0000000000
--- a/files/id/mozilla/firefox/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: Firefox
-slug: Mozilla/Firefox
-tags:
- - Firefox
- - Landing
- - Mozilla
-translation_of: Mozilla/Firefox
----
-<div>{{FirefoxSidebar}}</div>
-
-<p><span class="short_text" id="result_box" lang="id"><span class="hps"><a href="https://www.mozilla.org/firefox/">Firefox</a></span> <span class="hps">adalah peramban</span> <span class="hps">populer</span> milik <span class="hps">Mozilla</span></span>, tersedia untuk berbagai platforms, termasuk Windows, Mac OS X dan Linux pada desktop dan perangkat mobile Android. Dengan kompatibilitas luas, teknologi Web terbaru dan alat pengembangan yang kuat, <span id="result_box" lang="id"><span class="hps">Firefox</span> <span class="hps">adalah yang terbesar</span> <span class="hps">untuk </span><span class="hps">pengguna </span><span class="hps">dan pengembang</span> <span class="hps">web</span></span>.</p>
-
-<p>Firefox adalah sebuah proyek open sorce, <span id="result_box" lang="id"><span class="hps">sebagian besar</span> <span class="hps">kode ini</span> <span class="hps">disumbangkan oleh</span></span> komunitas besar relawan kami. <span id="result_box" lang="id"><span class="hps">Di sini Anda</span> <span class="hps">akan</span> <span class="hps">belajar cara</span> <span class="hps">untuk berkontribusi pada</span> <span class="hps">proyek</span> <span class="hps">Firefox</span> <span class="hps">dan Anda juga</span> <span class="hps">akan menemukan link ke</span> <span class="hps">informasi tentang</span> <span class="hps">pembuatan</span> <span id="result_box" lang="id"><span class="hps">add-ons</span></span> <span class="hps">Firefox</span></span>, memakai alat pengembang Firefox, dan tugas lainnya.</p>
-
-<div class="summary">
-<p><span class="short_text" id="result_box" lang="id"><span class="hps">Pelajari cara membuat</span> <span class="hps">add</span><span class="atn">-</span><span>ons</span> <span class="hps">Firefox</span></span>, <span id="result_box" lang="id"><span class="hps">cara mengembangkan</span> <span class="hps">dan membuat</span> <span class="hps">Firefox</span> <span class="hps">sendiri</span></span>, dan cara <span id="result_box" lang="id"><span class="hps">internal dari</span> <span class="hps">Firefox</span> <span class="hps">dan</span> <span class="hps">subproyek-nya</span> <span class="hps">bekerja</span></span>.</p>
-</div>
-
-<ul class="card-grid">
- <li><span>Catatan rilis pengembang</span>
-
- <p><a href="https://developer.mozilla.org/en-US/Firefox/Releases">Catatan rilis pengembang terfokus</a>; <span id="result_box" lang="id"><span class="hps">mempelajari </span><span class="hps">kemampuan baru untuk</span><span class="hps"> situs</span> <span class="hps">web</span> <span class="atn hps">dan add-</span><span>ons</span> <span class="hps">di</span> <span class="hps">setiap versi</span> <span class="hps">Firefox</span></span>.</p>
- </li>
- <li><span>Documentasi proyek</span>
- <p><span id="result_box" lang="id"><span class="hps">Dapatkan</span> <span class="hps">informasi rinci</span> <span class="hps">tentang <a href="https://developer.mozilla.org/en-US/docs/Mozilla">internal</a></span><a href="https://developer.mozilla.org/en-US/docs/Mozilla"> <span class="hps">Firefox</span></a> <span class="hps">dan</span> <span class="hps"><em>build system</em>-nya</span></span>, <span id="result_box" lang="id"><span class="hps">sehingga Anda bisa</span> <span class="hps">menemukan jalan di sekitar</span><span class="hps"> kode</span></span>.</p>
- </li>
- <li><span>Panduan pengembang</span>
- <p><a href="https://developer.mozilla.org/en-US/docs/Developer_Guide">Panduan pengembang</a> kami <span id="result_box" lang="id"><span class="hps">memberi</span> <span class="hps">rincian tentang bagaimana</span><span class="hps"> mendapatkan</span> <span class="hps">dan</span> <span class="hps">mengkompilasi source code </span></span>Firefox, <span id="result_box" lang="id"><span class="hps">bagaimana menemukan</span> <span class="hps">jalan anda</span></span>, dan <span class="short_text" id="result_box" lang="id"><span class="hps">bagaimana</span> <span class="hps">berkontribusi pada proyek</span></span>.</p>
- </li>
-</ul>
-
-<h2 id="sect1"></h2>
-
-<h2 id="Channel_Firefox">Channel Firefox</h2>
-
-<p>Firefox tersedia dalam lima <strong>channel</strong>.</p>
-
-<h3 id="Firefox_Nightly">Firefox Nightly</h3>
-
-<p>Each night we build Firefox from the latest code in <a href="/en-US/docs/mozilla-central">mozilla-central</a>. These builds are for Firefox developers or those who want to try out the very latest cutting edge features while they're still under active development.</p>
-
-<p><a href="https://nightly.mozilla.org/" 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;">Download Firefox Nightly</a></p>
-
-<h3 id="Firefox_Developer_Edition">Firefox Developer Edition</h3>
-
-<p>This is a version of Firefox tailored for developers. Every six weeks, we take the features in Firefox Nightly that are stable enough and create a new version of Firefox Developer Edition. We also add some extra features for developers that are only available in this channel.</p>
-
-<p><a href="/en-US/Firefox/Developer_Edition">Learn more about Firefox Developer Edition</a>.</p>
-
-<p><a href="https://www.mozilla.org/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;">Download Firefox Developer Edition</a></p>
-
-<h3 id="Firefox_Beta">Firefox Beta</h3>
-
-<p>After spending six weeks in Firefox Developer Edition, we take the features that are stable enough, and create a new version of Firefox Beta. Firefox Beta builds are for Firefox enthusiasts to test what's destined to become the next released Firefox version.</p>
-
-<p><a href="https://www.mozilla.org/firefox/channel/#beta" 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;">Download Firefox Beta</a></p>
-
-<h3 id="Firefox">Firefox</h3>
-
-<p>After stabilizing for another six weeks in Beta, we're ready to ship the new features to hundreds of millions of users in a new release version of Firefox.</p>
-
-<p><a href="https://www.mozilla.org/firefox/channel/#firefox" 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;">Download Firefox</a></p>
-
-<h3 id="Firefox_Extended_Support_Release_(ESR)">Firefox Extended Support Release (ESR)</h3>
-
-<p>Firefox ESR is the long-term support edition of Firefox for desktop for use by organizations including schools, universities, businesses and others who need extended support for mass deployments.</p>
-
-<p><a href="/en-US/Firefox/Firefox_ESR">Learn more about Firefox Extended Support Release</a>.</p>
-
-<p><a href="https://www.mozilla.org/firefox/organizations/all/" 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;">Download Firefox ESR</a></p>
-
-<h2 id="Firefox_profiles">Firefox profiles</h2>
-
-<p>If you find yourself using multiple Firefox channels—or just multiple configurations—on a regular basis, you should read how to <a href="/en-US/docs/Mozilla/Firefox/Multiple_profiles">use multiple Firefox profiles</a> by turning Firefox's Profile Manager and other profile management tools to your advantage.</p>
diff --git a/files/id/mozilla/firefox/releases/index.html b/files/id/mozilla/firefox/releases/index.html
deleted file mode 100644
index af6a0b7c7a..0000000000
--- a/files/id/mozilla/firefox/releases/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: Firefox developer release notes
-slug: Mozilla/Firefox/Releases
-tags:
- - Firefox
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla/Firefox/Releases
----
-<div>{{FirefoxSidebar}}</div><p>Dibawah ini anda bisa menemukan link ke catatan rilis pengembang untuk setiap rilis Firefox. Catatan yang ditulis dengan cinta ini memberikan detail tentang fitur dan API yang ditambahkan dan di tingkatkan serta bug yang disingkirkan pada setiap versi Firefox. Semuanya ditulis untuk memberikan informasi yang diperlukan oleh pengembang. Terima kasih.</p>
-
-<div class="multiColumnList">{{ListSubpages("",1,1,1)}}</div>
diff --git a/files/id/mozilla/index.html b/files/id/mozilla/index.html
deleted file mode 100644
index ecbabce71c..0000000000
--- a/files/id/mozilla/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
----
-title: Mozilla
-slug: Mozilla
-tags:
- - NeedsTranslation
- - TopicStub
-translation_of: Mozilla
----
-<div>
- {{draft}}</div>
-<p>This will soon be an awesome landing page for Mozilla internals. For now, it's not.</p>
-<div>
- {{LandingPageListSubpages}}</div>