aboutsummaryrefslogtreecommitdiff
path: root/files/pt-br/mozilla/firefox
diff options
context:
space:
mode:
Diffstat (limited to 'files/pt-br/mozilla/firefox')
-rw-r--r--files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html34
-rw-r--r--files/pt-br/mozilla/firefox/developer_edition/index.html57
-rw-r--r--files/pt-br/mozilla/firefox/developer_edition/revertendo/index.html25
-rw-r--r--files/pt-br/mozilla/firefox/index.html72
-rw-r--r--files/pt-br/mozilla/firefox/multiple_profiles/index.html244
-rw-r--r--files/pt-br/mozilla/firefox/multiprocess_firefox/index.html75
-rw-r--r--files/pt-br/mozilla/firefox/multiprocess_firefox/motivacao/index.html44
-rw-r--r--files/pt-br/mozilla/firefox/multiprocess_firefox/which_uris_load_where/index.html59
-rw-r--r--files/pt-br/mozilla/firefox/novas_funcionalidades/index.html469
-rw-r--r--files/pt-br/mozilla/firefox/performance_best_practices_for_firefox_fe_engineers/index.html328
-rw-r--r--files/pt-br/mozilla/firefox/privacidade/index.html16
-rw-r--r--files/pt-br/mozilla/firefox/privacidade/proteção_de_rastreamento/index.html84
-rw-r--r--files/pt-br/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html44
-rw-r--r--files/pt-br/mozilla/firefox/privacy/storage_access_policy/errors/index.html24
-rw-r--r--files/pt-br/mozilla/firefox/privacy/storage_access_policy/index.html263
-rw-r--r--files/pt-br/mozilla/firefox/releases/1.5/index.html106
-rw-r--r--files/pt-br/mozilla/firefox/releases/3/index.html273
-rw-r--r--files/pt-br/mozilla/firefox/releases/3/zoom_de_página_inteira/index.html45
-rw-r--r--files/pt-br/mozilla/firefox/releases/49/index.html352
-rw-r--r--files/pt-br/mozilla/firefox/releases/50/index.html150
-rw-r--r--files/pt-br/mozilla/firefox/releases/57/index.html301
-rw-r--r--files/pt-br/mozilla/firefox/releases/65/index.html110
-rw-r--r--files/pt-br/mozilla/firefox/releases/index.html8
23 files changed, 3183 insertions, 0 deletions
diff --git a/files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html b/files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html
new file mode 100644
index 0000000000..7f50b8a9c2
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/building_firefox_with_rust_code/index.html
@@ -0,0 +1,34 @@
+---
+title: Building Firefox with Rust code
+slug: Mozilla/Firefox/Building_Firefox_with_Rust_code
+translation_of: Archive/Mozilla/Firefox/Building_Firefox_with_Rust_code
+---
+<div>{{FirefoxSidebar}}</div><p>Em maio de 2015, foi lançada a primeira versão 1.0 estável da <a href="http://www.rust-lang.org/">linguagem de programação Rust</a>, e vários experimentos para escrever partes do Gecko em Rust iniciaram. Esta página é um simples guia para pessoas trabalhando nesta área.</p>
+
+<h2 id="Adicionando_código_Rust">Adicionando código Rust</h2>
+
+<p>O suporte básico para buildar códigos em Rust foi lançado no <a class="bz_bug_link
+ bz_status_RESOLVED bz_closed" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1161339" title="RESOLVED FIXED - Support rust files in moz.build SOURCES">bug 1161339</a>. Se você possui <em>rustc</em> no seu path, você pode adicionar arquivos .rs ao SOURCES em moz.build. Então adicione</p>
+
+<pre>ac_add_options --enable-rust</pre>
+
+<p>ao seu <a href="/en-US/docs/Configuring_Build_Options">mozconfig</a> e provavelmente funcionará.</p>
+
+<p>A biblioteca padrão do Rust utiliza armazenamento thread-local, que não é suportado no MacOS X 2.6, então se você está buildando em um Mac, você também precisará disso:</p>
+
+<pre>ac_add_options --enable-macos-target=10.7</pre>
+
+<p>Alternativamente, você pode compilar com um conjunto de ferramentas costumizadas com -<code>-disable-elf-tls</code>. Veja <a class="bz_bug_link
+ bz_status_NEW " href="https://bugzilla.mozilla.org/show_bug.cgi?id=1164109" title="NEW - rust code fails to link on macosx because of thread-local storage">bug 1164109</a> para detalhes.</p>
+
+<p>Graças as limitações do <em>cargo</em> e do sistema de build do Firefox, atualmente nós buildamos uma biblioteca estática stand-alone para cada arquivo rust listado em SOURCES. Você precisa portanto listar apenas os arquivos rust de alto nível. Tudo precisa ser um único <em>crate</em>, como uma compilação manual unificada. O compilador rust irá pesquisar por módulos interiores pelo nome do arquivo-fonte, mas referências <em>crate</em> externas não serão resolvidas.</p>
+
+<p>Veja o <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1135640">bug 1135640</a> ('oxidation') para monitoramento global.</p>
+
+<h2 id="Testando_código_Rust">Testando código Rust</h2>
+
+<p>There's a simple linkage teste unitários in the tree. Você pode utilizá-lo para verificar se Rust está habilitado e funcionando com your build setup.</p>
+
+<pre>./mach gtest rust.*</pre>
+
+<p>Look for the <strong>rust.CallFromCpp</strong> test to pass, along with any others.</p>
diff --git a/files/pt-br/mozilla/firefox/developer_edition/index.html b/files/pt-br/mozilla/firefox/developer_edition/index.html
new file mode 100644
index 0000000000..5ae8204f4c
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/developer_edition/index.html
@@ -0,0 +1,57 @@
+---
+title: Edição do Programador
+slug: Mozilla/Firefox/Developer_Edition
+tags:
+ - Firefox
+ - Iniciante
+ - Landing
+translation_of: Mozilla/Firefox/Developer_Edition
+---
+<div>{{FirefoxSidebar}}</div>
+
+<p style="text-align: center;"><img alt="" src="https://mdn.mozillademos.org/files/9143/firefox-dev-ed_logo-only_1024.png" style="display: block; height: 256px; margin-left: auto; margin-right: auto; width: 256px;">Uma versão do Firefox sob medida para desenvolvedores web.</p>
+
+<p><a href="https://www.mozilla.org/pt-BR/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>
+
+<hr>
+<div class="column-container">
+<div class="column-half">
+<h3 id="Os_recursos_mais_recentes_do_Firefox"><strong>Os recursos mais recentes do Firefox</strong></h3>
+
+<p>O Firefox Developer Edition substitui o canal Aurora no <a href="https://wiki.mozilla.org/Release_Management/Release_Process">Processo de lançamento do Firefox</a>. Como no Aurora, os recursos vão para o Developer Edition a cada seis semanas, depois de serem estabilizados no Nightly builds.</p>
+
+<p>Ao usar o Developer Edition, você ganha acesso a ferramentas e recursos da plataforma pelo menos 12 semanas antes de chegar ao principal canal de lançamento do Firefox.</p>
+
+<p><a href="/en-US/Firefox/Releases/69">Descubra o que há de novo na Edição do Programador.</a></p>
+</div>
+
+<div class="column-half">
+<h3 id="Um_tema_distinto"><strong>Um tema distinto</strong></h3>
+
+<p>Incluindo acesso mais rápido às ferramentas de desenvolvimento.</p>
+
+<h3 id="Ferramentas_de_desenvolvimento_experimentais"><strong>Ferramentas de desenvolvimento experimentais</strong></h3>
+
+<p><span id="result_box" lang="pt"><span>Vamos</span> <span>incluir ferramentas</span> <span>experimentais</span> <span>que ainda não</span> <span class="alt-edited">estão prontas para liberação</span><span>.</span></span></p>
+
+<p>Por exemplo, o Developer Edition inclui o <a href="/en-US/docs/Tools/Valence">Valence add-on</a>, <span class="short_text" id="result_box" lang="pt"><span>que permite que você</span> <span>conecte o</span></span> <a href="/en-US/docs/Tools">Firefox developer tools</a> a<span id="result_box" lang="pt"> <span>outros navegadores como o</span> <span>Chrome</span> <span>no Android e</span> o <span>Safari</span> <span>no iOS</span></span>.</p>
+</div>
+</div>
+
+<div class="column-container">
+<div class="column-half">
+<h3 id="Um_perfil_separado"><strong>Um perfil separado</strong></h3>
+
+<p>Firefox Developer Edition utiliza um perfil separado de outras versões do Firefox instalado em sua máquina. Isto significa que você pode facilmente executar o Developer Edition ao lado de seu lançamento ou versão beta do Firefox.</p>
+
+<div class="note">
+<p><strong>Note:</strong> <span id="result_box" lang="pt"><span>Isto significa que a</span> <span>primeira vez que você</span> <span>iniciar o</span> <span>Developer Edition</span><span>, você verá</span> <span>um navegador</span> <span>completamente</span> <span class="alt-edited">não personalizado</span><span>,</span> <span>sem complementos</span><span>, bookmarks</span> <span>ou histórico</span></span>. Você pode <a href="https://support.mozilla.org/en-US/kb/how-do-i-set-up-firefox-sync">usar Firefox Sync</a> <span id="result_box" lang="pt"><span>se você quer</span> <span>unificar</span> <span>suas</span> <span>configurações entre o</span> <span>Developer Edition</span> <span>e</span> <span>outras edições do</span> <span>Firefox</span></span>.</p>
+</div>
+</div>
+
+<div class="column-half">
+<h3 id="Set_up_para_desenvolvedores_web"><strong>Set up para desenvolvedores web</strong></h3>
+
+<p>Nós definimos valores de preferência padrões adaptados para desenvolvedores web. Por exemplo, {{glossary("Chrome")}} e depuração remota são ativadas por padrão.</p>
+</div>
+</div>
diff --git a/files/pt-br/mozilla/firefox/developer_edition/revertendo/index.html b/files/pt-br/mozilla/firefox/developer_edition/revertendo/index.html
new file mode 100644
index 0000000000..de8ce406d8
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/developer_edition/revertendo/index.html
@@ -0,0 +1,25 @@
+---
+title: Revertendo
+slug: Mozilla/Firefox/Developer_Edition/Revertendo
+translation_of: Mozilla/Firefox/Developer_Edition/Reverting
+---
+<div>{{FirefoxSidebar}}</div><h2 id="Revertendo_tema_no_Developer_Edition">Revertendo tema no Developer Edition</h2>
+
+<p><br>
+ Se você quiser usar o Developer Edition, mas prefere usar o tema 'Australis' usado no Firefox e Firefox Beta, você poderá alternar para o tema normal do Firefox: basta abrir o painel "Personalizar", clicar em "Temas", e selecionar o tema rotulado como "Padrão":</p>
+
+<p>{{EmbedYouTube("oiHt8T1Liyk")}}</p>
+
+<p>Alternativamente, digite "about:addons" na barra de localização, selecione "Aparência", e alterne os temas.</p>
+
+<h2 id="Revertendo_para_Firefox_Aurora">Revertendo para Firefox Aurora</h2>
+
+<p><br>
+ Se você quiser todos os recursos pré-Beta do Firefox Developer Edition, mas não quer nenhuma outra alteração, você pode reverter para algo como o antigo Firefox Aurora. Isso também irá restaurar seu perfil de pré-atualização e os dados da sessão. Este é um processo de 2 etapas, e você precisa seguir os passos nesta ordem:</p>
+
+<ol>
+ <li>Abra a página de Preferências do Developer Edition, e desmarque a opção "Permitir que o Firefox Developer Edition e Firefox execute ao mesmo tempo". Será solicitado a reinicialização do navegador.</li>
+ <li>Depois de reinicializar, você poderá reverter o tema do developer edition como descrito em "Revertendo tema no Developer Edition" acima.</li>
+</ol>
+
+<p>{{EmbedYouTube("8rEJn_hATE8")}}</p>
diff --git a/files/pt-br/mozilla/firefox/index.html b/files/pt-br/mozilla/firefox/index.html
new file mode 100644
index 0000000000..cd73f43538
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/index.html
@@ -0,0 +1,72 @@
+---
+title: Firefox
+slug: Mozilla/Firefox
+tags:
+ - Firefox
+ - Mozilla
+translation_of: Mozilla/Firefox
+---
+<div>{{FirefoxSidebar}}</div>
+
+<p>O <a class="external external-icon" href="https://www.mozilla.org/pt-br/docs/firefox/new/">Firefox</a>  é um popular navegador de internet da Mozilla, disponível para várias plataformas como Windows, Mac OS X e Linux no desktop, bem como Android e iOS nos dispositivos móveis. Sendo altamente compatível com as últimas tecnologias web e poderosas <a href="/pt-BR/docs/Tools">ferramentas de desenvolvimento</a>, o Firefox é um excelente navegador tanto para usuários comuns quanto desenvolvedores web.</p>
+
+<p>Firefox é um projeto de código aberto; muito do seu código vem de contribuições de uma gigantesca comunidade de voluntários. Aqui você irá aprender sobre como contribuir com o projeto Firefox, além de encontrar links para documentação sobre construção de add-ons do Firefox, uso de ferramentas do Firefox para desenvolvedores, entre outros.</p>
+
+<div class="summary">
+<p>Aprenda a criar complementos para <a href="https://www.mozilla.org/pt-br/docs/firefox/">Firefox</a>, como desenvolver e compilar o Firefox, como funciona internamente o Firefox  e subprojetos.</p>
+</div>
+
+<ul class="card-grid">
+ <li><span>Notas de lançamento para o desenvolvedor</span>
+
+ <p><a href="/pt-BR/docs/Firefox/Releases">Notas de versão focada em desenvolvedores</a>; aprenda quais são os novos recursos para ambos Web sites e add-on que chegam a cada versão do Firefox.</p>
+ </li>
+ <li><span>Documentação do projeto</span>
+ <p>Encontre informações detalhadas sobre <a href="/pt-BR/docs/Mozilla">o funcionamento do Firefox</a> e o seu sistema de versões, assim você poderá encontrar o seu caminho no código.</p>
+ </li>
+ <li><span>Guia do desenvolvedor</span>
+ <p>Nosso <a href="/pt-BR/docs/Developer_Guide">guia para desenvolvedores</a> provê tutoriais detalhados de como obter e compilar o código fonte do Firefox, como se encontrar, e como contribuir para o projeto.</p>
+ </li>
+</ul>
+
+<h2 id="Canais_Firefox">Canais Firefox</h2>
+
+<p>O Firefox está disponível em cinco <strong>canais</strong>.</p>
+
+<h3 id="Firefox_Nightly">Firefox Nightly</h3>
+
+<p>A cada noite nós geramos uma <em>build</em> do Firefox com o código mais recente no <a href="/en-US/docs/mozilla-central">mozilla-central</a>. Estas <em>builds</em> são destinadas aos desenvolvedores do Firefox ou aqueles que procuram testar as mais recentes funcionalidades que ainda estão com desenvolvimento ativo.</p>
+
+<p><a class="external external-icon" 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;">Baixar o Firefox Nightly</a></p>
+
+<h3 id="Firefox_Developer_Edition">Firefox Developer Edition</h3>
+
+<p>Esta é uma versão do Firefox feita para desenvolvedores. A cada seis semanas, nós pegamos as funcionalidades que estão no Firefox Nightly e são estáveis o suficiente e criamos uma nova versão do Firefox Developer Edition. Nós também adicionamos alguns recursos extras que estão disponíveis apenas neste canal.</p>
+
+<p><a href="/en-US/Firefox/Developer_Edition">Saiba mais sobre o Firefox Developer Edition</a>.</p>
+
+<p><a class="external external-icon" 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;">Baixar o Firefox Developer Edition</a></p>
+
+<h3 id="Firefox_Beta">Firefox Beta</h3>
+
+<p>Depois de seis semanas no Firefox Developer Edition, nós pegamos as funcionalidades que estão estáveis o bastante, e criamos uma nova versão do Firefox Beta. As versões do Firefox Beta são para testadores entusiastas e está destinada a se tornar a proxima versão do Firefox.</p>
+
+<p><a class="external external-icon" 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;">Baixar o Firefox Beta</a></p>
+
+<h3 id="Firefox">Firefox</h3>
+
+<p>Após estabilizar por outras seis semanas no Beta, nós estamos prontos para entregar as novas funcionalidades para centenas de milhões de usuários em uma nova versão do Firefox.</p>
+
+<p><a class="external external-icon" 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;">Baixar o Firefox</a></p>
+
+<h3 id="Firefox_Extended_Support_Release_ESR">Firefox Extended Support Release (ESR)</h3>
+
+<p>Firefox ESR é uma edição de suporte de longo prazo do Firefox para desktop. Feito para ser usado em organizações como escolas, universidades, empresas e outras que necessitam de suporte extendido para distribuições em massa.</p>
+
+<p><a href="https://developer.mozilla.org/en-US/Firefox/Firefox_ESR">Saiba mais sobre o Firefox Extended Support Release.</a></p>
+
+<p><a class="external external-icon" 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;">Baixar o Firefox ESR</a></p>
+
+<h2 id="Perfis_Firefox">Perfis Firefox</h2>
+
+<p>Se você está usando múltiplos canais Firefox—ou apenas múltiplas configurações—em uma base regular, você deve ler sobre <a href="/pt-br/docs/Mozilla/Firefox/Multiple_profiles">como usar múltiplos perfis Firefox</a> com o Firefox Profile Manager e outras ferramentas para gerenciamento de perfis de sua preferência.</p>
diff --git a/files/pt-br/mozilla/firefox/multiple_profiles/index.html b/files/pt-br/mozilla/firefox/multiple_profiles/index.html
new file mode 100644
index 0000000000..54bdf6b45a
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/multiple_profiles/index.html
@@ -0,0 +1,244 @@
+---
+title: Vários perfis no Firefox
+slug: Mozilla/Firefox/Multiple_profiles
+tags:
+ - Firefox
+ - Guía
+ - Iniciante
+ - Intro
+ - Perfis
+ - QA
+translation_of: Mozilla/Firefox/Multiple_profiles
+---
+<div>{{FirefoxSidebar}}</div>
+
+<p class="summary">Um perfil no Firefox é a coleção de configurações, personalizações, complementos e outras personalizações que um usuário fez ou instalou em sua cópia do Firefox. Você pode encontrar <a href="https://support.mozilla.org/kb/Profiles">detalhes sobre perfis</a> no site de suporte ao usuário final da Mozilla.</p>
+
+<h2 id="Motivos_para_ter_vários_perfis">Motivos para ter vários perfis</h2>
+
+<p>O usuário casual pode querer ter perfis diferentes para trabalho e uso pessoal ou para membros da família diferentes. Ter perfis diferentes ajudaria a separar a vida profissional e pessoal ou permitir que cada membro da família tenha seu próprio conjunto de favoritos, configurações e complementos.</p>
+
+<p>Os desenvolvedores web podem querer um perfil secundário para testar sites, aplicativos ou outros projetos em diferentes canais do Firefox. Por exemplo, você pode querer ter algumas extensões instaladas para desenvolvimento Web, mas não para navegação na Web de propósito geral. Ao usar o canal Nightly, você pode encontrar alguns complementos que se tornaram temporariamente incompatíveis com novas alterações da API, até que o desenvolvedor do complemento tenha a chance de atualizá-los. Você pode remover esses complementos do seu perfil para uso noturno, mantendo-os para uso com outros perfis.</p>
+
+<p>Para colaboradores de QA, teste e triagem de bugs, você pode querer ter várias versões de desenvolvimento do Firefox instaladas, cada uma com seu próprio perfil. Criar novos perfis para testes pode impedir que você perca suas preferências, favoritos e histórico. Demora pouco tempo para configurar um novo perfil e, uma vez concluído, todas as suas versões do Firefox serão atualizadas separadamente e poderão ser executadas simultaneamente.</p>
+
+<h2 id="Canais_disponíveis_de_desenvolvimento_do_navegador">Canais disponíveis de desenvolvimento do navegador</h2>
+
+<p>Há quatro canais do navegador disponíveis, cada um em um nível diferente de estabilidade e desenvolvimento. Os quatro canais são <a href="https://www.mozilla.org/firefox/new//en-US/docs/">Release</a>, <a href="https://www.mozilla.org/firefox/beta//en-US/docs/">Beta</a>, <a href="https://www.mozilla.org/firefox/aurora/">Developer Edition</a> e <a href="https://nightly.mozilla.org/">Nightly</a>. O canal Release é recomendado para a maioria dos usuários, já que é o canal de "lançamento oficial". No entanto, para os mais aventureiros, você pode experimentar um dos outros três canais para ver o que está por vir no Firefox e brincar com recursos emergentes. O canal Beta contém os recursos que devem estar na próxima versão do Firefox e estão em fase final de testes. Aurora contém recursos experimentais, que ainda não são de qualidade beta. Nightly contém o código mais recente dos desenvolvedores do Firefox e é o canal menos estável.</p>
+
+<h2 id="Ferramentas_de_terceiros">Ferramentas de terceiros</h2>
+
+<p>Além do Gerenciador de Perfis integrado e do Gerenciador de Perfis externo, existem algumas ferramentas de terceiros que facilitam o trabalho com vários perfis.</p>
+
+<div class="note">
+<p>Essa lista não é exaustiva. Por favor, adicione a esta lista quaisquer ferramentas úteis que você descobrir!</p>
+</div>
+
+<h3 id="Mac_OS_X">Mac OS X</h3>
+
+<ul>
+ <li><a href="http://davemartorana.com/multifirefox/">Multifirefox</a> por Dave Martorana</li>
+</ul>
+
+<h2 id="Gerenciamento_de_perfis">Gerenciamento de perfis</h2>
+
+<h3 id="Determinando_o_perfil_enquanto_o_Firefox_está_em_execução">Determinando o perfil enquanto o Firefox está em execução</h3>
+
+<p>Para determinar o perfil de uma instância do Firefox em execução no Windows, macOS ou Linux,</p>
+
+<ol>
+ <li>Digite about:profiles ma barra de pesquisa de URL do navegador.</li>
+ <li>A página apresenta uma lista de todos os seus perfis, cada um começando com "Perfil: " seguido por seu nome.</li>
+ <li>O que está sendo usado por esta instância do Firefox incluirá o texto em negrito "<strong>Este é o perfil em uso</strong>". Por exemplo, se você encontrar este texto sob a entrada de "Perfil: Suzie", então você está usando um perfile chamado <em>Suzie</em>.</li>
+</ol>
+
+<h3 id="Iniciando_o_Firefox_no_perfil_desejado">Iniciando o Firefox no perfil desejado</h3>
+
+<p id="You_cannot_change_the_profile_while_Firefox_is_running._Although_it_is_possible_in_some_cases_to_have_multiple_instances_of_Firefox_running_in_different_profiles_to_avoid_confusion_you_should_first_exitquitterminate_all_running_instances_of_Firefox_FirefoxDeveloperEdition_or_Nightly._Then_follow_the_instructions_below_applicable_to_your_operating_system."><strong>Você não pode mudar o perfile enquanto o Firefox está em execução.</strong>  Apesar de ser possível em alguns casos ter várias instâncias do Firefox em execução em diferentes perfis, para evitar confusão, você deve primeiro sair/terminar todas as instâncias em execução de <em>Firefox</em>, <em>FirefoxDeveloperEdition</em> ou <em>Nightly</em>. Então, siga as instruções abaixo, aplicáveis ao seu sistema operacional.</p>
+
+<h4 id="Windows">Windows</h4>
+
+<h5 id="Windows_XP">Windows XP</h5>
+
+<ol>
+ <li>Clique no botão de Iniciar.</li>
+ <li>Clique "Executar".</li>
+ <li>
+ <p>Digite <code>firefox --ProfileManager</code>.</p>
+ </li>
+</ol>
+
+<h5 id="Windows_Vista7">Windows Vista/7</h5>
+
+<ol>
+ <li>Clique no botão de Iniciar.</li>
+ <li>Clique na barra de pesquisa na parte inferior.</li>
+ <li>
+ <p>Digite <code>firefox --ProfileManager</code>.</p>
+ </li>
+</ol>
+
+<h5 id="Windows_88.1">Windows 8/8.1</h5>
+
+<ol>
+ <li>Pressione "Windows + R" em seu teclado.</li>
+ <li>Digite <code>firefox --ProfileManager</code>.</li>
+</ol>
+
+<p>Se a janela do Gerenciador de Perfis não abrir, o Firefox pode estar sendo executado em segundo plano, mesmo que não esteja visível. Feche todas as instâncias do Firefox ou reinicie o computador e tente novamente.</p>
+
+<h4 id="Linux">Linux</h4>
+
+<p>Se o Firefox já estiver incluído na sua distribuição Linux, ou se você tiver instalado o Firefox com o gerenciador de pacotes da sua distribuição Linux:</p>
+
+<ol>
+ <li>No topo da janela do Firefox, clique no menu Arquivo e selecione Sair.</li>
+ <li>No Terminal, execute <code>firefox --ProfileManager</code></li>
+</ol>
+
+<p>Se a janela do Gerenciador de Perfis não abrir, o Firefox pode estar sendo executado em segundo plano, mesmo que não esteja visível. Feche todas as instâncias do Firefox ou reinicie o computador e tente novamente.</p>
+
+<h4 id="macOS">macOS</h4>
+
+<ol>
+ <li>Execute o aplicativo <em>Terminal</em>, que é encontrado em Aplicativos/Utilitários.</li>
+ <li>Digite ou cole no caminho para o Firefox, seguido por <code>.app/Contents/MacOS/firefox</code>.  Por exemplo, se o Firefox está instalado no local recomendado, você digitaria <code>/Applications/Firefox.app/Contents/MacOS/firefox</code>.</li>
+ <li>Se você tiver o caminho para o seu perfil desejado à mão, insira um caractere de espaço, seguido por <code>-profile</code> seguido por outro caractere de espaço, seguido pelo caminho completo para a pasta de perfil na qual você deseja iniciar. Isto irá iniciar o Firefox imediatamente. Caso contrário, insira um caractere de espaço seguido de <code>--profilemanager</code>. Isso apresentará a janela do Gerenciador de Perfis na qual você pode fazer sua seleção.</li>
+ <li>Pressione <em>enter.</em></li>
+</ol>
+
+<p>Aqui está um exemplo completo do comando Terminal a partir dos passos 2-3:</p>
+
+<pre>/Applications/Firefox.app/Contents/macOS/firefox -profile /Users/Suzie/Library/Application\ Support/Firefox/Profiles/r99d1z7c.default</pre>
+
+<p>Se você quiser fazer isso com frequência e de forma mais fácil, você pode querer criar um aplicativo <em>Automatizador</em>, como explicado <a href="http://sonnygill.net/mac/mac-multiple-firefox-profiles/">neste tutorial</a>.</p>
+
+<h3 id="Criando_um_perfil">Criando um perfil</h3>
+
+<h4 id="Criando_um_perfil_através_do_Gerenciador_de_Perfis">Criando um perfil através do Gerenciador de Perfis</h4>
+
+<p>Essas instruções devem ser as mesmas para todos os sistemas operacionais.</p>
+
+<ol>
+ <li>Para iniciar o Assistente de novo perfil, clique em "Novo perfil..." no Gerenciador de Perfis.</li>
+ <li>Clique em Próximo e insira o nome do perfil. Use um nome de perfil que seja descritivo, como seu nome pessoal. Este nome não é exposto à Internet.</li>
+ <li>Você também pode escolher onde armazenar o perfil no seu computador. Para selecionar o local de armazenamento, clique em Pasta....</li>
+ <li>Se você escolher o local da pasta para o perfil, selecione uma pasta nova ou vazia. Se você escolher uma pasta que não esteja vazia e depois remover o perfil e escolher a opção \"Excluir arquivos\", tudo dentro dessa pasta será excluído.</li>
+ <li>Para criar o novo perfil, clique Concluir.</li>
+</ol>
+
+<h4 id="Criando_um_perfil_através_do_navegador_Firefox">Criando um perfil através do navegador Firefox</h4>
+
+<p>Você pode criar um novo perfil do Firefox diretamente no navegador.</p>
+
+<ol>
+ <li>Digite about:profiles na barra de pesquisa de URL do navegador</li>
+ <li>Na página, clique no botão Criar um novo perfil</li>
+ <li>Leia a introdução e clique em Próximo</li>
+ <li>Digite um nome de perfil para seu novo Perfil. Use um nome de perfil que é descritivo, tal como seu nome pessoal. Esse nome não é exposto para a Internet.</li>
+ <li>Opcionalmente, para alterar onde o perfil armazenará seu computador, clique em Pasta...</li>
+ <li>Para criar um novo perfil, clique Concluir.</li>
+</ol>
+
+<h3 id="Excluindo_um_perfil">Excluindo um perfil</h3>
+
+<ol>
+ <li>No Gerenciador de perfil, selecione o perfil para remover e clique Excluir perfil....</li>
+ <li>Confirme que você deseja excluir o perfil:
+ <ul>
+ <li>"Não excluir arquivos" remove o perfil do Gerenciador de perfil, mas retém os arquivos de dados do perfil no seu computador na pasta de armazenamento, para que suas informações não sejam perdidas. "Não excluir arquivos" é a opção preferida, porque salva a pasta do perfil antigo, permitindo recuperar os arquivos para um novo perfil.</li>
+ <li>"Excluir arquivos" remove o perfil e seus arquivos, incluindo os favoritos, configurações, senhas, etc.<br>
+ <br>
+ {{ warning("Se você usar a opção \"Excluir arquivos\", a pasta de perfil e os arquivos serão excluídos. Essa ação não podem ser desfeitas.") }}</li>
+ <li>"Cancelar" interrompe a exclusão de perfil.</li>
+ </ul>
+ </li>
+</ol>
+
+<h3 id="Renomeando_um_perfil">Renomeando um perfil</h3>
+
+<ol>
+ <li>No Gerenciador de perfil, selecione o perfil que você deseja renomear e clique em "Renomear perfil".</li>
+ <li>Insira um novo nome para o perfile e clique em OK.</li>
+</ol>
+
+<div class="note">
+<p>Nota: A pasta contendo os arquivos para o perfil não é renomeada.</p>
+</div>
+
+<h2 id="Opções">Opções</h2>
+
+<h3 id="Trabalhar_desconectado">Trabalhar desconectado</h3>
+
+<p>A escolha desta opção carrega o perfil selecionado e inicia o Firefox desconectado. Você pode visualizar páginas web visualizadas anteriormente e experimentar seu perfil.</p>
+
+<h3 id="Não_perguntar_na_inicialização">Não perguntar na inicialização</h3>
+
+<p>Se você tiver vários perfis, o Firefox solicitará que o perfil seja usado toda vez que você iniciar o Firefox. Selecione essa opção para permitir que o Firefox carregue o perfil selecionado, sem solicitar a inicialização.</p>
+
+<div class="note">
+<p>Nota: Para acessar outros perfis após selecionar esta opção, você deve iniciar o Gerenciador de perfis primeiro.</p>
+</div>
+
+<h2 id="Usando_os_perfis">Usando os perfis</h2>
+
+<h3 id="Windows_2">Windows</h3>
+
+<p>Se você deseja que o gerenciador de perfil seja exibido toda vez que iniciar o Firefox, para poder escolher um perfil, será necessário editar o "Destino" do ícone de inicialização. Para fazer isso:</p>
+
+<ol>
+ <li>Clique com o botão direito o ícone e escolha "Propriedades".</li>
+ <li>Quando a caixa de diálogo de propriedades for exibida, você verá um campo de texto "Destino" que poderá editar e deverá mostrar o caminho atual do arquivo.</li>
+ <li>Após fechar as aspas, adicione <code>-ProfileManager</code>.</li>
+ <li>Clique Ok.</li>
+</ol>
+
+<p>Agora, sempre que você clicar duas vezes nesse ícone, o Gerenciador de perfis deverá aparecer, permitindo que você escolha o perfil que deseja usar.</p>
+
+<p>Se você quiser que ícones individuais iniciem perfis específicos, será necessário editar o "Destino" de cada ícone. Para fazer isso:</p>
+
+<ol>
+ <li>Clique com botão direito no ícone e escolha "Propriedades".</li>
+ <li>Quando a caixa de diálogo de propriedades for exibida, você verá um campo de texto "Destino" que poderá editar e deverá mostrar o caminho atual do arquivo.</li>
+ <li>Para definir permanentemente um perfil específico, adicione <code>-p NOME_DO_PERFIL</code> ao caminho de destino, mas fora das aspas, substituindo "NOME_DO_PERFIL" com o nome de perfil que você escolher.</li>
+ <li>Se você também quiser permitir que várias instâncias do Firefox sejam executadas ao mesmo tempo, adicione <code>-no-remote</code> após o nome do perfil.</li>
+ <li>Quando terminar, clique em Ok. Faça isso para cada ícone para o qual você gostaria de ter um perfil específico. Uma vez feito, cada um deve iniciar automaticamente com o perfil especificado.</li>
+</ol>
+
+<h3 id="Linux_2">Linux</h3>
+
+<p>Não existe uma maneira extremamente direta de criar lançadores de aplicativos personalizados no Gnome 3 como havia no Gnome 2. O tutorial a seguir ajudará você a progredir no geral: <a href="https://blog.randell.ph/how-to-create-custom-application-launchers-in-gnome-3/">Gnome 3 Iniciador de aplicativos personalizado</a>. Depois de chegar ao ponto de adicionar um novo item, você pode ter a caixa de diálogo de perfil sempre exibida ou definir o inicializador para iniciar um perfil específico.</p>
+
+<p>Se você deseja que o gerenciador de perfil seja exibido toda vez que iniciar o Firefox, para poder escolher um perfil, será necessário definir a linha de comando para o seu novo iniciador.</p>
+
+<ol>
+ <li>Defina o campo de texto "command" para direcionar o arquivo executável, provavelmente "/usr/bin/firefox", e adicione o parâmetro <code>-p</code>.</li>
+</ol>
+
+<p>Se você quiser que ícones individuais iniciem perfis específicos, você precisará definir a linha de comando para o seu novo lançador. Para fazer isso:</p>
+
+<ol>
+ <li>Defina o campo de texto "command" para direcionar o arquivo executável, provavelmente "/usr/bin/firefox", e adicione o parâmetro <code>-p NOME_DO_PERFIL</code>, substituindo "NOME_DO_PERFIL" com o perfil específico.</li>
+ <li>Repita conforme necessário, para cada perfil adicional que você deseja definir.</li>
+ <li>Se você também quiser permitir que várias instâncias do Firefox sejam executadas ao mesmo tempo, adicione "-no-remote" após o nome do perfil.</li>
+</ol>
+
+<h3 id="Mac_OS_X_2">Mac OS X</h3>
+
+<p>Você pode encontrar um tutorial útil para configurar lançadores personalizados aqui: <a href="https://spf13.com/post/managing-multiple-firefox-profiles-in-os-x/">Gerenciando vários perfis do Firefox no OSX</a>. Observe que é melhor seguir todas as etapas na seção "Criando os scripts", incluindo a etapa "editar Info.plist". Deixe de fora o nome do perfil se quiser que o seletor de perfis seja exibido toda vez que você iniciar.</p>
+
+<h2 id="Configurando_vários_perfis_para_diferentes_canais_do_Firefox">Configurando vários perfis para diferentes canais do Firefox</h2>
+
+<p>Esta seção será especialmente útil se você for um desenvolvedor, quiser trabalhar com vários canais e cada um tiver seu iniciador separado.</p>
+
+<h3 id="Windows_3">Windows</h3>
+
+<p>No Windows, as compilações Developer e Nightly têm seu próprio diretório na pasta "Programas", para que você não precise se preocupar com onde armazenar os arquivos baixados. No entanto, todos os três tentarão usar o mesmo perfil por padrão. Você não vai querer manter esse comportamento, porque os diferentes canais têm diferentes níveis de recursos. Para definir cada ativador, siga as instruções do Windows no <a href="#Windows">Windows Launcher</a>.</p>
+
+<h3 id="Linux_3">Linux</h3>
+
+<p>No Linux, as coisas não são configuradas automaticamente. Você provavelmente obterá uma solicitação para fazer o download de um arquivo tar.bz2 para extrair. Extraia os arquivos para um novo diretório e use as instruções do novo lançador aqui. A única mudança que você precisará fazer é o caminho do comando. Você desejará configurá-lo para o diretório em que extraiu o arquivo tar.bz2 do canal Firefox e o arquivo executável "firefox" localizado nesse diretório. Os demais métodos de atribuição de perfil permanecerão os mesmos. Você desejará, com certeza, adicionar a parte <code>-no-remote</code> ao final do campo de comando, para poder executar várias instâncias ao mesmo tempo.</p>
+
+<h3 id="Mac_OS_X_3">Mac OS X</h3>
+
+<p>Você pode encontrar um tutorial útil para configurar lançadores personalizados aqui: <a href="https://spf13.com/post/managing-multiple-firefox-profiles-in-os-x/">Gerenciando vários perfis do Firefox no OSX</a>. Observe que é melhor seguir todas as etapas na seção "Criando os scripts", incluindo a etapa "editar Info.plist". Além disso, você desejará alterar o caminho no script do shell para apontar para o arquivo .app correto para o canal do Firefox que você deseja segmentar.</p>
diff --git a/files/pt-br/mozilla/firefox/multiprocess_firefox/index.html b/files/pt-br/mozilla/firefox/multiprocess_firefox/index.html
new file mode 100644
index 0000000000..2dd2134e60
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/multiprocess_firefox/index.html
@@ -0,0 +1,75 @@
+---
+title: Multiprocess Firefox
+slug: Mozilla/Firefox/Multiprocess_Firefox
+tags:
+ - Português (do Brasil) tags
+translation_of: Mozilla/Firefox/Multiprocess_Firefox
+---
+<div>{{FirefoxSidebar}}</div><p>In current versions of desktop Firefox, the entire browser runs in a single operating system process. In particular, the JavaScript that runs the browser UI (also known as "chrome code") runs in the same process as the code in web pages (also known as "content" or "web content").<br>
+ <br>
+ Future versions of Firefox will run the browser UI in a separate process from web content. In the first iteration of this architecture all browser tabs will run in the same process, and the browser UI will run in a different process. In future iterations, we expect every browser tab to run in its own process. The project that's delivering multiprocess Firefox is called Electrolysis, sometimes abbreviated to e10s.</p>
+
+<p>Normal web pages are unaffected by multiprocess Firefox. People working on Firefox itself and Firefox add-on developers will be affected if their code relies on being able to access web content directly.</p>
+
+<p>Instead of accessing content directly, chrome JavaScript will have to use the <a href="/en-US/Firefox/Multiprocess_Firefox/The_message_manager">message manager</a> to access content. To help ease the transition we've implemented <a href="/en-US/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">Cross Process Object Wrappers</a> and some <a href="/en-US/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts#Compatibility_shims">compatibility shims for add-on developers</a>. If you're an add-on developer wondering whether you are affected, see the <a href="/en-US/Add-ons/Working_with_multiprocess_Firefox">guide to working with multiprocess Firefox</a>.</p>
+
+<p>Multiprocess Firefox is currently enabled by default in <a class="external external-icon" href="https://nightly.mozilla.org/">Nightly</a> builds. As a visual indicator that you're running multiprocess Firefox, the titles of remote tabs are underlined.</p>
+
+<hr>
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Technical_overview">Technical overview</a></dt>
+ <dd>A very high-level view of how multiprocess Firefox is implemented.</dd>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Glossary">Glossary</a></dt>
+ <dd>A reference for the jargon used in multiprocess Firefox.</dd>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/The_message_manager">The message manager</a></dt>
+ <dd>How to communicate between chrome and content.</dd>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Message_Manager_Interfaces">Message Manager interfaces</a></dt>
+ <dd>Includes links to the API reference for the message manager interfaces.</dd>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Frame_script_environment">Frame script environment</a></dt>
+ <dd>The environment frame scripts run in, and especially how it differs from the environment for chrome code.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Motivation">Motivation</a></dt>
+ <dd>Why we're implementing multiprocess Firefox: performance, security, and stability.</dd>
+ <dt><a href="/en-US/Add-ons/Working_with_multiprocess_Firefox">Add-on migration guide</a></dt>
+ <dd>If you're an add-on developer, find out if you're affected and how to update your code.</dd>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Cross_Process_Object_Wrappers">Cross Process Object Wrappers</a></dt>
+ <dd>Cross Process Object Wrappers are a migration aid, giving chrome code synchronous access to content.</dd>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Debugging_frame_scripts">Debugging frame scripts</a></dt>
+ <dd>Using the Browser Content Toolbox to debug frame scripts.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<div class="column-container">
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Limitations_of_chrome_scripts">Limitations of chrome scripts</a></dt>
+ <dd>Practices that will no longer work in chrome code, and how to fix them.</dd>
+</dl>
+</div>
+
+<div class="column-half">
+<dl>
+ <dt><a href="/en-US/Firefox/Multiprocess_Firefox/Limitations_of_frame_scripts">Limitations of frame scripts</a></dt>
+ <dd>Practices that will not work inside frame scripts, and what to do instead.</dd>
+</dl>
+</div>
+</div>
+
+<hr>
+<h2 id="Contact_us">Contact us</h2>
+
+<p>Find out more about the project, get involved, or ask us your questions.</p>
+
+<ul>
+ <li><strong>Electrolysis project page</strong>: <a href="https://wiki.mozilla.org/Electrolysis">https://wiki.mozilla.org/Electrolysis</a></li>
+ <li><strong>IRC</strong>: #e10s on <a href="https://wiki.mozilla.org/IRC">irc.mozilla.org</a></li>
+ <li><strong>Mailing list</strong>: <a href="https://groups.google.com/forum/#!forum/mozilla.dev.tech.electrolysis">dev.tech.electrolysis</a></li>
+</ul>
diff --git a/files/pt-br/mozilla/firefox/multiprocess_firefox/motivacao/index.html b/files/pt-br/mozilla/firefox/multiprocess_firefox/motivacao/index.html
new file mode 100644
index 0000000000..8b3745c16c
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/multiprocess_firefox/motivacao/index.html
@@ -0,0 +1,44 @@
+---
+title: Motivação para o Multiprocesso do Firefox
+slug: Mozilla/Firefox/Multiprocess_Firefox/Motivacao
+translation_of: Mozilla/Firefox/Multiprocess_Firefox/Motivation
+---
+<div>{{FirefoxSidebar}}</div><p>Existem três principais razões para fazer o Firefox executar conteúdo em processos separados: desempenho, segurança e estabilidade.</p>
+
+<h2 id="Performance">Performance</h2>
+
+<p>A maioria dos trabalhos de performances na Mozilla nos últimos dois anos tem se concentrado na capacidade de resposta do navegador. O objetivo é reduzir "<a href="/en-US/docs/Glossary/Jank"> jank</a>" - esses momentos em que o navegador parece congelar brevemente ao carregar uma página grande, digitando uma forma, Ou rolagem. A capacidade de resposta tende a importar muito mais do que o rendimento na web hoje. Grande parte deste trabalho foi feito como parte do <a href="https://wiki.mozilla.org/Performance/Snappy"> projeto Snappy</a>. Os principais focos foram:</p>
+
+<ul>
+ <li>Moving long-running actions to a separate thread so that the main thread can continue to respond to the user.</li>
+ <li>Doing I/O asynchronously or on other threads so that the main thread isn’t blocked waiting for the disk.</li>
+ <li>Breaking long-running code into shorter pieces and running the event loop in between. Incremental garbage collection is an example of this.</li>
+</ul>
+
+<p>Much of the low-hanging fruit in these areas has already been picked. The remaining issues are difficult to fix. For example, JavaScript execution and layout happen on the main thread, and they block the event loop. Running these components on a separate thread is difficult because they access data, like the DOM, that are not thread-safe. As an alternative, we’ve considered allowing the event loop to run in the middle of JavaScript execution, but doing so would break a lot of assumptions made by other parts of Firefox (not to mention add-ons).</p>
+
+<p>Running web content in a separate process is a nice alternative to these approaches. Like the threaded approach, Firefox is able to run its event loop while JavaScript and layout are running in a content process. But unlike threading, the UI code has no access to content DOM or or other content data structures, so there is no need for locking or thread-safety. The downside, of course, is that any code in the Firefox UI process that needs to access content data must do so explicitly through message passing.</p>
+
+<p>We feel this tradeoff makes sense for a few reasons:</p>
+
+<ul>
+ <li>It’s not all that common for Firefox code to access content DOM.</li>
+ <li>Code that is shared with Firefox OS already uses message passing.</li>
+ <li>In the multiprocess model, Firefox code that fails to use message passing to access content will fail in an obvious, consistent way. In the threaded model, code that accesses content without proper locking will fail in subtle ways that are difficult to debug.</li>
+</ul>
+
+<h2 id="Security">Security</h2>
+
+<p>Right now, if someone discovers an exploitable bug in Firefox, they’re able to take over users’ computers. There are a lot of techniques to mitigate this problem, but one of the most powerful is <a href="http://en.wikipedia.org/wiki/Sandbox_%28computer_security%29">sandboxing</a>. Technically, sandboxing doesn’t require multiple processes. However, a sandbox that covered single-process Firefox wouldn’t be very useful. Sandboxes are only able to prevent processes from performing actions that a well-behaved process would never do. Unfortunately, a well-behaved Firefox process (especially one with add-ons installed) needs access to much of the network and file system. Consequently, a sandbox for single-process Firefox couldn’t restrict much.</p>
+
+<p>In multiprocess Firefox, content processes will be sandboxed. A well-behaved content process won’t access the filesystem directly; it will have to ask the main process to perform the request. At that time, the main process can verify that the request is safe and that it makes sense. Consequently, the sandbox for content processes can be quite restrictive. Our hope is that this arrangement will make it much harder to craft exploitable security holes for Firefox.</p>
+
+<h2 id="Stability">Stability</h2>
+
+<p>Currently, a crash in the code running a web page will take down the entire browser. With multiprocess Firefox, only the content process that crashed will be killed.</p>
+
+<div class="note">
+<p>This page incorporates a lot of content from Bill McCloskey's blog post on multiprocess Firefox: <a href="http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/">http://billmccloskey.wordpress.com/2013/12/05/multiprocess-firefox/</a></p>
+</div>
+
+<p> </p>
diff --git a/files/pt-br/mozilla/firefox/multiprocess_firefox/which_uris_load_where/index.html b/files/pt-br/mozilla/firefox/multiprocess_firefox/which_uris_load_where/index.html
new file mode 100644
index 0000000000..708c6b49f0
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/multiprocess_firefox/which_uris_load_where/index.html
@@ -0,0 +1,59 @@
+---
+title: Aonde cada URI carrega
+slug: Mozilla/Firefox/Multiprocess_Firefox/Which_URIs_load_where
+translation_of: Mozilla/Firefox/Multiprocess_Firefox/Which_URIs_load_where
+---
+<div>{{FirefoxSidebar}}</div><p>Com base inicialmente no esquema URI da página, o navegador pode decidir se carregar uma página no processo chrome ou um processo de conteúdo. Para alguns esquemas, você pode alterar o comportamento padrão.</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Esquema</th>
+ <th scope="col">Comportamento</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><code>about:</code></td>
+ <td>
+ <p>Por padrão, as páginas <code> about: </code> são sempre carregadas no processo chrome. No entanto, quando você registra uma nova página <code> about:</code> você pode alterar esse padrão.</p>
+
+ <p>Duas novas flags são definidas em <code><a href="https://dxr.mozilla.org/mozilla-central/source/netwerk/protocol/about/nsIAboutModule.idl">nsIAboutModule</a></code>:</p>
+
+ <ul>
+ <li><code>URI_CAN_LOAD_IN_CHILD</code>: A página será carregada no mesmo processo que carregou o <code> <a href="pt-BR/docs/Mozilla/Tech/XUL/Navegador"> navegador</a></code>.</li>
+ <li><code>URI_MUST_LOAD_IN_CHILD</code>: A página sempre será carregada em um processo filho.</li>
+ </ul>
+
+ <p>Para usar um destes flags, retorne em sua implementação o <code>getURIFlags</code> no <a href="/en-US/docs/Custom_about:_URLs">código que registra o <code>about:</code> URI</a>.</p>
+
+ <p>Se você usar essas flags, você deve registrar a página sobre um framescript para cada guia. Se você não configurar o multiprocesso Compatível com o verdadeiro no seu <code>install.rdf</code>, então serão usados os padrões. Mas os padrões dos e10s serão obsoletos em breve. Leia mais aqui - <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1257201">Erro 1257201</a>.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>chrome:</code></td>
+ <td>
+ <p>Por padrão, as páginas <code>chrome:</code> são sempre carregadas no processo chrome. No entanto, quando você registra uma nova página <code>chrome</code>, você pode alterar esse padrão.</p>
+
+ <p>Duas novas flags são definidas no <a href="/en-US/docs/Chrome Registration">file chrome.manifest</a>:</p>
+
+ <ul>
+ <li>remoteenabled: a página será carregada no mesmo processo que carregou o<code> <a href="pt-BR/docs/Mozilla/Tech/XUL/Navegador"> navegador</a></code>.</li>
+ <li>remoterequired: a página sempre será carregada em um processo filho.</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td><code>file:</code></td>
+ <td>
+ <p>Sempre carregado em um processo de conteúdo.</p>
+
+ <p><strong>Nota:</strong> Isso não significa que o <code>file:</code> URIs podem ser usado livremente em código de processos de conteúdo. O Sandboxing pode incluir listas predefinidas de diretórios particulares e futuras alterações podem restringir os <code>files:</code> URIs a um processo de conteúdo separado, isolado do conteúdo da Web normal. Veja <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1187099">bug 1187099 </a> como isso pode afetar os addons tentando carregar arquivos no diretório do perfil.</p>
+ </td>
+ </tr>
+ <tr>
+ <td><code>resource:</code></td>
+ <td>Sempre carregado em um processo de conteúdo.</td>
+ </tr>
+ </tbody>
+</table>
diff --git a/files/pt-br/mozilla/firefox/novas_funcionalidades/index.html b/files/pt-br/mozilla/firefox/novas_funcionalidades/index.html
new file mode 100644
index 0000000000..12a4aa7c23
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/novas_funcionalidades/index.html
@@ -0,0 +1,469 @@
+---
+title: Novas funcionalidades no Firefox
+slug: Mozilla/Firefox/Novas_funcionalidades
+translation_of: Mozilla/Firefox/Experimental_features
+---
+<div>{{FirefoxSidebar}}</div><p class="summary">Em ordem para testar as novas funcionalidades, a Mozilla publica uma versão de testes do navegador Firefox, <a href="https://nightly.mozilla.org/">Firefox Nightly</a>, diariamente. Funcionalidades experimentais, for example implementations of proposed Web platform standards, are available. This page lists features that are in Nightly versions of Firefox along with information on how to activate them, if necessary. You can test your Web sites and applications before these features get released and ensure everything will still work with the latest Web technology capabilities.</p>
+
+<p>To test these experimental features, you need to download <a href="https://nightly.mozilla.org/">Firefox Nightly</a> or <a href="https://www.mozilla.org/en-US/firefox/developer/">Firefox Developer Edition</a>.</p>
+
+<h2 id="CSS">CSS</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Feature</th>
+ <th scope="col">Firefox Nightly</th>
+ <th scope="col">Firefox Developer Edition</th>
+ <th scope="col">Firefox Beta</th>
+ <th scope="col">Firefox Release</th>
+ <th scope="col">Preference</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><strong><a href="/en-US/docs/Web/CSS/CSS_Grid_Layout">Grid Layout</a></strong></td>
+ <td>40</td>
+ <td>40</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1217086">Disabled</a></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1217086">Disabled</a></td>
+ <td><code>layout.css.grid.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Subgrids</strong></td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>layout.css.grid-template-subgrid-value.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Logical values for <code>clear</code> and <code>float</code> CSS properties</strong><br>
+ The values {{cssxref("clear")}}<code>:</code> <code>inline-start</code> and <code>clear:</code> <code>inline-end</code> as well as {{cssxref("float")}}<code>:</code> <code>inline-start</code> and <code>float:</code> <code>inline-end</code> are making easier to create layouts that are agnostic to the text directionality.</td>
+ <td>45</td>
+ <td>45</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1253919">Disabled</a></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1253919">Disabled</a></td>
+ <td><code>layout.css.float-logical-values.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Display stray control characters in CSS as hex boxes</strong><br>
+ This feature renders control characters (Unicode category Cc) other than <em>tab</em> (<code>U+0009</code>), <em>line feed</em> (<code>U+000A</code>), <em>form feed</em> (<code>U+000C</code>), and <em>carriage return</em> (<code>U+000D</code>) as a hexbox when they are not expected.</td>
+ <td>43</td>
+ <td>43</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>layout.css.control-characters.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>The <code>transform-box</code> property</strong><br>
+ Controls the box the relative values of {{cssxref("transform-origin")}} and {{cssxref("transform")}} relate too.</td>
+ <td>41</td>
+ <td>41</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1208550">Disabled</a></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1208550">Disabled</a></td>
+ <td><code>svg.transform-box.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Basic shapes in </strong><code><strong>clip-path</strong></code><br>
+ Adds the functions <code>circle()</code>, <code>ellipse()</code>, and <code>polygon()</code> to the set of possible values for {{cssxref("clip-path")}}.</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1303654">Enabled</a><br>
+ <sub>(available since 47, enabled by default since 53)</sub></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1303654">Enabled</a><br>
+ <sub>(available since 47, enabled by default since 53)</sub></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1247229">Disabled</a><br>
+ <sub>(available since 47)</sub></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1247229">Disabled</a><br>
+ <sub>(available since 47)</sub></td>
+ <td><code>layout.css.clip-path-shapes.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>The <code>font-display</code> descriptor for <code>@font-face</code></strong><br>
+ To improve Web fonts performance, {{cssxref("@font-face")}} has an experimental {{cssxref("@font-face/font-display", "font-display")}} descriptor.</td>
+ <td>Disabled<br>
+ <sub>(available since 46)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 46)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 46)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 46)</sub></td>
+ <td><code>layout.css.font-display.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Longhand properties of CSS Masks</strong><br>
+ The <a href="/en-US/docs/Web/CSS/CSS_Masks">longhand properties of CSS Masks</a> are only available behind a compile flag (<code>MOZ_ENABLE_MASK_AS_SHORTHAND</code>).</td>
+ <td>---</td>
+ <td>---</td>
+ <td>---</td>
+ <td>---</td>
+ <td>---</td>
+ </tr>
+ <tr>
+ <td><strong>The touch-action CSS property</strong><br>
+ The {{cssxref("touch-action")}} CSS property is part of the {{SpecName("Pointer Events")}} specification, and lets the CSS specify how and in what way the user is able to manipulate an object by touch.</td>
+ <td>50</td>
+ <td>---</td>
+ <td>---</td>
+ <td>---</td>
+ <td><code>layout.css.touch_action.enabled</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="JavaScript">JavaScript</h2>
+
+<p id="ECMAScript_2016">See also <a href="/en-US/docs/Web/JavaScript/New_in_JavaScript/ECMAScript_Next_support_in_Mozilla">ECMAScript Next support</a> for implemented features of ECMAScript 2016 and later, that are not experimental and thus available without preferences in Firefox Release.</p>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Feature</th>
+ <th scope="col">Firefox Nightly</th>
+ <th scope="col">Firefox Developer Edition</th>
+ <th scope="col">Firefox Beta</th>
+ <th scope="col">Firefox Release</th>
+ <th scope="col">Preference</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><strong><a href="/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Exponentiation">Exponentiation operator</a></strong></td>
+ <td>42</td>
+ <td>Will ship in version 52, see {{bug(1291212)}}</td>
+ <td>Will ship in version 52, see {{bug(1291212)}}</td>
+ <td>Will ship in version 52, see {{bug(1291212)}}</td>
+ <td>None</td>
+ </tr>
+ <tr>
+ <td><strong>Additions to the <code>ArrayBuffer</code> object</strong><br>
+ Adds the {{jsxref("ArrayBuffer.transfer()")}} that returns a new <code>ArrayBuffer</code> whose contents have been taken from the <code>oldBuffer</code>'s data (<a href="https://gist.github.com/lukewagner/2735af7eea411e18cf20">spec</a>).</td>
+ <td>36</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>None</td>
+ </tr>
+ <tr>
+ <td><strong>TypedObject objects</strong> (<a href="https://github.com/dslomov-chromium/typed-objects-es7">spec</a>)</td>
+ <td>Enabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>None</td>
+ </tr>
+ <tr>
+ <td><a href="/en-US/docs/Web/JavaScript/Reference/Global_Objects/SIMD">SIMD</a> (<a href="https://github.com/johnmccutchan/ecmascript_simd">specification and polyfill</a>)</td>
+ <td>Enabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>None</td>
+ </tr>
+ <tr>
+ <td><strong>Shared Memory objects</strong><br>
+ {{jsxref("SharedArrayBuffer")}}<br>
+ {{jsxref("Atomics")}}</td>
+ <td>Enabled<br>
+ <sub>(available since 46)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 46)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 46)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 46)</sub></td>
+ <td><code>javascript.options.shared_memory</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="APIs">APIs</h2>
+
+<h3 id="Canvas_WebGL">Canvas &amp; WebGL</h3>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Feature</th>
+ <th scope="col">Firefox Nightly</th>
+ <th scope="col">Firefox Developer Edition</th>
+ <th scope="col">Firefox Beta</th>
+ <th scope="col">Firefox Release</th>
+ <th scope="col">Preference</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><strong>WebGL 2</strong><br>
+ The {{domxref("WebGL2RenderingContext")}} interface provides the OpenGL ES 3.0 rendering context for the drawing surface of an HTML {{HTMLElement("canvas")}} element.</td>
+ <td>46<br>
+ <sub>(implemented with disabled pref before 46)</sub></td>
+ <td>Enabled in 51</td>
+ <td>Enabled in 51</td>
+ <td>Enabled in 51</td>
+ <td><code>webgl.enable-webgl2</code></td>
+ </tr>
+ <tr>
+ <td><strong><code>WEBGL_debug_renderer_info</code> extension</strong><br>
+ The {{domxref("WEBGL_debug_renderer_info")}} extension allows to transmit information useful to help debugging problems to the server.</td>
+ <td>42</td>
+ <td>42</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=742798">Disabled</a></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=742798">Disabled</a></td>
+ <td><code>webgl.enable-debug-renderer-info</code></td>
+ </tr>
+ <tr>
+ <td><strong>OffscreenCanvas</strong><br>
+ The {{domxref("OffscreenCanvas")}} interface provides a canvas that can be rendered off screen. It is available in both the window and <a href="/en-US/docs/Web/API/Web_Workers_API">worker</a> contexts.</td>
+ <td>Disabled<br>
+ <sub>(available since 44)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 44)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 44)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 44)</sub></td>
+ <td><code>gfx.offscreencanvas.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong><a href="/en-US/docs/Web/API/Canvas_API/Tutorial/Hit_regions_and_accessibility">Hit regions</a></strong><br>
+ Whether the mouse coordinates are within a particular area on the canvas, is a common problem to solve. The hit region API allows you define an area of your canvas and provides another possibility to expose interactive content on a canvas to accessibility tools.</td>
+ <td>Disabled<br>
+ <sub>(available since 30)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 30)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 30)</sub></td>
+ <td>Disabled<br>
+ <sub>(available since 30)</sub></td>
+ <td><code>canvas.hitregions.enabled</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h3 id="DOM"> DOM</h3>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Feature</th>
+ <th scope="col">Firefox Nightly</th>
+ <th scope="col">Firefox Developer Edition</th>
+ <th scope="col">Firefox Beta</th>
+ <th scope="col">Firefox Release</th>
+ <th scope="col">Preference</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><strong>WebVR API</strong><br>
+ The <a href="/en-US/docs/Web/API/WebVR_API">WebVR API</a> allows to control and use virtual reality devices.</td>
+ <td>46<br>
+ <sub>A major update of the interface happened in version 51.</sub></td>
+ <td>46<br>
+ <sub>A major update of the interface happened in version 51.</sub></td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>dom.vr.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>FlyWeb</strong><br>
+ <a href="https://flyweb.github.io/">FlyWeb</a> is a project at Mozilla focused on bringing a new set of APIs to the browser for advertising and discovering local-area web servers.</td>
+ <td>51</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>dom.flyweb.enabled</code></td>
+ </tr>
+ <tr>
+ <td><code><strong>HTMLMediaElement.seekToNextFrame()</strong></code><br>
+ Part of an experimentation process around support non-real-time access to media for tasks including filtering, editing, and so forth, the {{domxref("HTMLMediaElement.seekToNextFrame()")}} advances the the current play position to the next frame in the media.</td>
+ <td>49<br>
+ <sub>(Fundamental update in version 50)</sub></td>
+ <td>49<br>
+ <sub>(Fundamental update in version 50)</sub></td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>media.seekToNextFrame.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong><code>GeometryUtils.getBoxQuads()</code></strong> ({{bug(917755)}})</td>
+ <td>31</td>
+ <td>31</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107559">Disabled</a></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107559">Disabled</a></td>
+ <td><code>layout.css.getBoxQuads.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong><code>GeometryUtils.convertPointFromNode()</code></strong>,<br>
+ <strong><code>GeometryUtils.RectFromNode()</code></strong>, and<br>
+ <code><strong>GeometryUtils.convertQuadFromNode()</strong></code><br>
+ ({{bug(918189)}})</td>
+ <td>31</td>
+ <td>31</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107559">Disabled</a></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1107559">Disabled</a></td>
+ <td><code>layout.css.convertFromNode.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong><code>Node.rootNode</code></strong><br>
+ The {{domxref("Node.rootNode")}} property returns a {{domxref("Node")}} object representing the topmost node in the tree, or the current node if it's the topmost node in the tree.<br>
+ <em>This feature is kept experimental as its naming poses Web compatibility problems. It will be renamed in the future.</em></td>
+ <td>48</td>
+ <td>48</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1269155">Disabled</a></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1269155">Disabled</a></td>
+ <td><code>dom.node.rootNode.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Performance Observer API</strong><br>
+ The {{domxref("PerformanceObserver")}} interface is used to <em>observe</em> performance measurement events and be notified of new <a href="/en-US/docs/Web/API/PerformanceEntry" title="The PerformanceEntry object encapsulates a single performance metric that is part of the performance timeline. A performance entry can be directly created by making a performance mark or measure (for example by calling the mark() method) at an explicit point in an application. Performance entries are also created in indirect ways such as loading a resource (such as an image).">performance entries</a> as they are recorded in the browser's <em>performance timeline</em>.</td>
+ <td>49</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>dom.enable_performance_observer</code></td>
+ </tr>
+ <tr>
+ <td><strong>WebVTT Regions API</strong><br>
+ <a href="/en-US/docs/Web/API/Web_Video_Text_Tracks_Format">WebVTT</a> regions are parts of the video viewport that provide a rendering area for WebVTT cues. The {{domxref("VTTRegion")}} is the interface exposing the WebVTT cues.<br>
+ <em>This interface is considered to be in flux and isn't therefore activated in any version by default.</em></td>
+ <td>Disabled<br>
+ <sub>(Experimental implementation since version 30)</sub></td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>media.webvtt.regions.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Support for audio and video tracks</strong><br>
+ Implements {{domxref("HTMLMediaElement.audioTracks")}} and {{domxref("HTMLMediaElment.videoTracks")}}.<br>
+ <em>Firefox doesn't support multiple audio or video tracks, preventing the most common use cases for these properties to work properly. That's why these properties are not activated by default in any version.</em></td>
+ <td>Disabled<br>
+ <sub>(Experimental implementation since version 33)</sub></td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>media.track.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Better value for <code>Event.timestamp</code></strong><br>
+ The property {{domxref("Event.timestamp")}} is returning a {{domxref("DOMHighResTimeStamp")}}, but the value is not the time since but since the reboot. This change allow for returning a timestamp relative to the Unix epoch.</td>
+ <td>32 (Windows)<br>
+ 43 (Linux)</td>
+ <td>32 (Windows)<br>
+ 43 (Linux)</td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1026804">Disabled</a></td>
+ <td><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1026804">Disabled</a></td>
+ <td><code>media.track.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Pointer Events</strong></td>
+ <td>50</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>dom.w3c_pointer_events.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong><code>MediaDevices.ondevicechange</code> and the <code>devicechange</code> event</strong><br>
+ The {{domxref("MediaDevices.ondevicechange")}} event handler and corresponding {{event("devicechange")}} event make it possible to detect and react when audio and video devices are attached to or removed from the computer.</td>
+ <td>
+ <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308115">Disabled</a><br>
+ 51 (Mac)</p>
+
+ <p>Enabled<br>
+ 52 (Mac)<br>
+ 52 (Windows)<br>
+ 52 (Linux)</p>
+ </td>
+ <td>
+ <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308115">Disabled</a><br>
+ 51 (Mac)</p>
+
+ <p>Enabled<br>
+ 52 (Mac)<br>
+ 52 (Windows)<br>
+ 52 (Linux)</p>
+ </td>
+ <td>
+ <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308115">Disabled</a><br>
+ 51 (Mac)</p>
+
+ <p>Enabled<br>
+ 52 (Mac)<br>
+ 52 (Windows)<br>
+ 52 (Linux)</p>
+ </td>
+ <td>
+ <p><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1308115">Disabled</a><br>
+ 51 (Mac)</p>
+
+ <p>Enabled<br>
+ 52 (Mac)<br>
+ 52 (Windows)<br>
+ 52 (Linux)</p>
+ </td>
+ <td><code>media.ondevicechange.enabled</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="Developer_Tools">Developer Tools</h2>
+
+<table class="standard-table">
+ <thead>
+ <tr>
+ <th scope="col">Feature</th>
+ <th scope="col">Firefox Nightly</th>
+ <th scope="col">Firefox Developer Edition</th>
+ <th scope="col">Firefox Beta</th>
+ <th scope="col">Firefox Release</th>
+ <th scope="col">Preference</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><strong>Debugger rewrite in HTML</strong></td>
+ <td>52</td>
+ <td>52</td>
+ <td>52</td>
+ <td>52</td>
+ <td><code>devtools.debugger.new-debugger-frontend</code></td>
+ </tr>
+ <tr>
+ <td><strong>Console rewrite in HTML</strong></td>
+ <td>52</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>devtools.webconsole.new-frontend-enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Responsive Design Mode rewrite in HTML</strong><br>
+ A rewrite of Responsive Design Mode using HTML adds new features like a device selector (applies size, UA, dPR), UI redesign, and there's more still to come.</td>
+ <td>52</td>
+ <td>52</td>
+ <td>52</td>
+ <td>52</td>
+ <td><code>devtools.responsive.html.enabled</code></td>
+ </tr>
+ <tr>
+ <td><strong>Experimental Performance tool options</strong><br>
+ Enables options in the UI for JIT optimizations, memory, etc.</td>
+ <td>41</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td>Disabled</td>
+ <td><code>devtools.performance.ui.experimental</code></td>
+ </tr>
+ </tbody>
+</table>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="/en-US/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li>
+ <li><a href="https://nightly.mozilla.org/">Firefox Nightly</a></li>
+ <li><a href="https://www.mozilla.org/en-US/firefox/developer/">Firefox Developer Edition</a></li>
+</ul>
diff --git a/files/pt-br/mozilla/firefox/performance_best_practices_for_firefox_fe_engineers/index.html b/files/pt-br/mozilla/firefox/performance_best_practices_for_firefox_fe_engineers/index.html
new file mode 100644
index 0000000000..53e23e5f98
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/performance_best_practices_for_firefox_fe_engineers/index.html
@@ -0,0 +1,328 @@
+---
+title: Performance best practices for Firefox front-end engineers
+slug: Mozilla/Firefox/Performance_best_practices_for_Firefox_fe_engineers
+translation_of: Mozilla/Firefox/Performance_best_practices_for_Firefox_fe_engineers
+---
+<div>{{FirefoxSidebar}}</div>
+
+<p>This guide will help Firefox developers working on front-end code produce code which is as performant as possible—not just on its own, but in terms of its impact on other parts of Firefox. Always keep in mind the side effects your changes may have, from blocking other tasks, to interfering with other user interface elements.</p>
+
+<h2 id="Avoid_the_main_thread_where_possible">Avoid the main thread where possible</h2>
+
+<p>The main thread is where we process user events and do painting. It's also important to note that most of our JavaScript runs on the main thread, so it's easy for script to cause delays in event processing or painting. That means that the more code we can get off of the main thread, the more that thread can respond to user events, paint, and generally be responsive to the user.</p>
+
+<p>You might want to consider using a {{domxref("Worker")}} if you need to do some computation that can be done off of the main thread. If you need more elevated privileges than a standard worker allows, consider using a {{domxref("ChromeWorker")}}, which is a Firefox-only API which lets you create workers with more elevated privileges.</p>
+
+<h2 id="Use_requestIdleCallback">Use requestIdleCallback()</h2>
+
+<p>If you simply cannot avoid doing some kind of long job on the main thread, try to break it up into smaller pieces that you can run when the browser has a free moment to spare, and the user isn't doing anything. You can do that using {{domxref("Window.requestIdleCallback", "requestIdleCallback()")}} and the <a href="/en-US/docs/Web/API/Background_Tasks_API">Cooperative Scheduling of Background Tasks API</a>, and doing it only when we have a free second where presumably the user isn’t doing something.</p>
+
+<p>See also the blog post <a href="https://hacks.mozilla.org/2016/11/cooperative-scheduling-with-requestidlecallback/">Collective scheduling with requestIdleCallback</a>.</p>
+
+<p>As of {{bug(1353206)}}, you can also schedule idle events in non-DOM contexts by using <code>Services.tm.idleDispatchToMainThread.</code> See the <code>nsIThreadManager.idl</code> file for more details.</p>
+
+<h2 id="Hide_your_panels">Hide your panels</h2>
+
+<p>If you’re adding a new XUL {{XULElem("popup")}} or {{XULElem("panel")}} to a document, set the {{XULAttr("hidden")}} attribute to <code>true</code> by default. By doing so, you cause the binding applied on demand rather than at load time, which makes initial construction of the XUL document faster.</p>
+
+<h2 id="Get_familiar_with_the_pipeline_that_gets_pixels_to_the_screen">Get familiar with the pipeline that gets pixels to the screen</h2>
+
+<p>Learn how pixels you draw make their way to the screen. Knowing the path they will take through the various layers of the browser engine will help you optimize your code to avoid pitfalls.</p>
+
+<p>The rendering process goes through the following steps:<img alt="This is the pipeline that a browser uses to get pixels to the screen." src="https://mdn.mozillademos.org/files/14995/pasted%20image%200.png" style="height: 167px; width: 1093px;"></p>
+
+<div class="note">
+<p>The above image is used under <a href="https://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0</a>, courtesy of <a href="https://developers.google.com/web/fundamentals/performance/rendering/avoid-large-complex-layouts-and-layout-thrashing">this page</a> from our friends at Google, which itself is well worth the read.</p>
+</div>
+
+<div class="note">
+<p>For a very down-to-earth explanation of the Style, Layout, Paint and Composite steps of the pipeline, <a href="https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/">this Hacks blog post</a> does a great job of explaining it.</p>
+</div>
+
+<p>To achieve a 60 FPS frame rate, all of the above has to happen in 16 milliseconds or less, every frame.</p>
+
+<p>Note that {{domxref("Window.requestAnimationFrame", "requestAnimationFrame()")}} lets you queue up JavaScript to <strong>run right before the style flush occurs</strong>. This allows you to put all of your DOM writes (most importantly, anything that could change the size or position of things in the DOM) just before the style and layout steps of the pipeline, combining all the style and layout calculations into a single batch so it all happens once, in a single frame tick, instead of across multiple frames. See {{anch("Detecting and avoiding synchronous reflow")}} below for more information.</p>
+
+<p>This also means that {{domxref("Window.requestAnimationFrame", "requestAnimationFrame()")}} is <strong>not a good place</strong> to put queries for layout or style information.</p>
+
+<h2 id="Detecting_and_avoiding_synchronous_style_flushes">Detecting and avoiding synchronous style flushes</h2>
+
+<h3 id="What_are_style_flushes">What are style flushes?</h3>
+
+<p>When CSS is applied to a document (HTML or XUL, it doesn’t matter), the browser does calculations to figure out which CSS styles will apply to each element. This happens the first time the page loads and the CSS is initially applied, but can happen again if JavaScript modifies the DOM.</p>
+
+<p>JavaScript code might, for example, change DOM node attributes (either directly or by adding or removing classes from elements), and can also add, remove, or delete DOM nodes. Because styles are normally scoped to the entire document, the cost of doing these style calculations is proportional to the number of DOM nodes in the document (and the number of styles being applied).</p>
+
+<p>It is expected that over time, script will update the DOM, requiring us to recalculate styles. Normally, the changes to the DOM just result in the standard style calculation occurring immediately after the JavaScript has finished running during the 16ms window, inside the "Style" step. That's the ideal scenario.</p>
+
+<p>However, it's possible for script to do things that force multiple style calculations (or <strong>style flushes</strong>) to occur synchronously during the JavaScript part of the 16 ms window. The more of them there are, the more likely they'll exceed the 16ms frame budget. If that happens, some of them will be postponed until the next frame (or possibly multiple frames, if necessary), this skipping of frames is called <strong>jank</strong>.</p>
+
+<p>Generally speaking, you force a synchronous style flush any time you query for style information after the DOM has changed within the same frame tick. Depending on whether or not <a href="https://gist.github.com/paulirish/5d52fb081b3570c81e3a">the style information you’re asking for has something to do with size or position</a>, you may also cause a layout recalculation (also referred to as <strong>layout flush</strong> or <strong>reflow</strong>), which is also an expensive step (see {{anch("Detecting and avoiding synchronous reflow")}} below).</p>
+
+<p>To avoid this: avoid reading style information if you can. If you <em>must</em> read style information, do so at the very beginning of the frame, before any changes have been made to the DOM since the last time a style flush occurred.</p>
+
+<p>Historically, there hasn't been an easy way of doing this - however, {{bug(1434376)}} has recently landed some ChromeOnly helpers to the window binding to make this simpler.</p>
+
+<p>If you want to queue up some JavaScript to run after the next "natural" style and layout flush, try:</p>
+
+<pre class="brush: js">// Suppose we want to get the computed "display" style of some node without
+// causing a style flush. We could do it this way:
+async function nodeIsDisplayNone(node) {
+ let display = await window.promiseDocumentFlushed(() =&gt; {
+ // Do _not_ under any circumstances write to the DOM in one of these
+ // callbacks!
+ return window.getComputedStyle(node).display;
+ });
+
+ return display == "none";
+}
+</pre>
+
+<div class="note">
+<p>See {{anch("Detecting and avoiding synchronous reflow")}} for a more advanced example of getting layout information, and then setting it safely, without causing flushes.</p>
+</div>
+
+<p><code>promiseDocumentFlushed</code> is only available to priviledged script, and should be called on the inner window of a top-level frame. Calling it on the outer window of a subframe is not supported, and calling it from within the inner window of a subframe might cause the callback to fire even though a style and layout flush will still be required. These gotchas should be fixed by {{bug(1441173)}}.</p>
+
+<p>For now, it is up to you as the consumer of this API to not accidentally write to the DOM within the <code>promiseDocumentFlushed</code> callback. Doing so might cause flushes to occur for other <code>promiseDocumentFlushed</code> callbacks that are scheduled to fire in the same tick of the refresh driver. {{bug(1441168)}} tracks work to make it impossible to modify the DOM within a <code>promiseDocumentFlushed</code> callback.</p>
+
+<h3 id="Writing_tests_to_ensure_you_don’t_add_more_synchronous_style_flushes">Writing tests to ensure you don’t add more synchronous style flushes</h3>
+
+<p>Unlike reflow, there isn’t a “observer” mechanism for style recalculations. However, as of Firefox 49, the {{ifattribute("nsIDOMWindowUtils", "elementsRestyled")}} attribute records a count of how many style calculations have occurred for a particular DOM window.</p>
+
+<p>It should be possible to write a test that gets the <code>nsIDOMWindowUtils</code> for a browser window, records the number of styleFlushes, then <strong>synchronously calls the function</strong> that you want to test, and immediately after checks the styleFlushes attribute again. If the value went up, your code caused synchronous style flushes to occur.</p>
+
+<p>Note that your test and function <em>must be called synchronously</em> in order for this test to be accurate. If you ever go back to the event loop (by yielding, waiting for an event, etc), style flushes unrelated to your code are likely to run, and your test will give you a false positive.</p>
+
+<h2 id="Detecting_and_avoiding_synchronous_reflow">Detecting and avoiding synchronous reflow</h2>
+
+<div class="note">
+<p>This is also sometimes called “sync layout”, "sync layout flushes" or “sync layout calculations”</p>
+</div>
+
+<p><strong>Sync reflow</strong> is a term bandied about a lot, and has negative connotations. It's not unusual for an engineer to have only the vaguest sense of what it is—and to only know to avoid it. This section will attempt to demystify things.</p>
+
+<p>The first time a document (XUL or HTML) loads, we parse the markup, and then apply styles. Once the styles have been calculated, we then need to calculate where things are going to be placed on the page. This layout step can be seen in the “16ms” pipeline graphic above, and occurs just before we paint things to be composited for the user to see.</p>
+
+<p>It is expected that over time, script will update the DOM, requiring us to recalculate styles, and then update layout. Normally, however, the changes to the DOM just result in the standard style calculation that occurs immediately after the JavaScript has finished running during the 16ms window.</p>
+
+<h3 id="Interruptible_reflow">Interruptible reflow</h3>
+
+<p>Since <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=67752">the early days</a>, Gecko has had the notion of interruptible reflow. This is a special type of <strong>content-only</strong> reflow that checks at particular points whether or not it should be interrupted (usually to respond to user events).</p>
+
+<p>Because <strong>interruptible reflows can only be interrupted when laying out content, and not chrome UI</strong>, the rest of this section is offered only as context.</p>
+
+<p>When an interruptible reflow is interrupted, what really happens is that certain layout operations can be skipped in order to paint and process user events sooner.</p>
+
+<p>When an interruptible reflow is interrupted, the best-case scenario is that all layout is skipped, and the layout operation ends.</p>
+
+<p>The worst-case scenario is that none of the layout can be skipped despite being interrupted, and the entire layout calculation occurs.</p>
+
+<p>Reflows that are triggered "naturally" by the 16ms tick are all considered interruptible. Despite not actually being interuptible when laying out chrome UI, striving for interruptible layout is always good practice because uninterruptible layout has the potential to be much worse (see next section).</p>
+
+<p><strong>To repeat, only interruptible reflows in web content can be interrupted.</strong></p>
+
+<h3 id="Uninterruptible_reflow">Uninterruptible reflow</h3>
+
+<p>Uninterruptible reflow is what we want to <strong>avoid at all costs</strong>. Uninterruptible reflow occurs when some DOM node’s styles have changed such that the size or position of one or more nodes in the document will need to be updated, and then <strong>JavaScript asks for the size or position of anything</strong>. Since everything is pending a reflow, the answer isn't available, so everything stalls until the reflow is complete and the script can be given an answer. Flushing layout also means that styles must be flushed to calculate the most up-to-date state of things, so it's a double-whammy.</p>
+
+<p>Here’s a simple example, cribbed from <a href="http://paulrouget.com/e/fxoshud">this blog post by Paul Rouget</a>:</p>
+
+<pre class="brush: js">div1.style.margin = "200px"; // Line 1
+var height1 = div1.clientHeight; // Line 2
+div2.classList.add("foobar"); // Line 3
+var height2 = div2.clientHeight; // Line 4
+doSomething(height1, height2); // Line 5</pre>
+
+<p>At line 1, we’re setting some style information on a DOM node that’s going to result in a reflow - but (at just line 1) it’s okay, because that reflow will happen after the style calculation.</p>
+
+<p>Note line 2 though - we’re asking for the height of some DOM node. This means that Gecko needs to synchronously calculate layout (and styles) using an uninterruptible reflow in order to answer the question that JavaScript is asking (“What is the <code>clientHeight</code> of <code>div1</code>?”).</p>
+
+<p>It’s possible for our example to avoid this synchronous, uninterruptible reflow by moving lines 2 and 4 above line 1. Assuming there weren’t any style changes requiring size or position recalculation above line 1, the <code>clientHeight</code> information should be cached since the last reflow, and will not result in a new layout calculation.</p>
+
+<p>If you can avoid querying for the size or position of things in JavaScript, that’s the safest option—especially because it’s always possible that something earlier in this tick of JavaScript execution caused a style change in the DOM without you knowing it.</p>
+
+<p>Note that given the same changes to the DOM of a chrome UI document, a single synchronous uninterruptible reflow is no more computationally expensive than an interruptible reflow triggered by the 16ms tick. It is, however, advantageous to strive for reflow to only occur in the one place (the layout step of the 16ms tick) as opposed to multiple times during the 16ms tick (which has a higher probability of running through the 16ms budget).</p>
+
+<h3 id="How_do_I_avoid_triggering_uninterruptible_reflow">How do I avoid triggering uninterruptible reflow?</h3>
+
+<p>Here's a <a href="https://gist.github.com/paulirish/5d52fb081b3570c81e3a">list of things that JavaScript can ask for that can cause uninterruptible reflow</a>, to help you think about the problem. Note that some items in the list may be browser-specific or subject to change, and that an item not occurring explicitly in the list doesn't mean it doesn't cause reflow. For instance, at time of writing accessing <code>event.rangeOffset</code> <a href="https://searchfox.org/mozilla-central/rev/6bfadf95b4a6aaa8bb3b2a166d6c3545983e179a/dom/events/UIEvent.cpp#215-226">triggers reflow</a> in Gecko, and does not occur in the earlier link. If you're unsure whether something causes reflow, check!</p>
+
+<p>Note how abundant the properties in that first list are. This means that when enumerating properties on DOM objects (e.g. elements/nodes, events, windows, etc.) <strong>accessing the value of each enumerated property will almost certainly (accidentally) cause uninterruptible reflow</strong>, because a lot of DOM objects have one or even several properties that do so.</p>
+
+<p>If you require size or position information, you have a few options.</p>
+
+<p>{{bug(1434376)}} has recently landed a helper in the window binding to make it easier for priviledged code to queue up JavaScript to run when we know that the DOM is not dirty, and size, position, and style information is cheap to query for.</p>
+
+<p>Here's an example:</p>
+
+<pre class="brush: js">async function matchWidth(elem, otherElem) {
+ let width = await window.promiseDocumentFlushed(() =&gt; {
+ // Do _not_ under any circumstances write to the DOM in one of these
+ // callbacks!
+ return elem.clientWidth;
+ });
+
+ requestAnimationFrame(() =&gt; {
+ otherElem.style.width = `${width}px`;
+ });
+}</pre>
+
+<p>Please see the section on <code>promiseDocumentFlushed</code> in {{anch("Detecting and avoiding synchronous style flushes")}} for more information on how to use the API.</p>
+
+<p>Note that queries for size and position information are only expensive if the DOM has been written to. Otherwise, we're doing a cheap look-up of cached information. If we work hard to move all DOM writes into <code>requestAnimationFrame()</code>, then we can be sure that all size and position queries are cheap.</p>
+
+<p>It's also possible (though less infallible than <code>promiseDocumentFlushed</code>) to queue JavaScript to run very soon after the frame has been painted, where the likelihood is highest that the DOM has not been written to, and layout and style information queries are still cheap. This can be done by using a <code>setTimeout</code> or dispatching a runnable inside a <code>requestAnimationFrame</code> callback, for example:</p>
+
+<pre class="brush: js">requestAnimationFrame(() =&gt; {
+ setTimeout(() =&gt; {
+ // This code will be run ASAP after Style and Layout information have
+ // been calculated and the paint has occurred. Unless something else
+ // has dirtied the DOM very early, querying for style and layout information
+ // here should be cheap.
+ }, 0);
+});
+
+// Or, if you are running in privileged JavaScript and want to avoid the timer overhead,
+// you could also use:
+
+requestAnimationFrame(() =&gt; {
+ Services.tm.dispatchToMainThread(() =&gt; {
+ // Same-ish as above.
+ });
+});</pre>
+
+<div class="note">
+<p>This also implies that<strong> </strong><em>querying for size and position information</em> in <code>requestAnimationFrame()</code> has a high probability of causing a synchronous reflow.</p>
+</div>
+
+<h3 id="Other_useful_methods">Other useful methods</h3>
+
+<p>Below you'll find some suggestions for other methods which may come in handy when you need to do things without incurring synchronous reflow. These methods generally return the most-recently-calculated value for the requested value, which means the value may no longer be current, but may still be "close enough" for your needs. Unless you need precisely accurate information, they can be valuable tools in your performance toolbox.</p>
+
+<h4 id="nsIDOMWindowUtils.getBoundsWithoutFlushing">nsIDOMWindowUtils.getBoundsWithoutFlushing()</h4>
+
+<p><code>getBoundsWithoutFlushing()</code> does exactly what its name suggests: it allows you to get the bounds rectangle for a DOM node contained in a window without flushing layout. This means that the information you get is potentially out-of-date, but allows you to avoid a sync reflow. If you can make do with information that may not be quite current, this can be helpful.</p>
+
+<h4 id="nsIDOMWindowUtils.getRootBounds">nsIDOMWindowUtils.getRootBounds()</h4>
+
+<p>Like <code>getBoundsWithoutFlushing()</code>, <code>getRootBounds()</code> lets you get the dimensions of the window without risking a synchronous reflow.</p>
+
+<h4 id="nsIDOMWindowUtils.getScrollXY">nsIDOMWindowUtils.getScrollXY()</h4>
+
+<p>Returns the window's scroll offsets without taking the chance of causing a sync reflow.</p>
+
+<h3 id="Writing_tests_to_ensure_you_don’t_add_more_unintentional_reflow">Writing tests to ensure you don’t add more unintentional reflow</h3>
+
+<p>The interface {{source("docshell/base/nsIReflowObserver.idl", "nsIReflowObserver")}} lets us detect both interruptible and uninterruptible reflows. A number of tests have been written that exercise various functions of the browser (<a href="http://searchfox.org/mozilla-central/rev/78cefe75fb43195e7f5aee1d8042b8d8fc79fc70/browser/base/content/test/general/browser_tabopen_reflows.js">opening tabs</a>, <a href="http://searchfox.org/mozilla-central/source/browser/base/content/test/general/browser_windowopen_reflows.js">opening windows</a>) and ensure that we don’t add new uninterruptible reflows accidentally while those actions occur.</p>
+
+<p>You should add tests like this for your feature if you happen to be touching the DOM.</p>
+
+<h3 id="Detecting_over-painting_with_paint_flashing">Detecting over-painting with paint flashing</h3>
+
+<p>Painting is, in general, cheaper than both style calculation and layout calculation; still, the more you can avoid, the better. Generally speaking, the larger an area that needs to be repainted, the longer it takes. Similarly, the more things that need to be repainted, the longer it takes.</p>
+
+<p>Our graphics team has added a handy feature to help you detect when and where paints are occurring. This feature is called “paint flashing,” and it can be activated for both web content and the browser chrome. Paint flashing tints each region being painted with a randomly selected color so that it’s more easy to see what on the screen is being painted.</p>
+
+<ul>
+ <li>You can activate paint flashing for browser chrome by setting <code>nglayout.debug.paint_flashing_chrome</code> to <code>true</code>.</li>
+ <li>You can activate paint flashing for web content by setting <code>nglayout.debug.paint_flashing</code> to <code>true</code>.</li>
+</ul>
+
+<p>After enabling these, exercise your function and see what’s painting. See a lot of flashing / colors? That means a lot of painting is going on. The worst case is called <strong>over-painting</strong>. This is when you draw multiple times over the same space. Unless transparency is involved, all but the last painting will be overwritten, becoming unnecessary. If you can find ways to avoid doing this, you can save substantial time.</p>
+
+<p>Keep in mind that painting occurs on the main thread. Remember, too, that the goal is to have as little happen on the main thread as possible. That means that finding and removing (when possible) over-painting is a good place to start reducing your burden on the main thread, which will in turn improve performance.</p>
+
+<p>Perhaps you’re animating something that requires a repaint? For example, transitioning the {{cssxref("background-color")}} of a DOM node from red to blue will result in a repaint for every frame of the animation, and paint flashing will reveal that. Consider using a different animation that can be accelerated by the GPU. These GPU-accelerated animations occur off of the main thread, and have a much higher probability of running at 60 FPS (see the section below called {{anch("Use the compositor for animations")}} for further details).</p>
+
+<p>Perhaps you’re touching some DOM nodes in such a way that unexpected repaints are occurring in an area that don’t need it. Best to investigate and try to remove those as best you can. Sometimes, our graphics layer invalidates regions in ways that might not be clear to you, and a section outside of the thing that just repainted will also repaint. Sometimes this can be addressed by ensuring that the thing changing is on its own layer (though this comes at a memory cost). You can put something on its own layer by setting its {{cssxref("z-index")}}, or by setting the {{cssxref("will-change")}} on the node, though this should be used sparingly.</p>
+
+<p>If you’re unsure why something is repainting, consider talking to our always helpful graphics team in the <a href="https://chat.mozilla.org/#/room/#gfx:mozilla.org">gfx room</a> on <a href="https://wiki.mozilla.org/Matrix">Matrix</a>, and they can probably advise you. Note that a significant number of the graphics team members are in the US Eastern Time zone (UTC-5 or UTC-4 during Daylight Saving Time), so let that information guide your timing when you ask questions in the <a href="https://chat.mozilla.org/#/room/#gfx:mozilla.org">gfx room</a> .</p>
+
+<h2 id="Adding_nodes_using_DocumentFragments">Adding nodes using DocumentFragments</h2>
+
+<p>Sometimes you need to add several DOM nodes as part of an existing DOM tree. For example, when using XUL {{XULElem("menupopup")}}s, you often have script which dynamically inserts {{XULElem("menuitem")}}s. Inserting items into the DOM has a cost. If you're adding a number of children to a DOM node in a loop, it's often more efficient to batch them into a single insertion by creating a {{domxref("DocumentFragment")}}, adding the new nodes to that, then inserting the <code>DocumentFragment</code> as a child of the desired node.</p>
+
+<p>A <code>DocumentFragment</code> is maintained in memory outside the DOM itself, so changes don't cause reflow. The API is straightforward:</p>
+
+<ol>
+ <li>Create the <code>DocumentFragment</code> by calling {{domxref("Document.createDocumentFragment()")}}.</li>
+ <li>Create each child element (by calling {{domxref("Document.createElement()")}} for example), and add each one to the fragment by calling {{domxref("Node.appendChild", "DocumentFragment.appendChild()")}}.</li>
+ <li>Once the fragment is populated, append the fragment to the DOM by calling {{domxref("Node.appendChild", "appendChild()")}} on the parent element for the new elements.</li>
+</ol>
+
+<p>This example has been cribbed from <a href="https://davidwalsh.name/documentfragment">davidwalsh’s blog post</a>:</p>
+
+<pre class="brush: js">// Create the fragment
+
+var frag = document.createDocumentFragment();
+
+// Create numerous list items, add to fragment
+
+for(var x = 0; x &lt; 10; x++) {
+ var li = document.createElement("li");
+ li.innerHTML = "List item " + x;
+ frag.appendChild(li);
+}
+
+// Mass-add the fragment nodes to the list
+
+listNode.appendChild(frag);
+</pre>
+
+<p>The above is strictly cheaper than individually adding each node to the DOM.</p>
+
+<h2 id="The_Gecko_profiler_add-on_is_your_friend">The Gecko profiler add-on is your friend</h2>
+
+<p>The Gecko profiler is your best friend when diagnosing performance problems and looking for bottlenecks. There’s plenty of excellent documentation on MDN about the Gecko profiler:</p>
+
+<ul>
+ <li><a href="/en-US/docs/Mozilla/Performance/Reporting_a_Performance_Problem">Basic instructions for gathering and sharing a performance profile</a></li>
+ <li><a href="/en-US/docs/Mozilla/Performance/Profiling_with_the_Built-in_Profiler">Advanced profile analysis</a></li>
+</ul>
+
+<h2 id="Don’t_guess—measure.">Don’t guess—measure.</h2>
+
+<p>If you’re working on a performance improvement, this should go without saying: ensure that what you care about is actually improving by measuring before and after.</p>
+
+<p>Landing a speculative performance enhancement is the same thing as landing speculative bug fixes—these things need to be tested. Even if that means instrumenting a function with a {{jsxref("Date.now()")}} recording at the entrance, and another <code>Date.now()</code> at the exit points in order to measure processing time changes.</p>
+
+<p>Prove to yourself that you’ve actually improved something by measuring before and after.</p>
+
+<h3 id="Use_the_performance_API">Use the performance API</h3>
+
+<p>The <a href="/en-US/docs/Web/API/Performance_API">performance API</a> is very useful for taking high-resolution measurements. This is usually much better than using your own hand-rolled timers to measure how long things take. You access the API through {{domxref("Window.performance")}}.</p>
+
+<p>Also, the Gecko profiler back-end is in the process of being modified to expose things like markers (from {{domxref("Performance.mark", "window.performance.mark()")}}).</p>
+
+<h2 id="Use_the_compositor_for_animations">Use the compositor for animations</h2>
+
+<p>Performing animations on the main thread should be treated as <strong>deprecated</strong>. Avoid doing it. Instead, animate using {{domxref("Element.animate()")}}. See the article <a href="https://hacks.mozilla.org/2016/08/animating-like-you-just-dont-care-with-element-animate/">Animating like you just don't care</a> for more information on how to do this.</p>
+
+<h2 id="Explicitly_define_start_and_end_animation_values">Explicitly define start and end animation values</h2>
+
+<p>Some optimizations in the animation code of Gecko are based on an expectation that the <code>from</code> (0%) and the <code>to</code> (100%) values will be explicitly defined in the <code>@keyframes</code> definition. Even though these values may be inferred through the use of initial values or the cascade, the offscreen animation optimizations are dependent on the explicit definition. See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1419096#c18">this comment</a> and a few previous comments on that bug for more information.</p>
+
+<h2 id="Use_IndexedDB_for_storage">Use IndexedDB for storage</h2>
+
+<p><a href="en-US/docs/Web/HTML/Using_the_application_cache">AppCache</a> and <a href="/en-US/docs/Web/API/Storage/LocalStorage">LocalStorage</a> are synchronous storage APIs that will block the main thread when you use them. Avoid them at all costs!</p>
+
+<p><a href="/en-US/docs/Web/API/IndexedDB_API/Using_IndexedDB">IndexedDB</a> is preferable, as the API is asynchronous (all disk operations occur off of the main thread), and can be accessed from web workers.</p>
+
+<p>IndexedDB is also arguably better than storing and retrieving JSON from a file—particularly if the JSON encoding or decoding is occurring on the main thread. IndexedDB will do JavaScript object serialization and deserialization for you using the <a href="/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm">structured clone algorithm</a>, meaning that you can stash <a href="/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm#Supported_types">things like maps, sets, dates, blobs, and more</a>, without having to do conversions for JSON compatibility.</p>
+
+<p>A Promise-based wrapper for IndexedDB, <a href="http://searchfox.org/mozilla-central/source/toolkit/modules/IndexedDB.jsm">IndexedDB.jsm</a>, is available for chrome code.</p>
+
+<h2 id="Test_on_weak_hardware">Test on weak hardware</h2>
+
+<p>For the folks paid to work on Firefox, we tend to have pretty powerful hardware for development. This is great, because it reduces build times, and means we can do our work faster.</p>
+
+<p>We should remind ourselves that the majority of our user base is unlikely to have similar hardware. Look at the <a href="https://metrics.mozilla.com/firefox-hardware-survey/">Firefox Hardware Report</a> to get a sense of what our users are working with. Test on slower machines to make it more obvious to yourself if what you’ve written impacts the performance of the browser.</p>
+
+<h2 id="Consider_loading_scripts_with_the_subscript_loader_asynchronously">Consider loading scripts with the subscript loader asynchronously</h2>
+
+<p>If you've ever used the subscript loader, you might not know that it can load scripts asynchronously, and return a Promise once they're loaded. For example:</p>
+
+<pre class="brush: js">Services.scriptloader.loadSubScriptWithOptions(myScriptURL, { async: true }).then(() =&gt; {
+ console.log("Script at " + myScriptURL + " loaded asynchronously!");
+});</pre>
diff --git a/files/pt-br/mozilla/firefox/privacidade/index.html b/files/pt-br/mozilla/firefox/privacidade/index.html
new file mode 100644
index 0000000000..dd6979435e
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/privacidade/index.html
@@ -0,0 +1,16 @@
+---
+title: Privacidade
+slug: Mozilla/Firefox/Privacidade
+translation_of: Mozilla/Firefox/Privacy
+---
+<div>{{FirefoxSidebar}}</div><ul>
+ <li><a href="/pt-BR/Firefox/Privacidade/Proteção_de_rastreamento">Proteção de rastreamento</a></li>
+</ul>
+
+<div style="display: none;" class="pcl_tooltip_box">Image already added
+<div class="arrow border"> </div>
+
+<div class="arrow"> </div>
+</div>
+
+<div style="display: none;" class="pcl_global_mask"> </div>
diff --git a/files/pt-br/mozilla/firefox/privacidade/proteção_de_rastreamento/index.html b/files/pt-br/mozilla/firefox/privacidade/proteção_de_rastreamento/index.html
new file mode 100644
index 0000000000..438c240001
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/privacidade/proteção_de_rastreamento/index.html
@@ -0,0 +1,84 @@
+---
+title: Proteção de rastreamento
+slug: Mozilla/Firefox/Privacidade/Proteção_de_rastreamento
+translation_of: Mozilla/Firefox/Privacy/Tracking_Protection
+---
+<div>{{FirefoxSidebar}}</div>
+
+<h2 id="O_que_é_proteção_de_rastreamento">O que é proteção de rastreamento?</h2>
+
+<p><span id="result_box" lang="pt"><span>Começando na versão 42, o Firefox Desktop e o Firefox para Android incluem proteção de rastreamento embutida.</span> <span>Nas janelas de Navegação Privada (guias, no Firefox para Android), o Firefox bloqueará o conteúdo carregado de domínios que acompanham os usuários em todos os sites.</span></span></p>
+
+<p><span id="result_box" lang="pt"><span>Alguns conteúdos bloqueados fazem parte do layout da página e os usuários podem notar problemas de layout onde o Firefox bloqueou essas cargas.</span> <span>Às vezes, os usuários não percebem nada, mas a grade da página pode funcionar de modo que outros elementos da página se deslizem para preencher os buracos deixados pelos elementos bloqueados.</span></span></p>
+
+<p><span id="result_box" lang="pt"><span>Quando o Firefox bloqueia o conteúdo, ele registrará uma mensagem no Console da Web como este:</span></span></p>
+
+<pre>The resource at "http://some/url" was blocked because tracking protection is enabled.</pre>
+
+<p><span id="result_box" lang="pt"><span>Note que, com o Firefox para Android, você pode acessar a saída do console usando o depurador remoto.</span></span></p>
+
+<p><span id="result_box" lang="pt"><span>A interface do usuário do Firefox indicará aos usuários quando o conteúdo foi bloqueado e habilitá-los a desbloqueá-lo para a sessão atual se eles escolherem.</span> <span>Os usuários também poderão desativar a proteção de rastreamento inteiramente se eles escolherem.</span></span></p>
+
+<h2 id="Como_o_Firefox_escolhe_o_que_bloquear">Como o Firefox escolhe o que bloquear?</h2>
+
+<p><span id="result_box" lang="pt"><span>O conteúdo é bloqueado com base no domínio do qual ele deve ser carregado.</span></span></p>
+
+<p><span id="result_box" lang="pt"><span>O Firefox enviará uma lista de sites que foram identificados como envolvidos no rastreamento de sites de usuários.</span> <span>Quando a proteção de rastreamento é ativada, o Firefox bloqueará o conteúdo de sites na lista.</span></span></p>
+
+<p><span id="result_box" lang="pt"><span>Os sites que rastreiam usuários são mais comuns os sites de publicidade e análise de terceiros.</span></span></p>
+
+<h2 id="O_que_isso_significa_para_o_seu_site">O que isso significa para o seu site?</h2>
+
+<p><span id="result_box" lang="pt"><span>Mais obviamente, isso significa que quando a proteção de rastreamento está habilitada:</span></span></p>
+
+<ul>
+ <li><span id="result_box" lang="pt"><span>O conteúdo veiculado a partir de rastreadores de terceiros não será visível para usuários</span></span></li>
+ <li><span id="result_box" lang="pt"><span>Seu site não poderá usar serviços de publicidade ou analítica de terceiros que se envolvam em rastreamento</span></span></li>
+</ul>
+
+<p><span id="result_box" lang="pt"><span>Mais sutilmente, se outras partes do seu site dependerem de rastreadores sendo carregados, essas partes também serão quebradas quando a proteção de rastreamento estiver ativada.</span> <span>Por exemplo, se o seu site incluir um retorno de chamada que é executado quando o conteúdo de um site de rastreamento é carregado, o retorno de chamada não será executado.</span></span></p>
+
+<p><span id="result_box" lang="pt"><span>Por exemplo, você não deve usar o Google Analytics da seguinte maneira:</span></span></p>
+
+<pre class="brush:html example-bad">&lt;a href="http://www.example.com" onclick="trackLink('http://www.example.com', event);"&gt;Visit example.com&lt;/a&gt;
+&lt;script&gt;
+function trackLink(url,event) {
+ event.preventDefault();
+ ga('send', 'event', 'outbound', 'click', url, {
+     'transport': 'beacon',
+     'hitCallback': function() {
+ document.location = url;
+ }
+   });
+}
+&lt;/script&gt;</pre>
+
+<p><span id="result_box" lang="pt"><span>Em vez disso, você deve considerar verificar quando o objeto "ga", para o Google Analytics, foi inicializado ou não:</span></span></p>
+
+<pre class="brush:html example-good">&lt;a href="http://www.example.com" onclick="trackLink('http://www.example.com', event);"&gt;Visit example.com&lt;/a&gt;
+&lt;script&gt;
+function trackLink(url,event) {
+ event.preventDefault();
+ if (window.ga &amp;&amp; <span class="pl-smi">ga</span>.loaded) {
+ ga('send', 'event', 'outbound', 'click', url, {
+     'transport': 'beacon',
+      'hitCallback': function() { document.location = url; }
+    });
+ } else {
+ document.location = url;
+ }
+}
+&lt;/script&gt;
+</pre>
+
+<p><span id="result_box" lang="pt"><span>Mais informações sobre esta técnica estão disponíveis em</span></span> <a href="https://hacks.mozilla.org/2016/01/google-analytics-privacy-and-event-tracking/">Google Analytics, Privacy, and Event Tracking</a>.</p>
+
+<p><span id="result_box" lang="pt"><span>Observe que, dependendo de um terceiro dessa maneira, não é uma boa prática, pois isso significa que seu site pode ser quebrado se o terceiro estiver lento ou não disponível, ou se o rastreador estiver bloqueado por um complemento.</span></span></p>
+
+<div class="pcl_tooltip_box" style="display: none;">Image already added
+<div class="arrow border"> </div>
+
+<div class="arrow"> </div>
+</div>
+
+<div class="pcl_global_mask" style="display: none;"> </div>
diff --git a/files/pt-br/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html b/files/pt-br/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html
new file mode 100644
index 0000000000..0813b1fd2c
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/privacy/storage_access_policy/errors/cookieblockedtracker/index.html
@@ -0,0 +1,44 @@
+---
+title: 'Bloquado: Solicitações de acesso de armazenamento de rastreadores'
+slug: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker
+tags:
+ - Armazenamento
+ - Cookies
+ - Erros
+ - Política de acesso a armazenamento
+ - Rastreamento
+translation_of: Mozilla/Firefox/Privacy/Storage_access_policy/Errors/CookieBlockedTracker
+---
+<div>{{FirefoxSidebar}}</div>
+
+<h2 id="Mensagem">Mensagem</h2>
+
+<p>Firefox:</p>
+
+<pre class="syntaxbox"><span class="message-body-wrapper"><span class="message-flex-body"><span class="devtools-monospace message-body"><span class="objectBox objectBox-string">O pedido para acessar cookies ou armazenamento em "X" foi bloqueado porque veio de um rastreador e o bloqueio de conteúdo está ativado.</span></span></span></span>
+</pre>
+
+<h2 id="Oque_deu_errado">Oque deu errado?</h2>
+
+<p>A requisição para accessar os cookies ou armazenamento foi bloqueada por que o navegador identificou <span class="tlid-translation translation" lang="pt"><span title="">como proveniente de um rastreador e o bloqueio de conteúdo está ativado</span></span>.</p>
+
+<p>A permissão pode ser modificada ou removida por:</p>
+
+<ul>
+ <li>Indo a <em>Preferências &gt; </em>Bloqueio de Conteúdo e
+
+ <ul>
+ <li>adicionando uma exceção com o botão <em>Gerenciar Exceções</em>…</li>
+ <li>escolhendo o Bloqueio de conteúdo personalizado e desmarcar a caixa de seleção Rastreador</li>
+ </ul>
+ </li>
+</ul>
+
+<p>se a resolução que foi bloqueada não precisar de autenticação, você consegue resolver a aviso de erro adicinando um atributo <code>crossorigin="anonymous"</code> para o elemento relevante.</p>
+
+<h2 id="Veja_também">Veja também</h2>
+
+<ul>
+ <li><a href="https://support.mozilla.org">Bloqueio de conteúdo</a> em <a href="https://support.mozilla.org">support.mozilla.org</a></li>
+ <li><a href="/en-US/docs/Web/HTML/CORS_settings_attributes">O atributo <code>crossorigin</code></a></li>
+</ul>
diff --git a/files/pt-br/mozilla/firefox/privacy/storage_access_policy/errors/index.html b/files/pt-br/mozilla/firefox/privacy/storage_access_policy/errors/index.html
new file mode 100644
index 0000000000..a1e1f54a75
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/privacy/storage_access_policy/errors/index.html
@@ -0,0 +1,24 @@
+---
+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/pt-br/mozilla/firefox/privacy/storage_access_policy/index.html b/files/pt-br/mozilla/firefox/privacy/storage_access_policy/index.html
new file mode 100644
index 0000000000..c86f213323
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/privacy/storage_access_policy/index.html
@@ -0,0 +1,263 @@
+---
+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&amp;blocked=1480137&amp;bug_file_loc=http%3A%2F%2F&amp;bug_ignored=0&amp;bug_severity=normal&amp;bug_status=NEW&amp;cf_fx_iteration=---&amp;cf_fx_points=---&amp;cf_platform_rel=---&amp;cf_status_firefox62=---&amp;cf_status_firefox63=---&amp;cf_status_firefox64=---&amp;cf_status_firefox_esr60=---&amp;cf_status_geckoview62=---&amp;cf_tracking_firefox62=---&amp;cf_tracking_firefox63=---&amp;cf_tracking_firefox64=---&amp;cf_tracking_firefox_esr60=---&amp;cf_tracking_firefox_relnote=---&amp;cf_tracking_geckoview62=---&amp;component=Tracking%20Protection&amp;contenttypemethod=list&amp;contenttypeselection=text%2Fplain&amp;defined_groups=1&amp;flag_type-203=X&amp;flag_type-37=X&amp;flag_type-41=X&amp;flag_type-5=X&amp;flag_type-607=X&amp;flag_type-721=X&amp;flag_type-737=X&amp;flag_type-748=X&amp;flag_type-787=X&amp;flag_type-799=X&amp;flag_type-800=X&amp;flag_type-803=X&amp;flag_type-835=X&amp;flag_type-846=X&amp;flag_type-855=X&amp;flag_type-864=X&amp;flag_type-914=X&amp;flag_type-916=X&amp;flag_type-929=X&amp;flag_type-930=X&amp;flag_type-933=X&amp;form_name=enter_bug&amp;maketemplate=Remember%20values%20as%20bookmarkable%20template&amp;op_sys=Unspecified&amp;priority=--&amp;product=Firefox&amp;rep_platform=Unspecified&amp;target_milestone=---&amp;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> 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> and the Image cache are 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>&lt;iframe&gt;</code>s, and resources loaded within embedded <code>&lt;iframe&gt;</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>&lt;iframe&gt;</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>&lt;iframe&gt;</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>&lt;iframe&gt;</code> from <code>example.org</code>. That <code>&lt;iframe&gt;</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>&lt;iframe&gt;</code> from <code>example.org</code>. That <code>&lt;iframe&gt;</code> goes on to embed an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
+ <td>HTTP: Yes<br>
+ JS: No</td>
+ </tr>
+ <tr>
+ <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>tracker.example</code>.</td>
+ <td>HTTP: Yes<br>
+ JS: Yes</td>
+ </tr>
+ <tr>
+ <td><code>example.com</code> embeds an <code>&lt;iframe&gt;</code> from <code>example.com</code> (same origin). The nested <code>&lt;iframe&gt;</code> embeds an <code>&lt;iframe&gt;</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" &gt; "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/pt-br/mozilla/firefox/releases/1.5/index.html b/files/pt-br/mozilla/firefox/releases/1.5/index.html
new file mode 100644
index 0000000000..3b1f9243dc
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/releases/1.5/index.html
@@ -0,0 +1,106 @@
+---
+title: Firefox 1.5 para desenvolvedores
+slug: Mozilla/Firefox/Releases/1.5
+translation_of: Mozilla/Firefox/Releases/1.5
+---
+<div>{{FirefoxSidebar}}</div><p>Based on the <a href="/en-US/docs/Gecko" title="en-US/docs/Gecko">Gecko</a> 1.8 engine, Firefox 1.5 improved its already best in class standards support, and provided new capabilities to enable the next generation of web applications. Firefox 1.5 features improved support for CSS2 and CSS3, APIs for scriptable and programmable 2D graphics through <a href="/en-US/docs/SVG" title="en-US/docs/SVG">SVG</a> 1.1 and <a class="internal" href="/en-US/docs/HTML/Canvas" title="en-US/docs/HTML/Canvas"><code>&lt;canvas&gt;</code></a>, <a href="/en-US/docs/XForms" title="en-US/docs/XForms">XForms</a> and XML events, as well as many DHTML, JavaScript, and DOM enhancements.</p>
+
+<h2 id="Developer_Tools">Developer Tools</h2>
+
+<p>Several tools and browser extensions are available to help developers support Firefox 1.5.</p>
+
+<ul>
+ <li><a href="/en-US/docs/DOM_Inspector" title="en-US/docs/DOM_Inspector">DOM Inspector</a>, a tool that allows developers to inspect and modify documents without having to edit the document directly. DOM Inspector is available as part of the Custom install option in Firefox 1.5 under Developer Tools.</li>
+ <li>JavaScript console, a tool to write and test JavaScript code as well as view JavaScript and CSS errors on a page.</li>
+ <li>View page source, with syntax highlighting and find features.</li>
+ <li><a class="link-https" href="https://addons.mozilla.org/extensions/showlist.php?application=firefox&amp;category=Developer%20Tools">Browser extensions</a> including the <a class="external" href="http://www.joehewitt.com/software/firebug/">FireBug</a>, <a href="/en-US/docs/Web_Developer_Extension_(external)" title="en-US/docs/Web_Developer_Extension_(external)">Web Developer toolbar</a>, <a href="/en-US/docs/Live_HTTP_Headers_(external)" title="en-US/docs/Live_HTTP_Headers_(external)">Live HTTP Headers</a>, <a href="/en-US/docs/HTML_Validator_(external)" title="en-US/docs/HTML_Validator_(external)">HTML Validator</a> and many more.</li>
+</ul>
+
+<p><strong>Note:</strong> Some extensions do not currently support Firefox 1.5, and will be automatically disabled.</p>
+
+<h2 id="Overview">Overview</h2>
+
+<p>Some of the new features in Firefox 1.5:</p>
+
+<h3 id="Web_site_and_application_developers">Web site and application developers</h3>
+
+<dl>
+ <dt><a href="/en-US/docs/SVG_In_HTML_Introduction" title="en-US/docs/SVG_In_HTML_Introduction">SVG In XHTML Introduction</a></dt>
+ <dd>Learn how to use SVG in XHTML pages and how to use JavaScript and CSS to manipulate the picture in the same way you would script regular XHTML. See also <a href="/en-US/docs/SVG_in_Firefox" title="en-US/docs/SVG_in_Firefox">SVG in Firefox</a> to learn about the status and known problems of SVG implementation in Firefox.</dd>
+ <dt><a href="/en-US/docs/HTML/Canvas/Drawing_Graphics_with_Canvas" title="en-US/docs/Drawing_Graphics_with_Canvas">Drawing Graphics with Canvas</a></dt>
+ <dd>Learn about the new <code>&lt;canvas&gt;</code> tag and how to draw graphs and other objects in Firefox.</dd>
+ <dt><a href="/en-US/docs/CSS/Using_CSS_multi-column_layouts" title="en-US/docs/CSS3_Columns">CSS3 Columns</a></dt>
+ <dd>Learn about the new support for automatic multi-column text layout as proposed for <a href="/en-US/docs/CSS/CSS3" title="CSS3">CSS3</a>.</dd>
+ <dt><a href="/en-US/docs/Using_Firefox_1.5_caching" title="en-US/docs/Using_Firefox_1.5_caching">Using Firefox 1.5 caching</a></dt>
+ <dd>Learn about <code>bfcache</code> and how it speeds up back and forward navigation.</dd>
+</dl>
+
+<h3 id="XUL_and_Extension_Developers">XUL and Extension Developers</h3>
+
+<dl>
+ <dt><a href="/en-US/docs/Building_an_Extension" title="en-US/docs/Building_an_Extension">Building an Extension</a></dt>
+ <dd>This tutorial will take you through the steps required to build a very basic extension for Firefox. Also see <a class="external" href="http://kb.mozillazine.org/Getting_started_with_extension_development">another tutorial on MozillaZine knowledge base</a>, which demonstrates the new features of the Extension Manager in 1.5 that make creating a new extension even easier.</dd>
+ <dt><a href="/en-US/docs/XPCNativeWrapper" title="en-US/docs/XPCNativeWrapper">XPCNativeWrapper</a></dt>
+ <dd><code>XPCNativeWrapper</code> is a way to wrap up an object so that it's <a href="/en-US/docs/Safely_accessing_content_DOM_from_chrome" title="en-US/docs/Safely_accessing_content_DOM_from_chrome">safe to access from privileged code</a>. It can be used in all Firefox versions, though the behavior changed somewhat starting with Firefox 1.5 (Gecko 1.8).</dd>
+ <dt><a href="/en-US/docs/Preferences_System" title="en-US/docs/Preferences_System">Preferences System</a></dt>
+ <dd>Learn about the new widgets that allow you to create Options windows easier using less JavaScript code.</dd>
+ <dt><a href="/en-US/docs/International_characters_in_XUL_JavaScript" title="en-US/docs/International_characters_in_XUL_JavaScript">International characters in XUL JavaScript</a></dt>
+ <dd>XUL JavaScript files can now contain non-ASCII characters.</dd>
+ <dt><a href="/en-US/docs/Tree_Widget_Changes" title="en-US/docs/Tree_Widget_Changes">Tree API changes</a></dt>
+ <dd>The interfaces for accessing XUL <code>&lt;tree&gt;</code> elements have changed.</dd>
+ <dt><a href="/en-US/docs/XUL_Changes_for_Firefox_1.5" title="en-US/docs/XUL_Changes_for_Firefox_1.5">XUL Changes for Firefox 1.5</a></dt>
+ <dd>Summary of XUL changes. See also <a href="/en-US/docs/Adapting_XUL_Applications_for_Firefox_1.5" title="en-US/docs/Adapting_XUL_Applications_for_Firefox_1.5">Adapting XUL Applications for Firefox 1.5</a>.</dd>
+</dl>
+
+<h4 id="Networking-related_changes">Networking-related changes</h4>
+
+<ul>
+ <li>Certificate prompts can now be overridden on a per-channel basis. This works by setting an interface requestor as an <a href="/en-US/docs/nsIChannel" title="en-US/docs/nsIChannel">nsIChannel</a>'s notificationCallbacks and giving out an interface for <a href="/en-US/docs/NsIBadCertListener" title="en-US/docs/NsIBadCertListener">nsIBadCertListener</a>.</li>
+ <li>nsIWebBrowserPersist's listeners can now implement <a href="/en-US/docs/XPCOM_Interface_Reference/nsIInterfaceRequestor" title="en-US/docs/nsIInterfaceRequestor">nsIInterfaceRequestor</a>::GetInterface and will get an opportunity to provide all interfaces that channels might ask for, including <a href="/en-US/docs/NsIProgressEventSink" title="en-US/docs/NsIProgressEventSink">nsIProgressEventSink</a> (not too useful, redundant with <a href="/en-US/docs/nsIWebProgressListener" title="en-US/docs/nsIWebProgressListener">nsIWebProgressListener</a>). Useful interfaces here include <a href="/en-US/docs/NsIChannelEventSink" title="en-US/docs/NsIChannelEventSink">nsIChannelEventSink</a> and <a href="/en-US/docs/NsIBadCertListener" title="en-US/docs/NsIBadCertListener">nsIBadCertListener</a>.</li>
+ <li>Extensions or other necko consumers, including XMLHttpRequest, can set a Cookie header explicitly, and necko will not replace it. Stored cookies will be merged with the explicitly set header, in a way that the explicit header will override the stored cookies.</li>
+</ul>
+
+<h2 id="New_End_user_Features">New End user Features</h2>
+
+<h3 id="User_Experience">User Experience</h3>
+
+<ul>
+ <li><strong>Faster browser navigation</strong> with improvements to back and forward button performance.</li>
+ <li><strong>Drag and drop reordering for browser tabs.</strong></li>
+ <li><strong>Answers.com is added to the search engine list</strong> for dictionary lookup.</li>
+ <li><strong>Improvements to product usability</strong> including descriptive error pages, redesigned options menu, RSS discovery, and "Safe Mode" experience.</li>
+ <li><strong>Better accessibility support</strong> including DHTML accessibility.</li>
+ <li><strong>Report a broken Web site wizard</strong> to report Web sites that are not working in Firefox.</li>
+ <li><strong>Better support for Mac OS X</strong> (10.2 and greater) including profile migration from Safari and Mac Internet Explorer.</li>
+</ul>
+
+<h3 id="Security_and_Privacy">Security and Privacy</h3>
+
+<ul>
+ <li><strong>Automated update</strong> to streamline product upgrades. Notification of an update is more prominent, and updates to Firefox may now be half a megabyte or smaller. Updating extensions has also improved.</li>
+ <li><strong>Improvements to popup blocking.</strong></li>
+ <li><strong>Clear Private Data</strong> feature provides an easy way to quickly remove personal data through a menu item or keyboard shortcut.</li>
+</ul>
+
+<h3 id="Support_for_open_Web_standards">Support for open Web standards</h3>
+
+<p>Firefox support for Web standards continues to lead the industry with consistent cross-platform implementations for:</p>
+
+<ul>
+ <li>Hypertext Markup Language (<a href="/en-US/docs/HTML" title="en-US/docs/HTML">HTML</a>) and Extensible Hypertext Markup Language (<a href="/en-US/docs/XHTML" title="en-US/docs/XHTML">XHTML</a>): <a class="external" href="http://www.w3.org/TR/html401/">HTML 4.01</a> and <a class="external" href="http://www.w3.org/TR/xhtml1/">XHTML 1.0/1.1</a></li>
+ <li>Cascading Style Sheets (<a href="/en-US/docs/CSS" title="en-US/docs/CSS">CSS</a>): <a class="external" href="http://www.w3.org/TR/REC-CSS1">CSS Level 1</a>, <a class="external" href="http://www.w3.org/TR/REC-CSS2">CSS Level 2</a> and parts of <a class="external" href="http://www.w3.org/Style/CSS/current-work.html">CSS Level 3</a></li>
+ <li>Document Object Model (<a href="/en-US/docs/DOM" title="en-US/docs/DOM">DOM</a>): <a class="external" href="http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/">DOM Level 1</a>, <a class="external" href="http://www.w3.org/DOM/DOMTR#dom2">DOM Level 2</a> and parts of <a class="external" href="http://www.w3.org/DOM/DOMTR#dom3">DOM Level 3</a></li>
+ <li>Mathematical Markup Language: <a class="external" href="http://www.w3.org/Math/">MathML Version 2.0</a></li>
+ <li>Extensible Markup Language (<a href="/en-US/docs/XML" title="en-US/docs/XML">XML</a>): <a class="external" href="http://www.w3.org/TR/REC-xml">XML 1.0</a>, <a class="external" href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</a>, <a class="external" href="http://www.w3.org/TR/xml-stylesheet/">Associating Style Sheets with XML Documents 1.0</a>, <a class="external" href="http://lists.w3.org/Archives/Public/www-xml-linking-comments/2001AprJun/att-0074/01-NOTE-FIXptr-20010425.htm">Fragment Identifier for XML</a></li>
+ <li>XSL Transformations (<a href="/en-US/docs/XSLT" title="en-US/docs/XSLT">XSLT</a>): <a class="external" href="http://www.w3.org/TR/xslt">XSLT 1.0</a></li>
+ <li>XML Path Language (<a href="/en-US/docs/XPath" title="en-US/docs/XPath">XPath</a>): <a class="external" href="http://www.w3.org/TR/xpath">XPath 1.0</a></li>
+ <li>Resource Description Framework (<a href="/en-US/docs/RDF" title="en-US/docs/RDF">RDF</a>): <a class="external" href="http://www.w3.org/RDF/">RDF</a></li>
+ <li>Simple Object Access Protocol (SOAP): <a class="external" href="http://www.w3.org/TR/SOAP/">SOAP 1.1</a></li>
+ <li><a href="/en-US/docs/JavaScript" title="en-US/docs/JavaScript">JavaScript</a> 1.6, based on <a href="/en-US/docs/ECMAScript" title="en-US/docs/ECMAScript">ECMA-262</a>, revision 3: <a class="external" href="http://www.ecma-international.org/publications/standards/Ecma-262.htm">ECMA-262</a></li>
+</ul>
+
+<p>Firefox 1.5 supports the following data transport protocols (HTTP, FTP, SSL, TLS, and others), multilingual character data (Unicode), graphics (GIF, JPEG, PNG, SVG, and others) and the latest version of the world's most popular scripting language, <a href="/en-US/docs/New_in_JavaScript_1.6" title="en-US/docs/New_in_JavaScript_1.6">JavaScript 1.6</a>.</p>
+
+<h2 id="Changes_since_Firefox_1.0">Changes since Firefox 1.0</h2>
+
+<p>Many changes have been introduced into Firefox since it was first released on November 9, 2004. Firefox has progressed with many new features and bug fixes. A detailed list of changes is available from <a class="external" href="http://www.squarefree.com/burningedge/releases/1.5-comprehensive.html">squarefree.com</a>.</p>
diff --git a/files/pt-br/mozilla/firefox/releases/3/index.html b/files/pt-br/mozilla/firefox/releases/3/index.html
new file mode 100644
index 0000000000..b0552cef09
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/releases/3/index.html
@@ -0,0 +1,273 @@
+---
+title: Firefox 3 for developers
+slug: Mozilla/Firefox/Releases/3
+tags:
+ - Firefox 3
+ - NeedsTranslation
+ - TopicStub
+translation_of: Mozilla/Firefox/Releases/3
+---
+<div>{{FirefoxSidebar}}</div><p>If you're a developer trying to get a handle on all the new features in Firefox 3, this is the perfect place to start. This article provides a list of the new articles covering features added to Firefox 3. While it doesn't necessarily cover every little change, it will help you learn about the major improvements.</p>
+
+<h2 id="New_developer_features_in_Firefox_3" name="New_developer_features_in_Firefox_3">New developer features in Firefox 3</h2>
+
+<h3 id="For_web_site_and_application_developers" name="For_web_site_and_application_developers">For web site and application developers</h3>
+
+<dl>
+ <dt><a href="/en-US/docs/Updating_web_applications_for_Firefox_3" title="en-US/docs/Updating_web_applications_for_Firefox_3">Updating web applications for Firefox 3</a></dt>
+ <dd>Provides information about changes you may need to make to your web site or web application to take advantage of new features in Firefox 3.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Online_and_offline_events" title="en-US/docs/Online_and_offline_events">Online and offline events</a></dt>
+ <dd>Firefox 3 supports WHATWG online and offline events, which let applications and extensions detect whether or not there's an active Internet connection, as well as to detect when the connection goes up and down.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Web-based_protocol_handlers" title="en-US/docs/Web-based_protocol_handlers">Web-based protocol handlers</a></dt>
+ <dd>You can now register web applications as protocol handlers using the <code>navigator.registerProtocolHandler()</code> method.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Drawing_text_using_a_canvas" title="en-US/docs/Drawing_text_using_a_canvas">Drawing text using a canvas</a></dt>
+ <dd>You can now draw text in a canvas using a non-standardized API supported by Firefox 3.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Canvas_tutorial/Transformations#Transforms" title="en-US/docs/Canvas_tutorial/Transformations#Transforms">Transform support for canvas</a></dt>
+ <dd>Firefox now supports the <code>transform()</code> and <code>setTransform()</code> methods on canvases.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Using_microformats" title="en-US/docs/Using_microformats">Using microformats</a></dt>
+ <dd>Firefox now has APIs for working with microformats.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Drag_and_drop_events" title="en-US/docs/Drag_and_drop_events">Drag and drop events</a></dt>
+ <dd>Firefox 3 supports new events that are sent to the source node for a drag operation when the drag begins and ends.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Focus_management_in_HTML" title="en-US/docs/Focus_management_in_HTML">Focus management in HTML</a></dt>
+ <dd>The new HTML 5 <code>activeElement</code> and <code>hasFocus</code> attributes are supported.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Offline_resources_in_Firefox" title="en-US/docs/Offline_resources_in_Firefox">Offline resources in Firefox</a></dt>
+ <dd>Firefox now lets web applications request that resources be cached to allow the application to be used while offline.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/CSS_improvements_in_Firefox_3" title="en-US/docs/CSS_improvements_in_Firefox_3">CSS improvements in Firefox 3</a></dt>
+ <dd>Firefox 3 features a number of improvements in its CSS support.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/DOM_improvements_in_Firefox_3" title="en-US/docs/DOM_improvements_in_Firefox_3">DOM improvements in Firefox 3</a></dt>
+ <dd>Firefox 3 offers a number of new features in Firefox 3's DOM implementation, including support for several Internet Explorer extensions to the DOM.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/New_in_JavaScript_1.8" title="en-US/docs/New_in_JavaScript_1.8">JavaScript 1.8 support</a></dt>
+ <dd>Firefox 3 offers JavaScript 1.8.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/EXSLT" title="en-US/docs/EXSLT">EXSLT support</a></dt>
+ <dd>Firefox 3 provides support for a substantial subset of the <a href="/en-US/docs/EXSLT" title="en-US/docs/EXSLT">EXSLT</a> extensions to <a href="/en-US/docs/XSLT" title="en-US/docs/XSLT">XSLT</a>.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/SVG_improvements_in_Firefox_3" title="en-US/docs/SVG_improvements_in_Firefox_3">SVG improvements in Firefox 3</a></dt>
+ <dd>SVG support in Firefox 3 has been upgraded significantly, with support for over two dozen new filters, several new elements and attributes, and other improvements.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Animated_PNG_graphics" title="en-US/docs/Animated_PNG_graphics">Animated PNG graphics</a></dt>
+ <dd>Firefox 3 supports the animated PNG (APNG) image format.</dd>
+</dl>
+
+<h3 id="For_XUL_and_extension_developers" name="For_XUL_and_extension_developers">For XUL and extension developers</h3>
+
+<h4 id="Notable_changes_and_improvements" name="Notable_changes_and_improvements">Notable changes and improvements</h4>
+
+<dl>
+ <dt><a href="/en-US/docs/Updating_extensions_for_Firefox_3" title="en-US/docs/Updating_extensions_for_Firefox_3">Updating extensions for Firefox 3</a></dt>
+ <dd>Provides a guide to the things you'll need to do to update your extension to work with Firefox 3.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/XUL_improvements_in_Firefox_3" title="en-US/docs/XUL_improvements_in_Firefox_3">XUL improvements in Firefox 3</a></dt>
+ <dd>Firefox 3 offers a number of new XUL elements, including new sliding scales, the date and time pickers, and spin buttons.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Templates_in_Firefox_3" title="en-US/docs/Templates_in_Firefox_3">Templates in Firefox 3</a></dt>
+ <dd>Templates have been significantly improved in Firefox 3. The key improvement allows the use of custom query processors to allow data sources other than RDF to be used.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Extension_Versioning,_Update_and_Compatibility#Securing_Updates" title="en-US/docs/Extension_Versioning,_Update_and_Compatibility#Securing_Updates">Securing updates</a></dt>
+ <dd>In order to provide a more secure add-on upgrade path for users, add-ons are now required to provide a secure method for obtaining updates before they can be installed. Add-ons hosted at <a class="external" href="http://addons.mozilla.org">AMO</a> automatically provide this. Any add-ons installed that do not provide a secure update method when the user upgrades to Firefox 3 will be automatically disabled. Firefox will however continue to check for updates to the extension over the insecure path and attempt to install any update offered (installation will fail if the update also fails to provide a secure update method).</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Places_Developer_Guide" title="en-US/docs/Places_migration_guide">Places migration guide</a></dt>
+ <dd>An article about how to update an existing extension to use the Places API.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Download_Manager_improvements_in_Firefox_3" title="en-US/docs/Download_Manager_improvements_in_Firefox_3">Download Manager improvements in Firefox 3</a></dt>
+ <dd>The Firefox 3 Download Manager features new and improved APIs, including support for multiple progress listeners.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/XPCOM_Interface_Reference/Using_nsILoginManager" title="en-US/docs/Using_nsILoginManager">Using nsILoginManager</a></dt>
+ <dd>The Password Manager has been replaced by the new Login Manager.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/XBL/XBL_1.0_Reference/Elements#binding" title="en-US/docs/XBL/XBL_1.0_Reference/Elements#binding">Embedding XBL bindings</a></dt>
+ <dd>You can now use the <code>data:</code> URL scheme from chrome code to embed XBL bindings directly instead of having them in separate XML files.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Localizing_extension_descriptions" title="en-US/docs/Localizing_extension_descriptions">Localizing extension descriptions</a></dt>
+ <dd>Firefox 3 offers a new method for localizing add-on metadata. This lets the localized details be available as soon as the add-on has been downloaded, as well as when the add-on is disabled.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Localization_and_Plurals" title="en-US/docs/Localization_and_Plurals">Localization and Plurals</a></dt>
+ <dd>Firefox 3 adds the new PluralForm module, which provides tools to aid in correctly pluralizing words in multiple localizations.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Theme_changes_in_Firefox_3" title="en-US/docs/Theme_changes_in_Firefox_3">Theme changes in Firefox 3</a></dt>
+ <dd>Notes and information of use to people who want to create themes for Firefox 3.</dd>
+</dl>
+
+<h4 id="New_components_and_functionality" name="New_components_and_functionality">New components and functionality</h4>
+
+<dl>
+ <dt><a href="/en-US/docs/Toolkit_API/FUEL" title="en-US/docs/FUEL">FUEL Library</a></dt>
+ <dd>FUEL is about making it easier for extension developers to be productive, by minimizing some of the XPCOM formality and adding some "modern" JavaScript ideas.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Places" title="en-US/docs/Places">Places</a></dt>
+ <dd>The history and bookmarks APIs have been completely replaced by the new <a href="/en-US/docs/Places" title="en-US/docs/Places">Places</a> API.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/nsIIdleService" title="en-US/docs/nsIIdleService">Idle service</a></dt>
+ <dd>Firefox 3 offers the new {{Interface("nsIIdleService")}} interface, which lets extensions determine how long it's been since the user last pressed a key or moved their mouse.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/nsIZipWriter" title="en-US/docs/nsIZipWriter">ZIP writer</a></dt>
+ <dd>The new {{Interface("nsIZipWriter")}} interface lets extensions create ZIP archives.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Full_page_zoom" title="en-US/docs/Full_page_zoom">Full page zoom</a></dt>
+ <dd>Firefox 3 improves the user experience by offering full page zoom in addition to text-only zoom.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Interfacing_with_the_XPCOM_cycle_collector" title="en-US/docs/Interfacing_with_the_XPCOM_cycle_collector">Interfacing with the XPCOM cycle collector</a></dt>
+ <dd>XPCOM code can now take advantage of the cycle collector, which helps ensure that unused memory gets released instead of leaking.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/The_Thread_Manager" title="en-US/docs/The_Thread_Manager">The Thread Manager</a></dt>
+ <dd>Firefox 3 provides the new {{Interface("nsIThreadManager")}} interface, along with new interfaces for threads and thread events, which provides a convenient way to create and manage threads in your code.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/JavaScript_code_modules" title="en-US/docs/JavaScript_modules">JavaScript modules</a></dt>
+ <dd>Firefox 3 now offers a new shared code module mechanism that lets you easily create modules in JavaScript that can be loaded by extensions and applications for use, much like shared libraries.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/nsIJSON" title="en-US/docs/nsIJSON">The <code>nsIJSON</code> interface</a></dt>
+ <dd>Firefox 3 offers the new {{Interface("nsIJSON")}} interface, which offers high-performance encoding and decoding of <a href="/en-US/docs/JSON" title="en-US/docs/JSON">JSON</a> strings.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/XPCOM_Interface_Reference/nsIParentalControlsService" title="en-US/docs/nsIParentalControlsService">The nsIParentalControlsService interface</a></dt>
+ <dd>Firefox 3 now supports the Microsoft Windows Vista parental controls feature, and allows code to interact with it.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Using_content_preferences" title="en-US/docs/Using_content_preferences">Using content preferences</a></dt>
+ <dd>Firefox 3 includes a new service for getting and setting arbitrary site-specific preferences that extensions as well as core code can use to keep track of their users' preferences for individual sites.</dd>
+</dl>
+
+<dl>
+ <dt><a href="/en-US/docs/Monitoring_plugins" title="en-US/docs/Monitoring_plugins">Plug-in Monitoring</a></dt>
+ <dd>A new component of the plugin system is now available to measure how long it takes plugins (e.g., Macromedia Flash) to execute their calls.</dd>
+</dl>
+
+<h4 id="Fixed_bugs" name="Fixed_bugs">Fixed bugs</h4>
+
+<dl>
+ <dt><a href="/en-US/docs/Notable_bugs_fixed_in_Firefox_3" title="en-US/docs/Notable_bugs_fixed_in_Firefox_3">Notable bugs fixed in Firefox 3</a></dt>
+ <dd>This article provides information about bugs that have been fixed in Firefox 3.</dd>
+</dl>
+
+<h2 id="New_features_for_end_users" name="New_features_for_end_users">New features for end users</h2>
+
+<h3 id="User_experience" name="User_experience">User experience</h3>
+
+<ul>
+ <li><strong>Easier password management.</strong> An information bar at the top of the browser window now appears to allow you to save passwords after a successful login.</li>
+ <li><strong>Simplified add-on installation.</strong> You can now install extensions from third-party download sites in fewer clicks, thanks to the removal of the add-on download site whitelist.</li>
+ <li><strong>New Download Manager.</strong> The download manager makes it easier to locate your downloaded files.</li>
+ <li><strong>Resumable downloads.</strong> You can now resume downloads after restarting the browser or resetting your network connection.</li>
+ <li><strong>Full page zoom.</strong> From the View menu and using keyboard shortcuts, you can now zoom in and out on the content of entire pages -- this scales not just the text but the layout and images as well.</li>
+ <li><strong>Tab scrolling and quickmenu.</strong> Tabs are easier to locate with the new tab scrolling and tab quickmenu features.</li>
+ <li><strong>Save what you were doing.</strong> Firefox 3 prompts you to see if you'd like to save your current tabs when you exit Firefox.</li>
+ <li><strong>Optimized Open in Tabs behavior.</strong> Opening a folder of bookmarks in tabs now appends the new tabs instead of replacing the existing ones.</li>
+ <li><strong>Easier to resize location and search bars.</strong> You can now easily resize the location and search bars using a simple resize handle between them.</li>
+ <li><strong>Text selection improvements.</strong> You can now select multiple ranges of text using the Control (Command on Macintosh) key. Double-clicking and dragging now selects in "word-by-word" mode. Triple-clicking selects an entire paragraph.</li>
+ <li><strong>Find toolbar.</strong> The Find toolbar now opens with the current selection.</li>
+ <li><strong>Plugin management.</strong> Users can now disable individual plugins in the Add-on Manager.</li>
+ <li><strong>Integration with Windows Vista.</strong> Firefox's menus now display using Vista's native theme.</li>
+ <li><strong>Integration with Mac OS X.</strong> Firefox now supports <a class="external" href="http://growl.info/">Growl</a> for notifications of completed downloads and available updates.</li>
+ <li><strong>Star button.</strong> The new star button in the location bar lets you quickly add a new bookmark with a single click. A second click lets you file and tag your new bookmark.</li>
+ <li><strong>Tags.</strong> You can now associate keywords with your bookmarks to easily sort them by topic.</li>
+ <li><strong>Location bar and auto-complete.</strong> Type the title or tag of a page in the location bar to quickly find the site you were looking for in your history and bookmarks. Favicons, bookmark, and tag indicators help you see where the results are coming from.</li>
+ <li><strong>Smart Bookmarks folder.</strong> Firefox's new Smart Bookmarks folder offers quick access to your recently bookmarked and tagged places, as well as pages you visit frequently.</li>
+ <li><strong>Bookmarks and History Organizer.</strong> The new unified bookmarks and history organizer lets you easily search your history and bookmarks with multiple views and smart folders for saving your frequent searches.</li>
+ <li><strong>Web-based protocol handlers.</strong> Web applications, such as your favorite web mail provider, can now be used instead of desktop applications for handling <code>mailto:</code> links from other sites. Similar support is provided for other protocols as well. (Note that web applications do have to register themselves with Firefox before this will work.)</li>
+ <li><strong>Easy to use Download Actions.</strong> A new Applications preferences pane provides an improved user interface for configuring handlers for various file types and protocol schemes.</li>
+ <li><strong>Improved look and feel.</strong> Graphics and font handling have been improved to make web sites look better on your screen, including sharper text rendering and better support for fonts with ligatures and complex scripts. In addition, Mac and Linux (Gnome) users will find that Firefox feels more like a native application for their platform than ever, with a new, native, look and feel.</li>
+ <li><strong>Color management support.</strong> By setting the <code>gfx.color_management.enabled</code> preference in <code>{{mediawiki.external('about:config')}}</code>, you can ask Firefox to use the color profiles embedded in images to adjust the colors to match your computer's display.</li>
+ <li><strong>Offline support.</strong> Web applications can take advantage of new features to support being used even when you don't have an Internet connection.</li>
+</ul>
+
+<h3 id="Security_and_privacy" name="Security_and_privacy">Security and privacy</h3>
+
+<ul>
+ <li><strong>One-click site information.</strong> Want to know more about the site you're visiting? Click the site's icon in the location bar to see who owns it. Identify information is prominently displayed and easier than ever to understand.</li>
+ <li><strong>Malware protection.</strong> Firefox 3 warns you if you arrive at a web site that is known to install viruses, spyware, trojans, or other dangerous software (known as malware). You can see what the warning looks like by <a class="link-https" href="https://www.mozilla.com/firefox/its-an-attack.html">clicking here</a>.</li>
+ <li><strong>Web forgery protection enhanced.</strong> Now when you visit a page that's suspected of being a forgery, you're shown a special page instead of the contents of the page with a warning. <a class="link-https" href="https://www.mozilla.com/firefox/its-a-trap.html">Click here</a> to see what it looks like.</li>
+ <li><strong>Easier to understand SSL errors.</strong> The errors presented when an invalid SSL certificate is encountered have been clarified to make it easier to understand what the problem is.</li>
+ <li><strong>Out-of-date add-on protection.</strong> Firefox 3 now automatically checks add-on and plugin versions and disables older, insecure versions.</li>
+ <li><strong>Secure add-on updates.</strong> Add-on update security has been improved by disallowing add-ons that use an insecure update mechanism.</li>
+ <li><strong>Anti-virus integration.</strong> Firefox 3 now informs anti-virus software when executable files are downloaded.</li>
+ <li><strong>Windows Vista parental controls support.</strong> Firefox 3 supports the Vista system-wide parental control setting for disabling file downloads.</li>
+</ul>
+
+<h3 id="Performance" name="Performance">Performance</h3>
+
+<ul>
+ <li><strong>Reliability.</strong> Firefox 3 now stores bookmarks, history, cookies, and preferences in a transactionally secure database format. This means your data is protected against loss even if your system crashes.</li>
+ <li><strong>Speed.</strong> Firefox 3 has gotten a performance boost by completely replacing the part of the software that handles drawing to your screen, as well as to how page layout work is handled.</li>
+ <li><strong>Memory use reduced.</strong> Firefox 3 is more memory efficient than ever, with over 300 memory "leak" bugs fixed and new features to help automatically locate and dispose of leaked memory blocks.</li>
+</ul>
+
+<h2 id="See_also" name="See_also">See also</h2>
+
+<div>{{Firefox_for_developers('2')}}</div>
diff --git a/files/pt-br/mozilla/firefox/releases/3/zoom_de_página_inteira/index.html b/files/pt-br/mozilla/firefox/releases/3/zoom_de_página_inteira/index.html
new file mode 100644
index 0000000000..1a22edfb92
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/releases/3/zoom_de_página_inteira/index.html
@@ -0,0 +1,45 @@
+---
+title: Zoom de página inteira
+slug: Mozilla/Firefox/Releases/3/Zoom_de_página_inteira
+tags:
+ - Extensões
+ - Firefox 3
+ - XUL
+translation_of: Mozilla/Firefox/Releases/3/Full_page_zoom
+---
+<div>{{FirefoxSidebar}}</div>
+
+<p>{{ Gecko_minversion_header("1.9") }}</p>
+
+<p>Zoom de página inteira (ou apenas fullzoom) é um novo recurso do <a href="/en/Firefox_3_for_developers" title="en/Firefox_3_for_developers">Firefox 3</a>.</p>
+
+<h3 id="Example_.28XUL:browser.29" name="Example_.28XUL:browser.29">Exemplo (XUL:browser)</h3>
+
+<p><span id="result_box" lang="pt"><span>O exemplo a seguir demonstra o uso da janela atual do navegador.</span> <span>Esse é o uso típico de uma extensão do Firefox.</span></span></p>
+
+<pre>var zoom = ZoomManager.getZoomForBrowser(gBrowser.selectedBrowser);
+ZoomManager.enlarge();
+ZoomManager.setZoomForBrowser(gBrowser.selectedBrowser, ZoomManager.MIN);
+</pre>
+
+<h3 id="Example_.28XUL:iframe.29" name="Example_.28XUL:iframe.29">Exemplo (XUL:iframe)</h3>
+
+<p><span class="short_text" id="result_box" lang="pt"><span>Nota: Isso provavelmente está desatualizado.</span></span></p>
+
+<p><span id="result_box" lang="pt"><span>Você pode usar o recurso fullZoom para um</span></span> <a href="/en/XUL/iframe" title="en/XUL/iframe">XUL:iframe</a> <span id="result_box" lang="pt"><span>também.</span> <span>No entanto, como um iframe não tem uma propriedade  markupDocumentViewer, precisamos obtê-la primeiro:</span></span></p>
+
+<pre>var zoom = 1.5;
+var iframe = document.getElementById("authorFrame");
+var contViewer = iframe.docShell.contentViewer;
+var docViewer = contViewer.QueryInterface(Components.interfaces.nsIMarkupDocumentViewer);
+docViewer.fullZoom = zoom;
+</pre>
+
+<h3 id="References" name="References">References</h3>
+
+<ul>
+ <li><span id="result_box" lang="pt"><span>Extensão de zoom de página por</span></span> Ted Mielczarek <a class="external" href="http://ted.mielczarek.org/code/mozilla/fullpagezoom.xpi">fullpagezoom.xpi</a> <span id="result_box" lang="pt"><span>para os últimos Firefox 3.0 nightlies</span></span></li>
+ <li><a class="link-https" href="https://addons.mozilla.org/en-US/firefox/addon/6489">Glazoom extension</a> por Daniel Glazman para Firefox 3.0</li>
+ <li>O <a class="link-https" href="https://bugzilla.mozilla.org/show_bug.cgi?id=4821">bugzilla bug</a> sobre fullZoom.</li>
+ <li>{{ Interface("nsIMarkupDocumentViewer") }} documentação da interface.</li>
+</ul>
diff --git a/files/pt-br/mozilla/firefox/releases/49/index.html b/files/pt-br/mozilla/firefox/releases/49/index.html
new file mode 100644
index 0000000000..db3869a579
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/releases/49/index.html
@@ -0,0 +1,352 @@
+---
+title: Firefox 49 para desenvolvedores
+slug: Mozilla/Firefox/Releases/49
+translation_of: Mozilla/Firefox/Releases/49
+---
+<div>{{FirefoxSidebar}}</div><p style="margin-bottom: 0cm; line-height: 100%;"><a href="https://www.mozilla.org/firefox/developer/" style="float: right; 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;">Para testar estes novos recursos do Firefox,<br>
+ Instale Firefox Developer Edition</a> Firefox 49 foi lançado em 20 de Setembro de 2016. Este artigo faz uma lista das principais alterações não só para desenvolvedores web, mas também desenvolvedores Firefox e Gecko e de extensões.</p>
+
+<h2 id="sect1"> </h2>
+
+<h2 id="Mudanças_para_desenvolvedores_web">Mudanças para desenvolvedores web</h2>
+
+<h3 id="Ferramentas_de_desenvolvimento">Ferramentas de desenvolvimento</h3>
+
+<ul>
+ <li>Erros de JavaScript registrados no console <a href="https://hacks.mozilla.org/2016/06/helping-web-developers-with-javascript-errors/">Agora com um link [Leia Mais]</a> para ajuda complementar na depuração ({{bug("1179876")}}).</li>
+ <li>CSS <span class="short_text" id="result_box" lang="pt"><span>autocompletar</span></span>: mostra mais sugestões para o autocompletar<br>
+ ({{bug("1260419")}}).</li>
+ <li>O inspector de animação agora <a href="/en-US/docs/Tools/Page_Inspector/How_to/Work_with_animations#Further_information_about_animation_compositing">fornece informações do desempenho da animação </a> nas ferramentas de desenvolvimento ({{bug("1254408")}}).</li>
+ <li>O <a href="/en-US/docs/Tools/Page_Inspector/How_to/Examine_and_edit_HTML#Element_popup_context_menu">menu de contexto do Inspector</a> foi reorganizado <span id="result_box" lang="pt"><span>ser mais claro e fácil de usar</span></span> ({{bug("1211613")}}).</li>
+ <li>O Inspector agora suporta sintaxe para valores de cores em  <code>#RRGGBBAA</code> e <code>#RGBA</code> ({{bug("1271191")}}).</li>
+ <li>As ferramentas de desvenvolvedor deixa de exibir marcas de fechamento automático (tal como {{HTMLElement("br")}} e {{HTMLElement("img")}} <span id="result_box" lang="pt"><span>como se eles tivessem uma tag de fechamento em páginas HTML</span></span> ; o comportamento é inalteravel para páginas XHTML ({{bug("820926")}}).</li>
+ <li>Melhorias na acessibilidade!
+ <ul>
+ <li>A caixa de ferramenta faz um trabalho melhor em assegurar que o foco no teclado seja mais visível ({{bug(1242851)}}).</li>
+ <li><span id="result_box" lang="pt"><span>Foram adicionados rótulos de acessibilidade a controles não marcados</span></span>  ({{bug(1242715)}}).</li>
+ <li><span id="result_box" lang="pt"><span>Adicionada semântica de exibição de árvore adequada e navegação de teclado para a exibição de marcação do Inspetor</span></span> ({{bug(1242694)}}).</li>
+ </ul>
+ </li>
+ <li>O <a href="/en-US/docs/Tools/Network_Monitor">Monitor de Rede</a> agora mostra uma coluna de Causa, onde fornece e indica o que causa de cada  requerimento de rede específico ({{bug(1134073)}}).</li>
+ <li>Na <em>about:debugging</em> página de extesões, o botão de recarregar é o único abilitado para extensões temporárias. Será desabilitado para todas as outras extensões ({{bug(1273184)}}).</li>
+ <li>Na página Workers em<em> about:debbuging</em>, uma mensagem de alerta será exibida na seção Service Workers se o <a href="https://developer.mozilla.org/en-US/docs/Tools/about:debugging#Service_workers_not_compatible">service workers for incompatíveil </a> com as configurações atuais do navegador ({{bug(1266415)}}).</li>
+ <li><em>about:debugging</em> agora existe uma <a href="/en-US/docs/Tools/about:debugging#Tabs">nova página de Tabs</a> disponível, quer fornece uma lista completa de todas abas abertas debugaveis na instancia do  Firefox ({{bug(1266128)}}).</li>
+ <li>A opção <em>Desabilitar Cache</em> na <a href="/en-US/docs/Tools/Settings#Advanced_settings">Caixa de ferramentas  de configurações avançadas</a> foi renomeada para Desabilitar HTTP Cache, para clarear que isso afeta o cache do HTTP, e não <a href="https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API">Service Workers</a>/o <a href="https://developer.mozilla.org/en-US/docs/Web/API/Cache">Cache API</a> (bug(1253018)).</li>
+ <li>O <a href="/en-US/docs/Tools/Storage_Inspector#IndexedDB">Inspector de armazenamento agora permite IndexedDB databases ser deletado</a> através de seu próprio menu ({{bug("1205123")}}), e mostrará uma mensagem de alerta se a IndexedDB poder ser deletada por alguma rasão (Se ainda existir conexão ativa, por exemplo) ({{bug(1268460)}}).</li>
+</ul>
+
+<h3 id="HTML">HTML</h3>
+
+<ul>
+ <li>Adicionado suporte para estes elementros: {{HTMLElement("details")}} e {{HTMLElement("summary")}} ({{bug(1226455)}}).</li>
+ <li>O {{htmlattrxref("pattern", "input")}} atribuido para {{HTMLElement("input")}} agora usa o parâmetro <code>'u'</code> no  JavaScript base {{jsxref("RegExp")}} ({{bug(1227906)}}).</li>
+ <li>Para corresponder a uma mudança específica, de um valor inválido {{htmlattrxref("kind", "track")}} atributo do elemento {{HTMLElement('track')}} é agora tratado como <code>"metadata"</code> ao invés de<code>"subtitles"</code> ({{bug(1269712)}}).</li>
+ <li><span id="result_box" lang="pt"><span>O atributo </span></span> {{htmlattrxref("sandbox", "iframe")}} <span lang="pt"><span> do elemento </span></span> {{HTMLElement("iframe")}} <span lang="pt"><span> agora suporta os valores 'allow-popups-to-escape-sandbox' e 'allow-modals'</span></span> ({{bug(1190641)}}).</li>
+ <li>Suporte para atributos microdata e a Microdata API foram removidas ({{bug(909633)}}).</li>
+ <li>O atributo {{htmlattrxref("referrerpolicy", "a")}} do elemento {{HTMLElement("a")}} agora suporta esses atributos <code>'no-referrer-when-downgrade</code>' e <code>'origin-when-cross-origin'</code> ({{bug(1178337)}}).</li>
+ <li>O {{htmlattrxref("form", "label")}} que é atributo do elemento {{HTMLElement("label")}} foi removido. A propriedade {{domxref("HTMLLabelElement.form")}} ainda existe, mas agora retorna o formulário na qual o controle do label's está associado , se houver um controle (e se esse controle for associado ao formulário) ({{bug(1268852)}}).</li>
+</ul>
+
+<h3 id="CSS">CSS</h3>
+
+<ul>
+ <li>Adicionado {{cssxref("background-position-x")}} e {{cssxref("background-position-y")}}, que permite específicar e compensar separadamente a horizontal e a vertial para melhor posicionar a imagem de fundo; eles são compentes de {{cssxref("background-position")}} ({{bug("550426")}}).</li>
+ <li>Adicionado suporte para <code>as tags round</code> e <code>space</code> para {{cssxref("background-repeat")}} ({{bug("548372")}}).</li>
+ <li>no {{cssxref("background-clip")}}, as tags <code>text</code> são ativadas por padrão ({{bug(1264905)}}).</li>
+ <li>Adicionado suporte a cores específicas como o canal alpha usando 4- e 8-digitos CSS hex <a href="/en-US/docs/Web/CSS/color_value">cor</a> de valores (#RRGGBBAA e #RGBA) ({{bug("567283")}}).</li>
+ <li>A pseudo-class {{cssxref(":dir()")}} foi desprezado ({{bug(859301)}}).</li>
+ <li>Em nossa implementação experimental (ainda não ativa por padrão) de {{cssxref("clip-path")}}, podemos agora interpolar entre valores {{cssxref("&lt;basic-shape&gt;")}} ({{bug(1110460)}}).</li>
+ <li>Adicionado a <a href="/en-US/docs/Web/CSS/length#q"><code>unidade de comprimento q</code> </a> ({{bug(1274526)}}).</li>
+ <li>A propiedade {{cssxref("text-align-last")}} foi desprezada ({{bug(1039541)}}).</li>
+ <li>Adicionado suporte para {{cssxref("overflow-wrap")}}, substituindo  {{cssxref("word-wrap")}} que ainda é suportado como nome alternativo ({{bug(955857)}}).</li>
+ <li>Nossa experiencia com a implementação do <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout">CSS Grids</a> foi melhorado:
+ <ul>
+ <li>implementado {{cssxref("&lt;percentage&gt;")}} para as propriedades {{cssxref("grid-gap")}}, {{cssxref("grid-row-gap")}}, e {{cssxref("grid-column-gap")}} ({{bug(1266268)}}).</li>
+ <li>Implementado suporte a layout grid layout para {{cssxref("align")}}, {{cssxref("justify-self")}}<code>:baseline</code> e <code>last-baseline</code> (aka "baseline self-alignment") ({{bug(1221525)}}).</li>
+ <li>Implementado alinhamento de conteúdo baseline de item em grid ({{bug(1256429)}}).</li>
+ </ul>
+ </li>
+ <li>Nosso experimeto implementação de <a href="/en-US/docs/Web/CSS/CSS_Masks">CSS Masks</a> foi melhorado:
+ <ul>
+ <li>A propiedade {{cssxref("mask-origin")}} agora usa <code>border-box</code> ao invés de <code>padding-box</code> como valor inicial, para  <span class="short_text" id="result_box" lang="pt"><span>coincidir com a especificação</span></span> ({{bug(1258286)}}).</li>
+ <li>A propriedade {{cssxref("mask-repeat")}} suporta os seguintes volumes:  <code>space</code> e <code>round</code> values ({{bug(1258626)}}).</li>
+ <li>Corrigido o problema que impedia o atributo {{cssxref("mask-position")}}  de ser animado ({{bug(1273804)}}).</li>
+ </ul>
+ </li>
+ <li>O controle de preferências {{cssxref("text-emphasis")}} foi removido, assim o suporte para esta propiedade não pode ser mais desabilitado ({{bug(1229609)}}).</li>
+</ul>
+
+<h3 id="JavaScript">JavaScript</h3>
+
+<ul>
+ <li>As armadilhas para  ES2015 (ES6) {{jsxref("Global_Objects/Proxy/handler/getPrototypeOf", "getPrototypeOf()")}} e {{jsxref("Global_Objects/Proxy/handler/setPrototypeOf", "setPrototypeOf()")}} {{jsxref("Proxy")}} foram implementadas ({{bug(888969)}}).</li>
+ <li>O metodos ES2015 (ES6) {{jsxref("RegExp.prototype.@@match()", "RegExp.prototype[@@match]()")}}, {{jsxref("RegExp.prototype.@@replace()", "RegExp.prototype[@@replace]()")}}, {{jsxref("RegExp.prototype.@@search()", "RegExp.prototype[@@search]()")}}, e {{jsxref("RegExp.prototype.@@split()", "RegExp.prototype[@@split]()")}}, e {{jsxref("RegExp.@@species", "RegExp[@@species]")}} getter foram implementados ({{bug(887016)}}).</li>
+ <li>A versão obsoleta, <code>sem padrão nos argumentos de flags</code> do <code>String.prototype.</code>{{jsxref("String.prototype.match", "match")}}/{{jsxref("String.prototype.search", "search")}}/{{jsxref("String.prototype.replace", "replace")}} foi remivida ({{bug(1108382)}}).</li>
+ <li>O comportamento do metodo {{jsxref("Date.parse()")}} quando analisam 2-digit years foi modificado para mais <span class="short_text" id="result_box" lang="pt"><span>interoperável</span></span> com o navegador Google Chrome ({{bug(1265136)}}).</li>
+</ul>
+
+<h3 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h3>
+
+<h4 id="DOM_HTML_DOM">DOM &amp; HTML DOM</h4>
+
+<ul>
+ <li>O metodo {{domxref("DOMTokenList.supports()")}} foi adicionado ({{bug(1257849)}}).</li>
+ <li>O metodo {{domxref("DOMTokenList.replace()")}} foi adicionado ({{bug(1224186)}}).</li>
+ <li>O caractere principal <code>'?'</code> agora é ignorado no parâmetro do construtor  {{domxref("URLSearchParams.URLSearchParams", "URLSearchParams()")}}  ({{bug(1268361)}}).</li>
+ <li>O valor retornado por {{domxref("URL.origin")}}, {{domxref("HTMLAnchorElement.origin")}}, e {{domxref("HTMLAreaElement.origin")}} para URL usando o <code>blob:</code> o esquema não está mais  incorreto <code>null</code> mas em vez disso, a origem da URL formado pela remorção da tag <code>blob:</code> ({{bug(1270451)}}).</li>
+ <li>No modo de pre-renderização, a propriedade  {{domxref('Document.visibilityState')}} agora retorna <code>'prerender'</code> ({{bug(1069772)}}).</li>
+ <li>A propriedade {{domxref("Window.isSecureContext")}} foi implantada ({{bug(1162772)}}).</li>
+ <li>Os metodos DOM4 {{domxref("ChildNode.before()")}}, {{domxref("ChildNode.after()")}}, {{domxref("ChildNode.replaceWith()")}}, {{domxref("ParentNode.append()")}} e {{domxref("ParentNode.prepend()")}} foram implementados ({{bug(911477)}}).</li>
+ <li>O metodo {{domxref("TouchList.identifiedTouch()")}} foi removido ({{bug(1188539)}}).</li>
+ <li>Por padrão, a característica <code>scrollbars</code> {{domxref("Window")}} é habilitado quando chamado {{domxref("Window.open()")}}. Anteriormente, quanto era altamente recomendado ativar ele, pois não era padrão ({{bug(1257887)}}).</li>
+ <li>Adicionado o <em>metodo experimental</em> e <em>non-standard</em> do metodo {{domxref("HTMLMediaElement.seekToNextFrame()")}}, que permite bucar quadro a quadro no conteúdo do vídeo ({{bug(1235301)}}). Equanto você é incentivado a expertimentar, dessar forma você nos ajuda a entender o quão útil ele é, <em>não use ele em produção de código!</em></li>
+ <li>A propriedade {{domxref("HTMLLabelElement.form")}} agora retorna a forma com que o controle de label's foi assiciado, se houver um controle (e se esse controle for associado ao formulário). Anteriormente, labels eram diretamente associados com formulários usando essa propriedade ({{bug(1268852)}}).</li>
+ <li>Suporte ao paramtro third de {{domxref("EventTarget.addEventListener()")}}, ou um {{jsxref("Boolean")}} ou a {{interface("EventListenerOptions")}} foi adicionado ({{bug(1266164)}} and {{bug(1266066)}}).</li>
+ <li>O volume do audio relativo a {{domxref("KeyboardEvent.key")}} foram renomeados. <code>"VolumeDown"</code> é agora <code>"AudioVolumeDown"</code>, <code>"VolumeUp"</code> é agora <code>"AudioVolumeUp"</code>, e <code>"VolumeMute"</code> e agora <code>"AudioVolumeMute".</code> Isso trás Firefox p<em><span style="font-style: normal;">ara alinhamento com os últimos rascunhos de especificações de UI Events</span></em> ({{bug(1272578)}}). Veja {{SectionOnPage("/en-US/docs/Web/API/KeyboardEvent/code", "Code values")}} para uma lista completa de possibilidades de códigos.</li>
+ <li>Os códigos ateriormente referidos a <code>"MozHomeScreen"</code>, <code>"MozCameraFocusAdjust"</code>, e <code>"MozPhoneCall"</code> agora tem nomes oficiais na especificação UI Events: <code>"GoHome"</code>, <code>"CameraFocus"</code>, e <code>"Call"</code>. Firefox 49 foi atualizado para utilizar os novos nomes ({{bug(1272599)}}). Veja {{SectionOnPage("/en-US/docs/Web/API/KeyboardEvent/code", "Code values")}} para uma lista completa de possilidades de códigos</li>
+ <li>O valor dos códigos <code>"Separator"</code> e <code>"MediaSkip"</code> foram removidos, por serem desatualizados e não utilizados ({{bug(1232919)}}).</li>
+ <li>Valor do código e a correspondencia dos códigos <code>"Hyper"</code> e <code>"Super"</code>foi adicionado para representar os modificadores de herança dos códigos ({{bug(1232919)}}).</li>
+ <li>
+ <p style="margin-bottom: 0cm; line-height: 100%;"><em><span style="font-style: normal;">Duas teclas do teclado numérico multimídia foram adicionados</span></em>: <code>"Key11"</code> e <code>"Key12"</code> ({{bug(1232919)}}).</p>
+ </li>
+ <li>
+ <p style="margin-bottom: 0cm; line-height: 100%;"><em><span style="font-style: normal;">Foram adicionados novos códigos para controle de audio</span></em>: <code>"AudioBassBoostToggle"</code>, <code>"AudioTrebleDown"</code>, e <code>"AudioTrebleUp"</code> ({{bug(123919)}}).</p>
+ </li>
+ <li>Adiconado código para controle do mocrofone: <code>"</code><code>MicrophoneToggle"</code>, <code>"</code><code>MicrophoneVolumeDown"</code>, <code>"</code><code>MicrophoneVolumeUp"</code>, e <code>"</code><code>MicrophoneVolumeMute"</code> ({{bug(123919)}}).</li>
+ <li>
+ <p style="margin-bottom: 0cm; line-height: 100%;"><em><span style="font-style: normal;">Adicionado novo código de suporte a dispositivos de reconhecimento de fala</span></em>: "<code>SpeechCorrectionList"</code> e <code>"</code><code>SpeechInputToggle"</code> ({{bug(1232919)}}).</p>
+ </li>
+ <li>
+ <p style="margin-bottom: 0cm; line-height: 100%;"><em><span style="font-style: normal;">Nova tecla foi adicionada para suportar botões especiais em telefones</span></em>: <code>"</code><code>AppSwitch"</code>, <code>"</code><code>Call"</code>, <code>"</code><code>CameraFocus"</code>, <code>"</code><code>EndCall"</code>, <code>"</code><code>GoBack"</code>, <code>"</code><code>GoHome"</code>, <code>"</code><code>HeadsetHook"</code>, <code>"</code><code>LastNumberRedial"</code>, <code>"</code><code>Notification"</code>, <code>"</code><code>MannerMode"</code>, e <code>"</code><code>VoiceDial"</code> ({{bug(1232919)}}).</p>
+ </li>
+ <li>Um novo botão de aplicação foi adicionado: <code>"</code><code>LaunchContacts"</code> e <code>"</code><code>LaunchPhone"</code> ({{bug(1232919)}}).</li>
+ <li>Adicionado novos códigos de suporte a dispositivos de TV: <code>"</code><code>TV3DMode"</code>, <code>"</code><code>TVAntennaCable"</code>, <code>"</code><code>TVAudioDescription"</code>, <code>"</code><code>TVAudioDescriptionMixDown"</code>, <code>"</code><code>TVAudioDescriptionMixUp"</code>, <code>"</code><code>TVContentsMenu"</code>, <code>"</code><code>TVDataService"</code>, <code>"</code><code>TVInput"</code>, <code>"</code><code>TVInputComponent1"</code>, <code>"</code><code>TVInputComponent2"</code>, <code>"</code><code>TVInputComposite1"</code>, <code>"</code><code>TVInputComposite2"</code>, <code>"</code><code>TVInputHDMI1"</code>, <code>"</code><code>TVInputHDMI2"</code>, <code>"</code><code>TVInputHDMI3"</code>, <code>"</code><code>TVInputHDMI4"</code>, <code>"</code><code>TVInputVGA1"</code>, <code>"</code><code>TVMediaContext"</code>, <code>"</code><code>TVNetwork"</code>, <code>"</code><code>TVNumberEntry"</code>, <code>"</code><code>TVRadioService"</code>, <code>"</code><code>TVSatellite"</code>, <code>"</code><code>TVSatelliteBS"</code>, <code>"</code><code>TVSatelliteCS"</code>, <code>"</code><code>TVSatelliteToggle"</code>, <code>"</code><code>TVTerrestrialAnalog"</code>, <code>"</code><code>TVTerrestrialDigital"</code>, <code>"</code><code>TVTimer"</code>, e <code>"</code><code>DVR"</code> ({{bug(1232919)}}).</li>
+ <li>O código <code>"</code><code>MediaSelect"</code> foi substituido pelo valor padrão <code>"</code><code>LaunchMediaPlayer"</code> ({{bug(1272592)}}).</li>
+ <li>
+ <p style="margin-bottom: 0cm; line-height: 100%;"><em><span style="font-style: normal;">Foram adicionados códigos adicionais para mídia-player</span></em>. São esses <code>"</code><code>MediaAudioTrack"</code>, <code>"</code><code>MediaSkipBackward"</code>, <code>"</code><code>MediaSkipForward"</code>, <code>"</code><code>MediaStepBackward"</code>, <code>"</code><code>MediaStepForward"</code>, <code>"</code><code>MediaTopMenu"</code>, <code>"</code><code>NavigateIn"</code>, <code>"</code><code>NavigateNext"</code>, <code>"</code><code>NavigateOut"</code>, e <code>"</code><code>NavigatePrevious"</code> ({{bug(1232919)}}).</p>
+ </li>
+</ul>
+
+<h4 id="Canvas">Canvas</h4>
+
+<ul>
+ <li>A propriedade {{domxref("CanvasRenderingContext2D.filter")}}, que fornece suporte para adicionar foltros a uma canvas, agora é ativa por padrão e não precisa mais ser abilitado nas preferências ({{bug(1173545)}}).</li>
+</ul>
+
+<h4 id="WebGL">WebGL</h4>
+
+<ul>
+ <li>A extensão {{domxref("EXT_color_buffer_float")}} {{domxref("WebGL2RenderingContext", "WebGL 2", "", 1)}} foi implementada ({{bug(1129332)}}).</li>
+ <li>O evento {{Event("webglcontextcreationerror")}}, que é criando quando a tentativa de criação de contexto do WebGL falha, foi implementado ({{bug(1271478)}}). Use isso para ajudar a entender melhor, tanto para depuração quanto para o processamento de errros de produção.</li>
+</ul>
+
+<h4 id="IndexedDB">IndexedDB</h4>
+
+<ul>
+ <li>Agora você pode renomear IndexedDB indexes; a propriedade {{domxref("IDBIndex.name")}} já não é mais de leitura-única ({{bug(1118028)}}).</li>
+ <li>Você também pode renomear {{domxref("IDBObjectStore")}}s; a propriedade {{domxref("IDBObjectStore.name")}} já não é de leitura-única ({{bug(1118028)}}).</li>
+</ul>
+
+<h4 id="Service_Workers_e_relatórios">Service Workers e relatórios</h4>
+
+<ul>
+ <li>O Objeto <a href="/en-US/docs/Web/API/Fetch_API">Fetch API</a>'s {{domxref("Response")}} agora implementa a propriedade {{domxref("Response.redirected", "redirected")}} , <span id="result_box" lang="pt"><span>que indica se a resposta é para uma solicitação que foi redirecionada</span></span>. Por favor ervise o relatório de segurança na documentação usanda anteriormente nessa propriedade ({{bug(1243792)}}).</li>
+ <li>Na <a href="/en-US/docs/Web/API/Permissions_API">API de Permissões</a>, Firefox já não suporta a palavra <code>PermissionDescriptor</code> ti <span id="result_box" lang="pt"><span> push (referido na especificação como </span></span><code>PushPermissionDescriptor</code>); Isso ocorre porque o Firefox depende de um sistema de cotas<span class="short_text" id="result_box" lang="pt"><span> para controloar o status</span></span> <code>userVisibleOnly</code>, <span id="result_box" lang="pt"><span>e estava lançando um erro ao encontrar uma instância do</span></span> <code>PushPermissionDescriptor</code> ({{bug(1266821)}}). Com essa palavra removida, o Firefox simplismente ignora.</li>
+</ul>
+
+<h4 id="Streams_de_mídia">Streams de mídia</h4>
+
+<ul>
+ <li>Antigamente, era possível chamar {{domxref("MediaDevices.getUserMedia()")}} como requerimento ambos áudio e vídeo <span id="result_box" lang="pt"><span>para ter sucesso nos casos em que o usuário tem apenas um dos dois tipos de hardware disponíveis</span></span> . Isso foi fixado ({{bug(802326)}}).</li>
+ <li>Nas versões anteriores do Firefox, era possível chamar por {{domxref("MediaDevices.getUserMedia()")}} que solicita tando audio quanto vídeo <span id="result_box" lang="pt"><span>para ter êxito mesmo que o usuário tenha negado acesso a um, mas não a ambos os dispositivos de correspondência</span></span>. Isso foi fixado ({{bug(802326)}}). Isso envolve pequenas alterações na interface de usuários, para remover a opção para escolher "sem áudio" ou "Sem vídeo" quando o usuário é solicitado para as permissões.</li>
+ <li>O metodo {{domxref("MediaStream.getTrackById()")}} foi implantado ({{bug(1208390)}}).</li>
+</ul>
+
+<h4 id="WebRTC">WebRTC</h4>
+
+<ul>
+ <li>O metodo {{domxref("RTCPeerConnection.addTrack()")}} foi atualizado para permitir tracks <span id="result_box" lang="pt"><span>sue não são componentes dos </span></span> stream <span lang="pt"><span> especificados a serem adicionados à conexão</span></span>. Ao invés, os streams são usados para agrupar tracks na extremidade receptora da conexão ({{bug(1271669)}}).</li>
+</ul>
+
+<h4 id="Novas_APIs">Novas APIs</h4>
+
+<ul>
+ <li>A API {{domxref("PerformanceObserver")}} agpra é ativa por padrão no Nightly. Isso não é atio por padrão em outras versõs do Firefox 49 ({{bug(1271487)}}).</li>
+</ul>
+
+<h4 id="Outras">Outras</h4>
+
+<ul>
+ <li>{{domxref("XMLHttpRequest.getResponseHeader()")}} e {{domxref("XMLHttpRequest.getAllResponseHeaders()")}} r<span class="short_text" id="result_box" lang="pt"><span>etornar cabeçalhos vazios caso a preferência </span></span><code>network.http.keep_empty_response_headers_as_empty_string</code> esta configurado para <code>true</code> ({{bug(669259)}}).</li>
+ <li>O Firefox OS-apenas <a href="/en-US/docs/Archive/Firefox_OS/API/Data_Store_API">API Banco de Dados</a> foi removida ({{bug(1261009)}}).</li>
+ <li>A <a href="/en-US/docs/Web/API/Fullscreen_API">API de Tela Cheia</a> manipulador de eventos {{domxref("Document.onfullscreenchange")}} e {{domxref("Document.onfullscreenerror")}} foram removidos de  {{domxref("Element")}} como nunca foram usados la; <span id="result_box" lang="pt"><span>As versões de prefixo desses manipuladores de eventos foram mantidas lá para fins de compatibilidade</span></span>, Contudo ({{bug(1270386)}}). Observe que ele não é ativado por padrão, mas está atrás da preferência  <code>full-screen-api.unprefix.enabled</code> ({{bug(1268749)}}).</li>
+ <li>A propriedade obsoleta {{domxref("Document.mozFullScreen")}} não foi pré-fixada {{domxref("Document.fullscreen")}} {{bug(1269157)}}}. Perceba que ela não é ativa por padrão nas preferencias the <code>full-screen-api.unprefix.enabled</code> ({{bug(1268749)}}).</li>
+ <li>A propriedade leitor {{domxref("Document.fullscreenElement")}} e {{domxref("Document.fullscreenEnabled")}} deixa de lançar exceção se hover tentativa de alterar o seu valor; ao invés disso, o novo valor é ignorado e a função setter é uma no-op ({{bug(1269798)}}).</li>
+ <li>Qualquer tipode de dado pode ser agora recuperado da área de tranferência usada {{domxref("DataTransfer.getData()")}}: anteriormente, apenas alguns tipos de dados do tipo MIME eram suportados {{bug(860857)}}.</li>
+ <li>Nossa implementação da <a href="/en-US/docs/Web/API/Frame_Timing_API">API da cronometragrm de frames</a>, consistindo nas duas interfaces <code>PerformanceCompositeTiming</code> e <code>PerformanceRenderTiming</code>, foram removidas pois as especificações foram totalmente reescritas ({{bug(1271846)}}).</li>
+ <li>Para especificações correspondentes, a propriedade {{domxref("VTTCue.positionAlign")}} agora retorna um <code>PositionAlign</code> enum em vez de <code>Align</code> enum ({{bug(1276129)}}).</li>
+ <li>A parte de síntese da <a href="/en-US/docs/Web/API/Web_Speech_API#Speech_synthesis">API Web Speech </a> agora é ativo por padrão ({{bug(1268633)}}).</li>
+ <li>A <a href="/en-US/docs/Web/API/Performance_Timeline">API Timeline de performace</a> agora está disponível de padrão no Nightly (embrora não no Aurora, Beta ou Release).</li>
+ <li>O evento {{event("install")}}, e o {{domxref("Window.oninstall")}} manipulador de evento, são agora suportado por <a href="/en-US/docs/Web/Manifest">Web Manifests</a> ({{bug(1265279)}}).</li>
+ <li>Quando usar o metodo {{domxref("AudioContext.createPeriodicWave()")}} de <a href="/en-US/docs/Web/API/Web_Audio_API">Web Audio API</a>, você pode específicar <span id="result_box" lang="pt"><span>se a onda periódica resultante deve ser normalizada incluindo um objeto de dicionário como o terceiro parâmetro, que inclui um único parâmetro</span></span> — <code>{disableNormalization: true}</code> ({{bug(1265405)}}).</li>
+ <li>Na APIWebVTT, {{domxref("VTTCue.positionAlign")}} retorna corretamente um <code>PositionAlignSetting</code> enum conforme a especificação; anteriormente ele retornava um <code>AlignSetting</code> enum ({{bug(1276129)}}).</li>
+ <li>A parte de síntese de fala da API Web Speech agora é habilitado por padrão em todos os navegadores desktop ({{bug(1268633)}}).</li>
+ <li>O contrutor de <a href="/en-US/docs/Web/API/Web_Animations_API">API Web Animations </a>{{domxref("Animation.Animation()", "Animation()")}} agora aceita null na timeline ({{bug(1096776)}}).</li>
+</ul>
+
+<h3 id="MathML">MathML</h3>
+
+<p><em>Sem mudanças.</em></p>
+
+<h3 id="SVG">SVG</h3>
+
+<ul>
+ <li>Removido o suporte por ser considerador obsoleto os seguintes elementos: {{SVGElement('altGlyph')}}, {{SVGElement('altGlyphDef')}} e {{SVGElement('altGlyphItem')}}  ({{bug(1260032)}}).</li>
+</ul>
+
+<h3 id="AudioVideo">Audio/Video</h3>
+
+<p><em>Sem mudanças.</em></p>
+
+<h2 id="HTTP">HTTP</h2>
+
+<ul>
+ <li><code>O diretiva <a href="/en-US/docs/Web/HTTP/Headers/Cache-Control">Cache-Control: immutable</a></code> foi implantada ({{bug(1267474)}}). Veja também essa <a href="https://bitsup.blogspot.de/2016/05/cache-control-immutable.html">postagem no blog</a> para mais informações.</li>
+</ul>
+
+<h2 id="Networking">Networking</h2>
+
+<ul>
+ <li>A implementação do <a href="/en-US/docs/Mozilla/Projects/Necko/Proxy_Auto-Configuration_(PAC)_file">Auto-configuração de Proxy (PAC)</a> foi atualizada. Agora <code>weekdayRange</code>, <code>dateRange</code>, e <code>timeRange</code> suportam "intervalos invertidos", por exempo, <code>weekdayRange("SAT", "MON")</code> avaliare <code>true</code> se o dia atual é Saturday, Sunday, ou Monday ({{bug(1251332)}}).</li>
+</ul>
+
+<h2 id="Segurança">Segurança</h2>
+
+<ul>
+ <li>A propriedade {{domxref("Window.isSecureContext")}}, indica se o contexto é capaz de usar recursos que exigem <a href="/en-US/docs/Web/Security/Secure_Contexts">contextos de segurança</a>, foi implementado ({{bug(1162772)}}).</li>
+</ul>
+
+<h2 id="Compatilibidade">Compatilibidade</h2>
+
+<p>A fim de melhorar a compatilidade com o conteúdo existente, Firefox agora aceita algumas propriedades e atributos do webkit.</p>
+
+<ul>
+ <li>    <span id="result_box" lang="pt"><span>As propriedades a seguir também trabalham com prefixo</span></span> -webkit:
+
+ <ul>
+ <li>{{cssxref("-webkit-align-items")}}</li>
+ <li>{{cssxref("-webkit-align-content")}}</li>
+ <li>{{cssxref("-webkit-align-self")}}</li>
+ <li>{{cssxref("-webkit-animation")}}</li>
+ <li>{{cssxref("-webkit-animation-delay")}}</li>
+ <li>{{cssxref("-webkit-animation-direction")}}</li>
+ <li>{{cssxref("-webkit-animation-duration")}}</li>
+ <li>{{cssxref("-webkit-animation-fill-mode")}}</li>
+ <li>{{cssxref("-webkit-animation-iteration-count")}}</li>
+ <li>{{cssxref("-webkit-animation-name")}}</li>
+ <li>{{cssxref("-webkit-animation-play-state")}}</li>
+ <li>{{cssxref("-webkit-animation-timing-function")}}</li>
+ <li>{{cssxref("-webkit-backface-visibility")}}</li>
+ <li>{{cssxref("-webkit-background-clip")}}</li>
+ <li>{{cssxref("-webkit-background-origin")}}</li>
+ <li>{{cssxref("-webkit-background-size")}}</li>
+ <li>{{cssxref("-webkit-border-bottom-left-radius")}}</li>
+ <li>{{cssxref("-webkit-border-bottom-right-radius")}}</li>
+ <li>{{cssxref("-webkit-border-image")}}</li>
+ <li>{{cssxref("-webkit-border-top-left-radius")}}</li>
+ <li>{{cssxref("-webkit-border-top-right-radius")}}</li>
+ <li>{{cssxref("-webkit-border-radius")}}</li>
+ <li>{{cssxref("-webkit-box-shadow")}}</li>
+ <li>{{cssxref("-webkit-filter")}}</li>
+ <li>{{cssxref("-webkit-flex")}}</li>
+ <li>{{cssxref("-webkit-flex-basis")}}</li>
+ <li>{{cssxref("-webkit-flex-direction")}}</li>
+ <li>{{cssxref("-webkit-flex-flow")}}</li>
+ <li>{{cssxref("-webkit-flex-grow")}}</li>
+ <li>{{cssxref("-webkit-flex-shrink")}}</li>
+ <li>{{cssxref("-webkit-flex-wrap")}}</li>
+ <li>{{cssxref("-webkit-justify-content")}}</li>
+ <li>{{cssxref("-webkit-order")}}</li>
+ <li>{{cssxref("-webkit-perspective")}}</li>
+ <li>{{cssxref("-webkit-perspective-origin")}}</li>
+ <li>{{cssxref("-webkit-text-size-adjust")}}</li>
+ <li>{{cssxref("-webkit-transform")}}</li>
+ <li>{{cssxref("-webkit-transform-origin")}}</li>
+ <li>{{cssxref("-webkit-transform-style")}}</li>
+ <li>{{cssxref("-webkit-transition")}}</li>
+ <li>{{cssxref("-webkit-transition-delay")}}</li>
+ <li>{{cssxref("-webkit-transition-duration")}}</li>
+ <li>{{cssxref("-webkit-transition-property")}}</li>
+ <li>{{cssxref("-webkit-transition-timing-function")}}</li>
+ <li>{{cssxref("-webkit-user-select")}}</li>
+ </ul>
+ </li>
+ <li><span id="result_box" lang="pt"><span>As propriedades a seguir correspondem à propriedade prefixa equivalente</span></span>
+ <ul>
+ <li>{{cssxref("-webkit-box-flex")}}</li>
+ <li>{{cssxref("-webkit-box-ordinal-group")}}</li>
+ <li>{{cssxref("-webkit-box-orient")}}</li>
+ <li>{{cssxref("-webkit-box-align")}}</li>
+ <li>{{cssxref("-webkit-box-pack")}}</li>
+ </ul>
+ </li>
+ <li>Para valores {{cssxref("&lt;image&gt;")}}:
+ <ul>
+ <li><span id="result_box" lang="pt"><span>As funções a seguir correspondem aos seus equivalentes não predefinidos:</span></span> {{cssxref("-webkit-linear-gradient", "-webkit-linear-gradient()")}}, {{cssxref("-webkit-radial-gradient", "-webkit-radial-gradient()")}}, {{cssxref("-webkit-repeating-linear-gradient", "-webkit-repeating-linear-gradient()")}}, e {{cssxref("-webkit-repeating-radial-gradient","-webkit-repeating-radial-gradient()")}}.</li>
+ <li>O desatualizado <code>-webkit-gradient</code> é suportado (e traduzindo para um gradiente regular)</li>
+ </ul>
+ </li>
+ <li>Os seguintes valores {{cssxref("display")}} foram traduzidos:
+ <ul>
+ <li><code>-webkit-box</code> to <code>-moz-box</code></li>
+ <li><code>-webkit-flex</code> to <code>flex</code></li>
+ <li><code>-webkit-inline-box</code> to <code>inline-flex</code></li>
+ <li><code>-webkit-inline-flex</code> to <code>-moz-inline-flex</code></li>
+ </ul>
+ </li>
+ <li> As seguintes propriedades são suportadas ( <span id="result_box" lang="pt"><span>E não mapeia para qualquer equivalente não predefinido</span></span>):
+ <ul>
+ <li>{{cssxref("-webkit-text-fill-color")}}</li>
+ <li>{{cssxref("-webkit-text-stroke-color")}}</li>
+ <li>{{cssxref("-webkit-text-stroke-width")}}</li>
+ <li>{{cssxref("-webkit-text-stroke")}}</li>
+ </ul>
+ </li>
+ <li>A interface {{domxref("WebKitCSSMatrix")}} é um nome de {{domxref("DOMMatrix")}}</li>
+ <li><span id="result_box" lang="pt"><span>Os seguintes recursos de consulta de mídia foram implementados</span></span>:
+ <ul>
+ <li><code>-webkit-min-device-pixel-ratio</code> é um nome para <code><a href="/en-US/docs/Web/CSS/Media_Queries/Using_media_queries#resolution">min-resolution</a></code> com o mesmo valor em (em <code>dppx)</code>, embora este recurso seja <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1237720">disabilitado por padrão</a> (atras de preferências no about:config <code>layout.css.prefixes.device-pixel-ratio-webkit</code>)</li>
+ <li><code>-webkit-max-device-pixel-ratio</code> é um nome de <code><a href="/en-US/docs/Web/CSS/Media_Queries/Using_media_queries#resolution">max-resolution</a></code> para o mesmo valor (em <code>dppx</code>); essa característica é destivada por padrão, atras da mesma preferência no about:config</li>
+ <li><code><a href="/en-US/docs/Web/CSS/Media_Queries/Using_media_queries#-webkit-transform-3d">-webkit-transform-3d</a></code> sempre combinando, indicando suporte a transformações 3D.</li>
+ </ul>
+ </li>
+</ul>
+
+<h2 id="Mudanças_para_extensões_e_desenvolvedores_Mozilla">Mudanças para extensões e desenvolvedores Mozilla</h2>
+
+<h3 id="Extensões_WEB">Extensões WEB</h3>
+
+<ul>
+ <li>Suporte a {{WebExtAPIRef("history")}} foi adicionado. Isso fornece acesso a histórico do navegador, com metodos disponíveis para pesquisar no histórico, obtendo informações sobre páginas visitanas anteriormente, e adicionando e removendo entradas no históricos.</li>
+ <li>Adicionado o metodo {{WebExtAPIRef("tabs.removeCSS()")}} para aba API. Esse metodo permite remover o CSS que foi anteriormente injetado por chamada  {{WebExtAPIRef("tabs.insertCSS()")}}.</li>
+</ul>
+
+<h3 id="Interfaces">Interfaces</h3>
+
+<ul>
+ <li>No {{domxref("EventTarget.addEventListener()")}}, o valor <code>mozSystemGroup</code>,  ativa apenas com o código rodando no XBL ou no Firefox's chrome, e um {{jsxref("Boolean")}} que indica se o ouvinte foi adicionado ao grupo do sistema. ({{bug(1274520)}})</li>
+</ul>
+
+<h3 id="Outros">Outros</h3>
+
+<p><em>Sem mudanças!.</em></p>
+
+<h2 id="Veja_tambpem">Veja tambpem</h2>
+
+<ul>
+ <li><a href="https://www.fxsitecompat.com/en-US/versions/49">Sites compatíveis com o Firefox 49</a></li>
+</ul>
+
+<h2 id="Outras_versões">Outras versões</h2>
+
+<p>{{Firefox_for_developers(48)}}</p>
diff --git a/files/pt-br/mozilla/firefox/releases/50/index.html b/files/pt-br/mozilla/firefox/releases/50/index.html
new file mode 100644
index 0000000000..fc558d4eef
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/releases/50/index.html
@@ -0,0 +1,150 @@
+---
+title: Firefox 50 for developers
+slug: Mozilla/Firefox/Releases/50
+translation_of: Mozilla/Firefox/Releases/50
+---
+<div>{{FirefoxSidebar}}</div>
+
+<p>O Firefox 50 foi lançado em 15 de novembro de 2016. Este artigo lista as principais alterações que são úteis não só para os desenvolvedores Web, mas também para os desenvolvedores do Firefox e Gecko, assim como os desenvolvedores do Add-on.</p>
+
+<h2 id="Mudanças_para_desenvolvedores_web">Mudanças para desenvolvedores web</h2>
+
+<h3 id="Developer_Tools">Developer Tools</h3>
+
+<p><span class="short_text" id="result_box" lang="pt"><span>Nenhuma mudança</span><span>.</span></span></p>
+
+<h3 id="HTML">HTML</h3>
+
+<ul><br>
+ <li>For compatibility purposes, the non-standard {{HTMLattrxref("webkitdirectory", "input")}} attribute of the {{HTMLElement("input")}} element, as well as the property {{domxref("HTMLInputElement.webkitDirectory")}} property, have been implemented ({{bug(1258489)}}).</li>
+ <li>The default style of {{HTMLElement("bdo")}} now has a {{cssxref("unicode-bidi")}} with the <code>isolate-override</code> value ({{bug(1249497)}}).</li>
+</ul>
+
+<h3 id="CSS">CSS</h3>
+
+<ul>
+ <li>Border-radiused corner with dashed and dotted style is now rendered with specified style instead of solid style ({{bug(382721)}}).</li>
+ <li>The non-standard {{cssxref(":-moz-full-screen-ancestor")}} pseudo-class selector has been removed ({{bug(1199529)}}).</li>
+ <li>The {{cssxref("box-sizing")}}<code>: padding-box</code> has been removed, since it’s no longer a part of the spec and Firefox was the only major browser to implement it ({{bug(1166728)}}).</li>
+ <li>Our experimental implementation of {{cssxref('mask-position')}} now supports animation of this property ({{bug(1273804)}}). It is still available only on Nightly.</li>
+ <li>The three values <code>isolate</code>, <code>isolate-override</code>, and <code>plaintext</code> of the {{cssxref("unicode-bidi")}} have been unprefixed ({{bug(1141895)}}).</li>
+ <li>In quirk mode, the bullet of a list now inherit the size of the list, like in standard mode ({{bug(648331)}}).</li>
+ <li>Changed behavior of the {{cssxref(":in-range")}} and {{cssxref(":out-of-range")}} pseudo-classes to not match disabled or read-only inputs ({{bug(1264157)}}).</li>
+ <li>Unprefixed {{cssxref(":any-link")}} pseudo-class {{bug(843579)}}.</li>
+ <li>Implemented <code>space</code> value of {{cssxref("border-image-repeat")}} ({{bug(720531)}}).</li>
+</ul>
+
+<h3 id="JavaScript">JavaScript</h3>
+
+<ul>
+ <li>The ES2015 {{jsxref("Symbol.hasInstance")}} property has been implemented ({{bug(1054906)}}).</li>
+ <li>The ES2017 {{jsxref("Object.getOwnPropertyDescriptors()")}} method has been implemented ({{bug(1245024)}}).</li>
+ <li>The behavior of \W in {{jsxref("RegExp")}} with unicode and ignoreCase flags is changed to match recent draft spec. Now it doesn't match to K, S, k, s, and KELVIN SIGN (U+212A), and LATIN SMALL LETTER LONG S (U+017F) ({{bug(1281739)}}).</li>
+</ul>
+
+<h3 id="InterfacesAPIsDOM">Interfaces/APIs/DOM</h3>
+
+<h4 id="DOM_HTML_DOM">DOM &amp; HTML DOM</h4>
+
+<ul>
+ <li>The {{domxref("HTMLInputElement.webkitdirectory")}} property is now supported ({{bug(1258489)}}).</li>
+ <li>Support <code>once</code> option for {{domxref("EventTarget.addEventListener()")}} ({{bug(1287706)}}).</li>
+</ul>
+
+<h4 id="Canvas">Canvas</h4>
+
+<p><em>No change.</em></p>
+
+<h4 id="WebGL">WebGL</h4>
+
+<ul>
+ <li>The {{domxref("EXT_shader_texture_lod")}} WebGL extension has been implemented ({{bug(1111689)}}).</li>
+</ul>
+
+<h4 id="IndexedDB">IndexedDB</h4>
+
+<p><em>No change.</em></p>
+
+<h4 id="Service_Workers">Service Workers</h4>
+
+<ul>
+ <li>The {{domxref("WindowClient.navigate()")}} method has been implemented. This method lets you open a specified URL into a client window which is being controlled by the service worker ({{bug(1218148)}}).</li>
+</ul>
+
+<h4 id="WebRTC">WebRTC</h4>
+
+<ul>
+ <li>The {{domxref("RTCDataChannel.stream")}} property has been removed. This was replaced with {{domxref("RTCDataChannel.id")}} in <a href="/en-US/docs/Mozilla/Firefox/Releases/24">Firefox 24</a>, but was supported for backward compatibility. Please be sure to update your code to use the <code>id</code> property if you haven't done so yet.</li>
+</ul>
+
+<h4 id="New_APIs">New APIs</h4>
+
+<p><em>No change.</em></p>
+
+<h4 id="Others">Others</h4>
+
+<ul>
+ <li>{{domxref("XMLHttpRequest.getResponseHeader()")}} and {{domxref("XMLHttpRequest.getAllResponseHeaders()")}} now also return empty headers by default. This can be controlled via the preference <code>network.http.keep_empty_response_headers_as_empty_string</code> ({{bug(918721)}}).</li>
+</ul>
+
+<h3 id="MathML">MathML</h3>
+
+<p><em>No change.</em></p>
+
+<h3 id="SVG">SVG</h3>
+
+<p><em>No change.</em></p>
+
+<h3 id="AudioVideo">Audio/Video</h3>
+
+<p><em>No change.</em></p>
+
+<h2 id="HTTP">HTTP</h2>
+
+<ul>
+ <li>The experimental (and deprecated) <a href="https://en.wikipedia.org/wiki/SPDY">SPDY</a> 3.1 is now disable by default {{bug(1287132)}}.</li>
+ <li>Support for {{HTTPHeader("X-Content-Type-Options")}} has been added ({{bug(471020)}}).</li>
+</ul>
+
+<h2 id="Networking">Networking</h2>
+
+<ul>
+ <li>The {{htmlattrxref("ping", "a")}} attribute of {{htmlelement("a")}} element is now abiding by the <code><a href="https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives#connect-src">connect-src</a></code> <a href="https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives">CSP 1.1 policy directive</a> ({{bug(1100181)}}).</li>
+ <li>Support of the <code><a href="https://developer.mozilla.org/en-US/docs/Web/Security/CSP/CSP_policy_directives#sandbox">sandbox</a></code> <a href="/en-US/docs/Web/Security/CSP">CSP</a> directive has been added ({{bug(671389)}}).</li>
+</ul>
+
+<h2 id="Segurança"><span class="short_text" id="result_box" lang="pt"><span>Segurança</span></span></h2>
+
+<p><span class="short_text" id="result_box" lang="pt"><span>Nenhuma mudança</span><span>.</span></span></p>
+
+<h2 id="Changes_for_add-on_and_Mozilla_developers">Changes for add-on and Mozilla developers</h2>
+
+<h3 id="Interfaces">Interfaces</h3>
+
+<p><em>No change.</em></p>
+
+<h3 id="XUL">XUL</h3>
+
+<p><em>No change.</em></p>
+
+<h3 id="JavaScript_code_modules">JavaScript code modules</h3>
+
+<p><em>No change.</em></p>
+
+<h3 id="XPCOM">XPCOM</h3>
+
+<p><em>No change.</em></p>
+
+<h3 id="Outroas">Outroas</h3>
+
+<p><em>No change.</em></p>
+
+<h2 id="Veja_também"><span class="short_text" id="result_box" lang="pt"><span>Veja também</span></span></h2>
+
+<ul>
+ <li><a href="https://www.fxsitecompat.com/en-US/versions/50">Site Compatibility for Firefox 50</a></li>
+</ul>
+
+<h2 id="Versões_mais_antigas"><span class="short_text" id="result_box" lang="pt"><span>Versões mais antigas</span></span></h2>
+
+<p>{{Firefox_for_developers(49)}}</p>
diff --git a/files/pt-br/mozilla/firefox/releases/57/index.html b/files/pt-br/mozilla/firefox/releases/57/index.html
new file mode 100644
index 0000000000..3d579a546e
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/releases/57/index.html
@@ -0,0 +1,301 @@
+---
+title: Firefox Quantum 57 for developers
+slug: Mozilla/Firefox/Releases/57
+translation_of: Mozilla/Firefox/Releases/57
+---
+<div>{{FirefoxSidebar}}</div>
+
+<div>This article provides information about the changes in Firefox 57 (a.k.a. Firefox Quantum) that will affect developers. Firefox 57 was released on November 14, 2017.</div>
+
+<div> </div>
+
+<h2 id="Firefox_57_Firefox_Quantum">Firefox 57 === Firefox Quantum</h2>
+
+<p>O Firefox 57 recebeu o nome de lançamento <strong>Quantum</strong>, após o projeto de engenharia Firefox <a href="https://wiki.mozilla.org/Quantum">Quantum</a> que tem como objetivo reconstruir o Firefox a partir do zero, trazendo consigo grande desempenho, estabilidade e melhorias visuais. This is the first version of Firefox to ship some of these improvements, so we wanted to mark the occasion.</p>
+
+<div class="blockIndicator note">
+<p><strong>Nota:</strong> Para ler mais sobre os recursos do Quantum nesta versão, veja: <a href="https://hacks.mozilla.org/2017/09/firefox-quantum-developer-edition-fastest-firefox-ever/">Firefox Quantum Developer Edition: the fastest Firefox ever with Photon UI and better tooling</a> por Dan Callahan.</p>
+</div>
+
+<p><a href="https://hacks.mozilla.org/2017/08/inside-a-super-fast-css-engine-quantum-css-aka-stylo/">Firefox's new parallel CSS engine</a> — também conhecido como <strong>Quantum CSS</strong> ou <strong>Stylo</strong> ─ está habilitado por padrão no Firefox 57 para desktop, com versões móveis do Firefox para seguir mais tarde. Os desenvolvedores não devem notar nada significativamente diferente, além de toda uma série de melhorias de desempenho. Existem, no entanto, algumas pequenas diferenças funcionais no Stylo, implementado para corrigir o comportamento não padronizado do Gecko que deve ser eliminado. Nos reportaremos tais diferenças nas páginas de referência e nas notas de lançamento conforme apropriado (veja {{anch("Quantum CSS notes")}}).</p>
+
+<h2 id="Changes_for_Web_developers">Changes for Web developers</h2>
+
+<h3 id="Ferramentas_de_desenvolvimento">Ferramentas de desenvolvimento</h3>
+
+<p>Sem mudanças.</p>
+
+<h3 id="HTML">HTML</h3>
+
+<ul>
+ <li>Os types {{htmlelement("input")}} <a href="/pt-BR/docs/Web/HTML/Element/Input/data">date</a> e <a href="/pt-BR/docs/Web/HTML/Element/Input/time">time</a> agora estão habilitados em todos builds. ({{bug("1399036")}})</li>
+</ul>
+
+<h3 id="CSS">CSS</h3>
+
+<ul>
+ <li>Os valores <code>minimal-ui</code> e <code>standalone</code> do media query <a href="/pt-BR/docs/Web/CSS/@media/display-mode">display-mode</a> agora são suportados ({{bug(1369815)}}). Veja também o <a href="/pt-BR/docs/Web/Manifest#display">Web app manifest <code>display</code> field</a>.</li>
+ <li>As propriedades {{CSSxRef("grid-row-gap")}} e {{CSSxRef("grid-column-gap")}} não são mais redefinidas pelo {{CSSxRef("grid")}} de forma abreviada ({{bug(1387410)}}).</li>
+ <li>A preferência <code>layout.css.clip-path-shapes.enabled</code> foi removida ({{bug(1399767)}}). Esta preferência permite desabilitar a {{CSSxRef("&lt;basic-shape&gt;")}} suportado em {{CSSxRef("clip-path")}}. Este suporte foi enviado no Firefox 54 e não pode mais ser desativado.</li>
+</ul>
+
+<h4 id="Quantum_CSS_notes">Quantum CSS notes</h4>
+
+<p>Following bugs have been fixed in Quantum:</p>
+
+<ul>
+ <li>Radial gradient values like <code>radial-gradient(circle gold,red)</code> will work in the old Gecko style system, even though they shouldn't because of the missing comma between <code>circle</code> and <code>gold</code> ({{bug(1383323)}}). </li>
+ <li>When you animate an offscreen element onscreen but specify a delay, Gecko does not repaint on some platforms, e.g. Windows ({{bug(1383239)}}). </li>
+ <li>In Gecko, {{htmlelement("details")}} elements can't be made open by default using the <code>open</code> attribute if they have an {{CSSxRef("animation")}} active on them ({{bug(1382124)}}).</li>
+ <li>In Gecko, {{CSSxRef("transition", "transitions")}} will not work when transitioning from a {{CSSxRef("text-shadow")}} with a color specified to a <code>text-shadow</code> without a color specified  ({{bug(726550)}}).</li>
+ <li>In Gecko, cancelling a filling animation (e.g. with <code>animation-fill-mode: forwards</code> set) can trigger a transition set on the same element, although only once (see {{bug(1192592)}} and <a href="https://bug1192592.bmoattachments.org/attachment.cgi?id=8843824">these test cases</a> for more information). In general declarative animations should not trigger transitions. </li>
+ <li>Animations using em units are not affected by changes to the {{CSSxRef("font-size")}} on the animated element's parent in Gecko, whereas they should be ({{bug(1254424)}}). </li>
+ <li>Gecko also deals with <code>font-size</code> inheritance differently from Quantum CSS, meaning that for some language settings inherited font sizes end up being smaller than expected (see {{bug(1391341)}}). </li>
+ <li>Gecko reuses the same mechanism used when parsing a url-token when parsing the <code>domain()</code> or <code>url-prefix()</code> URL matching functions for a {{CSSxRef("@document", "@-moz-document")}} rule. Quantum CSS does not use the same mechanism and it does not consider tokens invalid when they contain brackets or quotes ({{bug(1362333)}}).</li>
+ <li>In Gecko, when you set a system font as the value of a canvas 2D context's {{DOMxRef("CanvasRenderingContext2D.font", "font")}} (e.g. <code>menu</code>), getting the font value fails to return the expected font (it returns nothing). This has been fixed in Quantum. ({{bug(1374885)}}).</li>
+ <li>In Gecko, when you create a detached subtree (e.g. a {{htmlelement("div")}} created using {{DOMxRef("Document.createElement","createElement()")}} that is not yet inserted into the DOM), the subtree's root element is set as a block-level element. In Quantum CSS this is set as inline, as per spec ({{bug(1374994)}}).</li>
+ <li>In Gecko, {{CSSxRef("calc")}} expressions are rejected — causing the value to be invalid — when used as the radius component of a {{CSSxRef("radial-gradient")}} function ({{bug(1376019)}}).</li>
+ <li>In Gecko, <code>calc(1*2*3)</code> is not parsed successfully; Quantum CSS fixes this ({{bug(1379467)}}).</li>
+ <li>In Quantum CSS, <a href="https://drafts.csswg.org/css-values-3/#calc-notation"><code>calc()</code> is supported everywhere that the spec explains it should be</a> ({{bug(1350857)}}). In Gecko it is not.</li>
+ <li>Gecko has a bug whereby the {{CSSxRef("::before")}} and {{CSSxRef("::after")}} pseudo-elements are still generated even if the {{CSSxRef("content")}} property value is set to <code>normal</code> or <code>none</code>. As per spec, they shouldn't be ({{bug(1387931)}}).</li>
+ <li>Another Gecko bug means that the {{CSSxRef("background-position")}} property can't be transitioned between two values containing different numbers of {{CSSxRef("&lt;position&gt;")}} values, for example <code>background-position: 10px 10px;</code> and <code>background-position: 20px 20px, 30px 30px;</code> (see {{bug(1390446)}}). </li>
+</ul>
+
+<h3 id="SVG">SVG</h3>
+
+<p>Sem mudanças.</p>
+
+<h3 id="JavaScript">JavaScript</h3>
+
+<ul>
+ <li>O não-padronizado {{JSxRef("Statements/for_each...in", "for each...in")}} (E4X) loop foi removido. Por favor, use o {{JSxRef("Statements/for...of", "for...of")}} ao invés disso e veja  <a href="/en-US/docs/Web/JavaScript/Reference/Errors/For-each-in_loops_are_deprecated">Warning: JavaScript 1.6's for-each-in loops are deprecated</a> para ajudar na migração. ({{bug(1083470)}}).</li>
+ <li>Os métodos  {{JSxRef("Object.prototype.watch()")}} e {{JSxRef("Object.unwatch", "unwatch()")}} estão descontinuados, agora lançará um alerta(warning) quando usado, e será removido em breve. ({{bug(934669)}}).</li>
+ <li>Os objetos não-padronizados Iterator e StopIteration assim como o protocolo de iteração legado foram removidos ({{bug(1098412)}}).</li>
+ <li>Async generator está agora ativado. ({{bug(1352312)}}).</li>
+ <li>A sintaxe for await (...of...) está agora ativado. ({{bug(1352312)}}).</li>
+</ul>
+
+<h4 id="Novas_APIs">Novas APIs</h4>
+
+<ul>
+ <li>A {{DOMxRef("PerformanceObserver")}} está habilitado por padrão(default). ({{bug(1386021)}}).</li>
+ <li>As interfaces {{DOMxRef("AbortController")}} e {{DOMxRef("AbortSignal")}} (conhecidos como o Abort API) foram adicionados, permitindo requisições DOM (tal como<a href="/pt-BR/docs/Web/API/WindowOrWorkerGlobalScope/fetch"> fetch requests</a>) ser abortado se desejar. ({{bug(1378342)}}).</li>
+ <li>[2] O <a href="/pt-BR/docs/Web/API/Storage_API">Storage API</a> está implementado e habilitado por padrão(default). ({{bug(1399038)}}).</li>
+</ul>
+
+<h4 id="DOM">DOM</h4>
+
+<ul>
+ <li>A propriedade {{DOMxRef("Selection.type")}} do <a href="/pt-BR/docs/Web/API/Selection_API">Selection API</a> está agora implementado ({{bug(1359157)}}).</li>
+ <li>{{DOMxRef("Document.createEvent", "Document.createEvent('FocusEvent')")}} está agora implementado ({{bug(1388069)}}).</li>
+ <li>A propriedade <code>files</code> da interface {{DOMxRef("HTMLInputElement")}} está agora definível ({{bug(1384030)}}).</li>
+ <li>O método <code>HTMLDocument.getSelection()</code> foi movido para a interface {{DOMxRef("Document.getSelection","Document")}}, por isso está disponível para documentos XML ({{bug(718711)}}).</li>
+ <li>O evento {{Event("messageerror")}} está agora implementado e pode ter código executado em resposta a disparar através de manipuladores de eventos implementados em destinos de mensagens ─ Veja {{DOMxRef("MessagePort.onmessageerror")}}, {{DOMxRef("DedicatedWorkerGlobalScope.onmessageerror")}}, {{DOMxRef("Worker.onmessageerror")}}, {{DOMxRef("BroadcastChannel.onmessageerror")}}, e {{DOMxRef("Window.onmessageerror")}} ({{bug(1359017)}}).</li>
+ <li>Quando os valores do {{DOMxRef("Headers")}} são iterados, eles são automaticamente classificados em ordem lexicográfico e valores de nomes de cabeçalho duplicados são combinados ({{bug(1396848)}}).</li>
+</ul>
+
+<h4 id="DOM_events">DOM events</h4>
+
+<p>Sem mudanças.</p>
+
+<h4 id="Media_and_WebRTC">Media and WebRTC</h4>
+
+<ul>
+ <li>Suporte para mensagens de tamanho arbitrário (até 1GiB, apesar de 256kiB é mais interoperável) está agora suportados em {{DOMxRef("RTCDataChannel")}} através do uso da flag end-of-record (EOR) em messagens SCTP. Veja {{SectionOnPage("/en-US/docs/Web/API/WebRTC_API/Using_data_channels", "Understanding message size limits")}} para mais informações ({{bug(979417)}}).
+ <div class="blockIndicator note">
+ <p>Porque o Firefox ainda não suporta o protocolo SCTP ndata que fornece a       capacidade de intercalar mensagens SCTP de múltiplas fontes, o envio de objetos de dados grandes pode causar atrasos significativos em todos os outros tráfegos SCTP. Veja {{bug(1381145)}} para acompanhar o progresso na implementação e implementação do suporte a ndata no Firefox.</p>
+ </div>
+ </li>
+ <li>O método {{DOMxRef("RTCDataChannel.send()")}} pode agora lançar uma exceção <code>TypeError</code> se o tamanho da mensagem que você está tentando enviar não é compatível com o recebimento {{Glossary("user agent")}} (Isto está implementado como parte do {{bug(979417)}}).</li>
+ <li>O <a href="/pt-BR/docs/Web/API/MediaStream_Recording_API">MediaStream Recording API</a> foi atualizado, assim, os eventos de {{event("error")}} enviados para relatar problemas que ocorrem durante a gravação agora são do tipo {{DOMxRef("MediaRecorderErrorEvent")}}, em vez de serem eventos genéricos.</li>
+ <li>Atualizado a documentação ao redor {{DOMxRef("OfflineAudioContext")}} desde o seu campos construtores pode agora se especificado ao invés de uma lista de parâmetros ({{bug(1388591)}}).</li>
+ <li>O <a href="/pt-BR/docs/Web/API/API_Web_Audio">Web Audio API</a> agora suporta corretamente a saída multicanal ({{bug(1378070)}}).</li>
+</ul>
+
+<h3 id="Security">Security</h3>
+
+<ul>
+ <li>URLs <code>resources://</code> não mais vazar informações ({{bug(863246)}}).</li>
+ <li>Data URIs agora são tratados como origens opacas únicas, em vez de herdar a origem do objeto de configuração responsável pela navegação ({{bug(1324406)}}).</li>
+</ul>
+
+<h3 id="Plugins">Plugins</h3>
+
+<p>Sem mudanças.</p>
+
+<h3 id="Outros">Outros</h3>
+
+<ul>
+ <li>Firefox <a href="/pt-BR/docs/Mozilla/Firefox/Headless_mode">headless mode</a> agora incluídos uma flag <code>-screenshot</code> que permite você pegar screenshots de website diretamente da linha de comando ({{bug(1378010)}}).</li>
+</ul>
+
+<h2 id="Removals_from_the_web_platform">Removals from the web platform</h2>
+
+<h3 id="HTML_2">HTML</h3>
+
+<ul>
+ <li><code>&lt;link rel=”preload”&gt;</code> (see <a href="/pt-BR/docs/Web/HTML/Preloading_content">Preloading content with rel="preload"</a>) foi desabilitado no Firefox 57 por causa de vários problemas de compatibilidade da web (por exemplo {{bug(1405761)}}). Espera-se que uma versão melhorada que funcione para recursos não armazenáveis ​​em cache chegue ao Firefox 58.</li>
+</ul>
+
+<h3 id="APIs">APIs</h3>
+
+<ul>
+ <li>Propriedade da Mozilla <a href="/pt-BR/docs/Archive/Social_API">Social API</a> foi completamente removido ({{bug(1388902)}}).</li>
+</ul>
+
+<h3 id="SVG_2">SVG</h3>
+
+<p>Sem mudanças.</p>
+
+<h2 id="Alterações_para_add-on_e_desenvolvedores_Mozilla">Alterações para add-on e desenvolvedores Mozilla</h2>
+
+<div class="blockIndicator note">
+<p>Começando no Firefox 57, todo suporte para XPCOM-based add-ons foi removido. Todas as extensões devem ser convertidas no novo <a href="/pt-BR/Add-ons/WebExtensions">browser extensions</a> (também conhecido como WebExtensions) ou eles não vão funcionar.</p>
+</div>
+
+<h3 id="WebExtensions">WebExtensions</h3>
+
+<p>As seguintes APIs foram adicionadas ou estendidas:</p>
+
+<p> </p>
+
+<ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks">bookmarks</a></code>
+
+ <ul>
+ <li>support for separators through <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks/BookmarkTreeNodeType">bookmarks.BookmarkTreeNodeType</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/browser_action">browser_action</a></code>
+ <ul>
+ <li><code>theme_icons</code> property for light/dark theme icons</li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction">browserAction</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserAction/openPopup">browserAction.openPopup()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings">browserSettings</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/allowPopupsForUserEvents">allowPopupsForUserEvents</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/homepageOverride">homepageOverride</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/imageAnimationBehavior">imageAnimationBehavior</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browserSettings/newTabPageOverride">newTabPageOverride</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browsingData">browsingData</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/browsingData/removeLocalStorage">browsingData.removeLocalStorage()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/clipboard">clipboard</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/clipboard/setImageData">setImageData()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities">contextualIdentities</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onCreated">onCreated</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onRemoved">onRemoved</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities/onUpdated">onUpdated</a></code></li>
+ <li><code>colorCode</code> and <code>iconUrl</code> in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/contextualIdentities/ContextualIdentity">contextualIdentitities.ContextualIdentity</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels">devtools.panels</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/devtools.panels/ElementsPanel/createSidebarPane">devtools.panels.ElementsPanel.createSidebarPane()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/downloads">downloads</a></code>
+ <ul>
+ <li><code>incognito</code> option in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/downloads/download">downloads.download()</a></code></li>
+ <li><code>estimatedEndTime</code> property in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/downloads/DownloadItem">downloads.DownloadItem</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/Add-ons/WebExtensions/API/find">find</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/find/find">find()</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/find/highlightResults">highlightResults()</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/find/removeHighlighting">removeHighlighting()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/pageAction/openPopup">pageAction.openPopup()</a></code></li>
+ <li><code><a href="/en-US/Add-ons/WebExtensions/API/privacy/websites">privacy</a></code>
+ <ul>
+ <li><code><a href="/en-US/Add-ons/WebExtensions/API/privacy/websites">websites.trackingProtectionMode</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/proxy">proxy</a></code>
+ <ul>
+ <li><code>FindProxyForURL()</code> can now return an object</li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime">runtime</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/openOptionsPage">runtime.openOptionsPage()</a></code> support on Android</li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions">sessions</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions/setTabValue">setTabValue()</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions/getTabValue">getTabValue()</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions/removeTabValue">removeTabValue()</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions/setWindowValue">setWindowValue()</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions/getWindowValue">getWindowValue()</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sessions/removeWindowValue">removeWindowValue()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction">sidebarAction</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/sidebarAction/open">sidebarAction.open()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage">storage</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage/managed">storage.managed</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs">tabs</a></code>
+ <ul>
+ <li><code>loadReplace</code> option in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/update">tabs.update()</a></code></li>
+ <li><code>discarded</code> property in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/Tab">tabs.Tab</a></code>, <code><a href="/en-US/docs/">tabs.onUpdated</a></code>, and <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query">tabs.query()</a></code></li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/create">tabs.create()</a></code> can open "view-source:" URLs</li>
+ <li><code>openerTabId</code> property in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/Tab">tabs.Tab</a></code>, <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/create">tabs.create()</a></code>, <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query">tabs.query()</a></code>, and <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs/update">tabs.update()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/manifest.json/theme">theme</a></code>
+ <ul>
+ <li><code>colors.toolbar</code></li>
+ <li><code>colors.toolbar_field</code></li>
+ <li><code>colors.toolbar_field_text</code></li>
+ <li><code>colors.toolbar_text</code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/theme">theme</a></code>
+ <ul>
+ <li><code>windowId</code> option to <code><a href="/en-US/Add-ons/WebExtensions/API/theme/update">theme.update()</a></code></li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a></code>
+ <ul>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest/filterResponseData">filterResponseData()</a></code></li>
+ <li><code>proxyInfo</code> property in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest">webRequest</a></code> events</li>
+ </ul>
+ </li>
+ <li><code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/windows">windows</a></code>
+ <ul>
+ <li><code>allowScriptsToClose</code> option in <code><a href="/en-US/docs/Mozilla/Add-ons/WebExtensions/API/windows/create">windows.create()</a></code></li>
+ </ul>
+ </li>
+</ul>
+
+<h2 id="Veja_também">Veja também</h2>
+
+<ul>
+ <li><a href="https://www.fxsitecompat.com/en-US/versions/57">Site Compatibility for Firefox 57</a></li>
+</ul>
+
+<h2 id="Versões_anteriores">Versões anteriores</h2>
+
+<p>{{Firefox_for_developers(56)}}</p>
diff --git a/files/pt-br/mozilla/firefox/releases/65/index.html b/files/pt-br/mozilla/firefox/releases/65/index.html
new file mode 100644
index 0000000000..4583bcb8f5
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/releases/65/index.html
@@ -0,0 +1,110 @@
+---
+title: Firefox 65 for developers
+slug: Mozilla/Firefox/Releases/65
+translation_of: Mozilla/Firefox/Releases/65
+---
+<div>{{FirefoxSidebar}}{{Draft}}</div>
+
+<p class="summary">Este artigo fornece informações sobre as alterações no Firefox 65 que afetarão os desenvolvedores. Firefox 65 é a atual versão <a href="https://www.mozilla.org/en-US/firefox/channel/desktop/#beta" rel="noopener">Nightly do Firefox</a>, e será lançada em <a href="https://wiki.mozilla.org/RapidRelease/Calendar#Future_branch_dates" rel="noopener">29 de Janeiro, 2019</a>.</p>
+
+<h2 id="Mudanças_para_desenvolvedores_da_web">Mudanças para desenvolvedores da web</h2>
+
+<h3 id="Ferramentas_de_desenvolvimento">Ferramentas de desenvolvimento</h3>
+
+<h4 id="Remoções">Remoções</h4>
+
+<h3 id="HTML">HTML</h3>
+
+<p><em>No changes.</em></p>
+
+<h4 id="Removals">Removals</h4>
+
+<h3 id="CSS">CSS</h3>
+
+<ul>
+ <li>The {{cssxref("image-rendering")}} property's <code>crisp-edges</code> value has now been unprefixed ({{bug(1496617)}}).</li>
+ <li>A {{cssxref("scrollbar-color")}} value of <code>auto</code> now resolves to <code>auto</code>, rather than two colors ({{bug(1501418)}}).</li>
+</ul>
+
+<h4 id="Removals_2">Removals</h4>
+
+<p>The <code>layout.css.shape-outside.enabled</code> pref has been removed; {{cssxref("shape-outside")}}, {{cssxref("shape-margin")}}, and {{cssxref("shape-image-threshold")}} can no longer be disabled ({{bug(1504387)}}).</p>
+
+<h3 id="SVG">SVG</h3>
+
+<p><em>No changes.</em></p>
+
+<h4 id="Removals_3">Removals</h4>
+
+<h3 id="JavaScript">JavaScript</h3>
+
+<h4 id="Removals_4">Removals</h4>
+
+<h3 id="APIs">APIs</h3>
+
+<p><em>No changes.</em></p>
+
+<h4 id="New_APIs">New APIs</h4>
+
+<h4 id="DOM">DOM</h4>
+
+<p>{{domxref("Performance.toJSON()")}} has been exposed to <a href="/en-US/docs/Web/API/Web_Workers_API">Web Workers</a> ({{bug(1504958)}}).</p>
+
+<h4 id="DOM_events">DOM events</h4>
+
+<h4 id="Service_workers">Service workers</h4>
+
+<p>The {{domxref("Response.redirect()")}} method now correctly throws a <code>TypeError</code> if a non-valid URL is specified as the first parameter ({{bug(1503276)}}).</p>
+
+<h4 id="Media_Web_Audio_and_WebRTC">Media, Web Audio, and WebRTC</h4>
+
+<ul>
+ <li>Support for <a href="/en-US/docs/Glossary/webp">WebP</a> files has been added (<a class="external external-icon" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1294490" rel="noopener" title="FIXED: Implement WebP image support">bug 1294490</a>).</li>
+</ul>
+
+<h4 id="Canvas_and_WebGL">Canvas and WebGL</h4>
+
+<h4 id="Removals_5">Removals</h4>
+
+<ul>
+ <li><a href="/en-US/docs/Web/Guide/Events/Mutation_events">Mutation events</a> have been disabled on shadow trees ({{bug(1489858)}}).</li>
+ <li>The non-standard {{domxref("MediaStream")}} property <code>currentTime</code> has been removed ({{bug(1502927)}}).</li>
+</ul>
+
+<h3 id="Security">Security</h3>
+
+<p><em>No changes.</em></p>
+
+<h4 id="Removals_6">Removals</h4>
+
+<h3 id="Plugins">Plugins</h3>
+
+<p><em>No changes.</em></p>
+
+<h4 id="Removals_7">Removals</h4>
+
+<h3 id="Other">Other</h3>
+
+<p><em>No changes.</em></p>
+
+<h4 id="Removals_8">Removals</h4>
+
+<h2 id="Changes_for_add-on_developers">Changes for add-on developers</h2>
+
+<h3 id="API_changes">API changes</h3>
+
+<h4 id="Removals_9">Removals</h4>
+
+<h3 id="Manifest_changes">Manifest changes</h3>
+
+<h4 id="Removals_10">Removals</h4>
+
+<h2 id="See_also">See also</h2>
+
+<ul>
+ <li><a href="https://www.fxsitecompat.com/en-CA/versions/65/">Site compatibility for Firefox 65</a></li>
+</ul>
+
+<h2 id="Older_versions">Older versions</h2>
+
+<p>{{Firefox_for_developers(65)}}</p>
diff --git a/files/pt-br/mozilla/firefox/releases/index.html b/files/pt-br/mozilla/firefox/releases/index.html
new file mode 100644
index 0000000000..c6a7dd1bf2
--- /dev/null
+++ b/files/pt-br/mozilla/firefox/releases/index.html
@@ -0,0 +1,8 @@
+---
+title: Notas de lançamento do Firefox para o desenvolvedor
+slug: Mozilla/Firefox/Releases
+translation_of: Mozilla/Firefox/Releases
+---
+<div>{{FirefoxSidebar}}</div><p>Esta página fornece links para artigos  "Firefox X para desenvolvedores"  para cada versão do Firefox. Estas notas permitem ver que recursos foram adicionados e os erros eliminados em cada versão do Firefox.</p>
+
+<div class="multiColumnList">{{ListSubpages("",1,1,1)}}</div>