1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
---
title: Firefox 5 para desenvolvedores
slug: Mozilla/Firefox/Releases/5
translation_of: Mozilla/Firefox/Releases/5
original_slug: Firefox_5_para_desenvolvedores
---
<div>{{FirefoxSidebar}}</div><p>{{ draft() }}</p>
<p>O Firefox 5, é baseado no Gecko 5.0 e será lançado na metade de 2011. Este artigo proporciona links para informações sobre as mudanças que afetam os desenvolvedores nesta versão. Os <span style="font-style: italic;">n</span><em>ightly builds</em> do futuro Firefox 5 estão <a class="external" href="http://www.mozilla.com/en-US/firefox/channel/">disponíveis atualmente</a> no canal Beta (iesto é, na seção <a href="/En/Developer_Guide/Source_Code/Mercurial#mozilla-beta_(prerelease_development_tree)" title="En/Developer_Guide/Source_Code/Mercurial#mozilla-beta_(prerelease_development_tree)">mozilla-beta</a>).</p>
<div class="note">
<strong>Nota:</strong> Devido à maneira de funcionamento do processo de desenvolvimento, é possível que características atualmente listadas aqui possam ser transferidas para versões futuras do Firefox, por este motivo, por favor, fique atento a esta página.</div>
<h2 id="Mudanças_para_desenvolvedores">Mudanças para desenvolvedores</h2>
<h3 id="HTML">HTML</h3>
<ul>
<li>Todos os elementos HTML agora possuem o atributo {{ domxref("element.accessKey", "accessKey") }}, assim como os métodos {{ domxref("element.blur()", "blur()") }}, {{ domxref("element.click()", "click()") }} e {{ domxref("element.focus()", "focus()") }}. Os quais estão especificados na interface {{ domxref("HTMLElement") }}.</li>
<li>Com o objetivo de cumprir a especificação do HTML5, foi removido o suporte aos <a href="/en/Character_Sets_Supported_by_Gecko" title="en/Character Sets Supported by Gecko">conjuntos de caracteres</a> UTF-7 e UTF-32.</li>
<li>Peculiarmente, {{ HTMLElement("map") }} vazios não são mais ignorados em favor de não vazios quando houver correspondência. Veja as <a href="/en/HTML/Element/map#Gecko_notes" title="en/HTML/Element/map#Gecko notes">notas do Gecko</a> sobre o elemento {{ HTMLElement("map") }} para detalhes.</li>
</ul>
<h4 id="Melhorias_no_Canvas">Melhorias no Canvas</h4>
<ul>
<li>O contexto de desenhos 2D do {{ HTMLElement("canvas") }} agora suporta a especificação de um objeto <code>ImageData</code> como entrada para o método <code>createImageData()</code>; isto <a href="/En/HTML/Canvas/Pixel_manipulation_with_canvas#Creating_an_ImageData_object" title="En/HTML/Canvas/Pixel manipulation with canvas#Creating an ImageData object">cria um novo objeto <code>ImageData</code></a> inicializado com as mesmas dimensões do objeto especificado, mas ainda assim com pixels pré configurados para preto transparente. Isto já foi documentado, mas ainda não foi implementado.</li>
<li>A especificação de valores não finitos durante a adicão de cores, agora, através do método {{ domxref("CanvasGradient") }} <code>addColorStop()</code> agora lança corretamente <code>INDEX_SIZE_ERR</code> ao invés de <code>SYNTAX_ERR</code>.</li>
<li>O método {{ domxref("HTMLCanvasElement") }} <code>toDataURL()</code> agora deixa as letras do tipo MIME especificado, minúsculas corretamente, antes da comparação.</li>
<li><code>getImageData()</code> agora aceita corretamente retângulos que se estendem além do limite do seu canvas; pixels fora do canvas são retornados como preto transparente.</li>
<li><code>drawImage()</code> e <code>createImageData()</code> agora lidam com argumentos negativos de acordo com a especificação, coloando o retângulo ao redor do eixo apropriado. <strong>É necessário um artigo sobre <strong><a class="external" href="http://dev.w3.org/csswg/css3-images/#default-sizing" title="http://dev.w3.org/csswg/css3-images/#default-sizing">redimencionamento CSS</a></strong> e como ele funciona.</strong></li>
<li>A especificação de valores não finitos na chamada de <code>createImageData()</code> agora lança uma exceção <code>NOT_SUPPORTED_ERR</code> apropriada.</li>
<li><code>createImageData()</code> e <code>getImageData()</code> agora retornam corretamente ao menos um pixels válido dos dados da imagem se um retângulo menor do que um pixels for especificado.</li>
<li>A especificação de um raio negativo na chamada de <code>createRadialGradient()</code> agora corretamente lança <code>INDEX_SIZE_ERR</code>.</li>
<li>A especificação de uma imagem <code>null</code> ou <code>undefined</code> na chamada de <code>createPattern()</code> ou <code>drawImage()</code> agora corretamente lança uma exceção <code>TYPE_MISMATCH_ERR</code>.</li>
<li>A especificação de valores inválidos para <code>globalAlpha</code> não lança mais uma exceção <code>SYNTAX_ERR</code>; estes agora são correta e silenciosamente ignorados.</li>
<li>A especificação de valores inválidos na chamada de <code>translate()</code>, <code>transform()</code>, <code>rect()</code>, <code>clearRect()</code>, <code>fillRect()</code>, <code>strokeRect()</code>, <code>lineTo()</code>, <code>moveTo()</code>, <code>quadraticCurveTo()</code> ou <code>arc()</code> não lançam mais uma exceção; estas chamadas são agora correta e silenciosamente ignoradas.</li>
<li>A configuração do valor de <code>shadowOffsetX</code>, <code>shadowOffsetY</code> ou <code>shadowBlur</code> para valores inválidos é agora silenciosamente ignorada.</li>
<li>A configuração do valor de <code>rotate</code> ou <code>scale</code> para valores inválidos é agora silenciosamente ignorada.</li>
</ul>
<h3 id="CSS">CSS</h3>
<dl>
<dt>
<a href="/en/CSS/CSS_animations" title="en/CSS/CSS animations">CSS animations</a></dt>
<dd>
Foi adicionado o suporte para animações CSS, por enquanto com o uso do prefixo <code>-moz</code>-.</dd>
</dl>
<h3 id="DOM">DOM</h3>
<ul>
<li>O objeto {{ domxref("selection") }} do método <a href="/en/DOM/Selection/modify" title="en/DOM/Selection/modify"><code>modify()</code></a> foi mudado para que a granularidade da seleção da "palavra" não mais inclua espaços a direita; isto torna-o mais consistente em diferentes plataformas e combina com o comportamento da implementação do WebKit.</li>
<li>O método {{ domxref("window.setTimeout()") }} agora limita-se a não enviar mais de um tempo limite por segundo em abas inativas. Adicionalmente, ele agora limita-se aos tempos limite aninhados para o menor valor permitido pela especificação do HTML5: 4ms (ao invés de 10ms, antes fixado).</li>
<li>Similarmente, o método {{ domxref("window.setInterval()") }} agora limita-se a não enviar mais do que um intervalo por segundo em abas inativas.<code> </code></li>
<li><a href="/en/XMLHttpRequest" title="en/XMLHttpRequest"><code>XMLHttpRequest</code></a> agora <a href="/En/XMLHttpRequest/Using_XMLHttpRequest#Detecting_any_load_end_condition" title="en/XMLHttpRequest/Using XMLHttpRequest#Detecting any load end condition">suporta o evento <code>loadend</code></a> para ouvintes de progresso. Isto é enviado após o fim de qualquer transferência (isto é, após os eventos de <code>abort</code>, <code>error</code> ou <code>load</code>). Você pode usar isto para lidar com quaisquer tarefas que necessitem ser realizadas independente do sucesso ou da falha da transferência.</li>
<li>O {{ domxref("Blob") }} e, por extensão, o objeto {{ domxref("File") }} do método <code>slice()</code> foi removido e substituido com uma nova sintaxe que o torna mais consistente com os métodos <a href="/en/JavaScript/Reference/Global_Objects/Array/slice" title="en/JavaScript/Reference/Global Objects/Array/slice"><code>Array.slice()</code></a> e <a href="/en/JavaScript/Reference/Global_Objects/String/slice" title="en/JavaScript/Reference/Global Objects/String/slice"><code>String.slice()</code></a> do JavaScript. Este método foi chamado de <a href="/en/DOM/Blob#mozSlice()" title="en/DOM/Blob#mozSlice()"><code>mozSlice()</code></a> por enquanto.</li>
<li>O valor de {{ domxref("window.navigator.language") }} é agora determinado pela observação do valor de <code>Accept-Language</code> do <a href="/en/HTTP/Headers" title="en/HTTP/Headers">cabeçalho HTTP</a>.</li>
</ul>
<h3 id="JavaScript">JavaScript</h3>
<ul>
<li>Expressões regulare não podem mais ser chamadas como se fossem funções; esta mudança foi feita juntamente com a equipe do WebKit para assegurar a compatibilidade (veja {{ WebkitBug(28285) }}. Esta característica existiu por um longo tempo mas nunca foi documentada (ao menos não no MDC).</li>
<li>O método <a href="/en/JavaScript/Reference/Global_Objects/Function/isGenerator" title="en/JavaScript/Reference/Global Objects/Function/isGenerator"><code>Function.prototype.isGenerator()</code></a> é agora suportado; ele permite determinar se uma função é um <a href="/en/JavaScript/Guide/Iterators_and_Generators#Generators.3a_a_better_way_to_build_Iterators" title="en/Core JavaScript 1.5 Guide/Iterators and Generators#Generators.3a a better way to build Iterators">generator</a>.</li>
</ul>
<h3 id="SVG">SVG</h3>
<ul>
<li>O atributo SVG {{ SVGAttr("class") }} pode agora ser animado.</li>
<li>As seguintes interfaces DOM relacionadas com o SVG, representando listas de objetos são agora indexáveis e podem ser acessadas como uma ordenação; adicionalmente, elas possuem uma propriedade <code>length</code> indicando o número de itens nas listas: {{ domxref("SVGLengthList") }}, {{ domxref("SVGNumberList") }}, {{ domxref("SVGPathSegList") }} e {{ domxref("SVGPointList") }}.</li>
</ul>
<h3 id="HTTP">HTTP</h3>
<ul>
<li>O Firefox não envia mais o cabeçalho HTTP "Keep-Alive"; nós não o estávamos formatando corretamente e ele era redundante, uma vez que também enviávamos o cabeçalho {{ httpheader("Connection") }} ou {{ httpheader("Proxy-Connection") }} com o valor "keep-alive" de qualquer modo.</li>
<li>O modelo de transação HTTP foi atualizado para ser mais inteligente no reuso de conexões na área de conexão permanente; ao invés de tratar isto como uma pilha {{ interwiki("wikipedia", "FIFO") }}, o Necko agora tenta sortear uma área com conexões com as maiores {{ interwiki("wikipedia", "congestion window") }} (CWND) primeiro. Isto pode reduzir o tempo de ida e volta (RTT) de transações HTTP evitando a necessidade de aumentar janelas de conexões em muitos casos.</li>
<li>O Firefox agora lida com o cabeçalho de resposta Content-Disposition HTTP mais efetivamente se ambos os parâmetros <code>filename</code> e <code>filename*</code> são fornecidos; ele procura por todos os nomes fornecidos, usando o parâmetro<code> filename*</code> se houver um disponível, mesmo se um parâmetro <code>filename</code> é incluido primeiro. Anteriormente, o primeiro parâmetro de comparação seria usado, desta forma impedindo o uso de um nome mais apropriado. Veja {{ bug(588781) }}.</li>
</ul>
<h3 id="MathML">MathML</h3>
<ul>
<li>Suporte a <a class="external" href="http://www.w3.org/TR/MathML3/chapter3.html#id.3.2.5.7.3" title="http://www.w3.org/TR/MathML3/chapter3.html#id.3.2.5.7.3">operadores embelezados</a></li>
</ul>
<h3 id="Ferramentas_para_desenvolvedores">Ferramentas para desenvolvedores</h3>
<ul>
<li>O <a href="/en/Using_the_Web_Console#The_console_object" title="en/Using the Web Console#The console object">objeto <code>Console</code> do </a><a href="/en/Using_the_Web_Console#The_console_object" title="en/Using the Web Console#The console object">Console Web</a> agora possui um método <code>debug()</code>, o qual é um pseudônimo para seu método <code>log()</code>; isto melhora a compatibilidade com certos sites existentes.</li>
</ul>
<h2 id="Mudanças_para_desenvolvedores_de_complementos_e_da_Mozilla">Mudanças para desenvolvedores de complementos e da Mozilla</h2>
<div class="note">
<strong>Nota:</strong> O Firefox 5 requere que componentes bionários sejam recompilados, assim como todas as versões maiores do Firefox. Veja <a href="/En/Developer_Guide/Interface_Compatibility#Binary_Interfaces" title="En/Developer Guide/Interface Compatibility#Binary Interfaces">Interfaces Binárias</a> para detalhes.</div>
<h3 id="Mudanças_nos_módulos_de_código_do_JavaScript">Mudanças nos módulos de código do JavaScript</h3>
<h4 id="Novos_módulos_de_códigos_JavaScript">Novos módulos de códigos JavaScript</h4>
<ul>
<li>O módulo de código <a href="/en/JavaScript_code_modules/Dict.jsm" title="en/JavaScript code modules/Dict.jsm"><code>Dict.jsm</code></a> foi adicionado; ele fornece uma API para dicionários de pares chave/valor.</li>
</ul>
<h4 id="NetUtil.jsm">NetUtil.jsm</h4>
<ul>
<li>O método <a href="/en/JavaScript_code_modules/NetUtil.jsm#asyncFetch()" title="en/JavaScript code modules/NetUtil.jsm#asyncFetch()"><code>asyncFetch()</code></a> agora suporta a especificação da fonte de entrada como um {{ interface("nsIInputStream") }}.</li>
</ul>
<h3 id="Mudanças_na_interface">Mudanças na interface</h3>
<ul>
<li>A interface {{ interface("nsIHttpChannelInternal") }} possui novos atributos provendo acesso à informações sobre os pontos de extremidades dos endereços e portas dos canais. Esta informação é fornecida primariamente para propósitos de depuração.</li>
<li>Os atributos {{ htmlattrxref("width", "canvas") }} e {{ htmlattrxref("height", "canvas") }} do elemento {{ HTMLElement("canvas") }} são agora refletidos em IDL como <em>unsigned integers</em> ao invés de <em>signed</em> (veja <a href="/en/DOM/HTMLCanvasElement" title="en/DOM/HTMLCanvasElement"><code>HTMLCanvasElement</code></a>).</li>
</ul>
<h3 id="Ferramentas_de_depuração">Ferramentas de depuração</h3>
<ul>
<li>O novo ajudante <a href="/En/Namespace/Mozilla/DebugOnly%3CT%3E" title="En/Namespace/Mozilla/DebugOnly<T>"><code>DebugOnly<T></code></a> torna possível declarar variáveis somente para construções <code>DEBUG</code>.</li>
</ul>
<h3 id="API_JavaScript_(SpiderMonkey)">API JavaScript (SpiderMonkey)</h3>
<ul>
<li><a href="/en/SpiderMonkey/JSAPI_Reference/JS_DoubleToInt32" title="en/SpiderMonkey/JSAPI Reference/JS DoubleToInt32"><code>JS_DoubleToInt32()</code></a> e <a href="/en/SpiderMonkey/JSAPI_Reference/JS_DoubleToInt32" title="en/SpiderMonkey/JSAPI Reference/JS DoubleToInt32"><code>JS_DoubleToUint32()</code></a> foram adicionados, para converter valores <code><a href="/en/SpiderMonkey/JSAPI_Reference/jsdouble" title="en/jsdouble">jsdouble</a></code> em <em>integers</em> C e <em>unsigned integers</em>.</li>
</ul>
<h3 id="Mudanças_no_sistema_de_construção">Mudanças no sistema de construção</h3>
<ul>
<li>
<p>Você pode construir o Firefox sem um arquivo <code>mozconfig</code>; a<a href="/en/Configuring_Build_Options#Choose_an_application" title="en/Configuring Build Options#Choose an application"> configuração</a> <a href="/en/Configuring_Build_Options#Choose_an_application" title="en/Configuring Build Options#Choose an application"><code>--enable-application</code></a> agora tem "browser" por padrão. Após puxar ou baixar o código, você pode simplesmente <code>configure && make</code> (ou <code>make -f client.mk</code>) para construir o Firefox.</p>
</li>
</ul>
<h3 id="Veja_também">Veja também</h3>
<ul>
<li><a href="/pt/Firefox_4_para_desenvolvedores" title="pt/Firefox 4 para desenvolvedores">Firefox 4 para desenvolvedores</a></li>
<li><a href="/pt/Firefox_3.6_para_desenvolvedores" title="pt/Firefox 3.6 para desenvolvedores">Firefox 3.6 para desenvolvedores</a></li>
<li><a class="internal" href="/pt/Firefox_3.5_para_desenvolvedores" title="pt/Firefox 3.5 para desenvolvedores">Firefox 3.5 para desenvolvedores</a></li>
<li><a class="internal" href="/pt/Firefox_3_para_desenvolvedores" title="pt/Firefox 3 para desenvolvedores">Firefox 3 para desenvolvedores</a></li>
<li><a class="internal" href="/pt/Firefox_2_para_desenvolvedores" title="pt/Firefox 2 para desenvolvedores">Firefox 2 para desenvolvedores</a></li>
<li><a class="internal" href="/pt/Firefox_1.5_para_desenvolvedores" title="pt/Firefox 1.5 para desenvolvedores">Firefox 1.5 para desenvolvedores</a></li>
</ul>
<p>{{ languages( { "en": "en/Firefox_5_for developers"} ) }}</p>
|