diff options
Diffstat (limited to 'files/pt-pt/mozilla/firefox/releases/3/updating_extensions/index.html')
-rw-r--r-- | files/pt-pt/mozilla/firefox/releases/3/updating_extensions/index.html | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/files/pt-pt/mozilla/firefox/releases/3/updating_extensions/index.html b/files/pt-pt/mozilla/firefox/releases/3/updating_extensions/index.html new file mode 100644 index 0000000000..d213047978 --- /dev/null +++ b/files/pt-pt/mozilla/firefox/releases/3/updating_extensions/index.html @@ -0,0 +1,210 @@ +--- +title: Atualização das extensões para o Firefox 3 +slug: Mozilla/Firefox/Releases/3/Updating_extensions +tags: + - Firefox 3 +translation_of: Mozilla/Firefox/Releases/3/Updating_extensions +original_slug: Atualizando_extensões_para_o_Firefox_3 +--- +<div><section class="Quick_links" id="Quick_Links"> + <ol> + <li class="toggle"> + <details> + <summary>Firefox developer release notes</summary> + <ol> + <li><a href="/pt-PT/docs/Mozilla/Firefox/Releases">Firefox developer release notes</a></li> + </ol> + </details> + </li> + <li class="toggle"> + <details> + <summary>Add-ons</summary> + <ol> + <li><a href="/pt-PT/Add-ons/WebExtensions">Browser extensions</a></li> + <li><a href="/pt-PT/Add-ons/Themes">Themes</a></li> + </ol> + </details> + </li> + <li class="toggle"> + <details> + <summary>Firefox internals</summary> + <ol> + <li><a href="/pt-PT/docs/Mozilla/">Mozilla project</a></li> + <li><a href="/pt-PT/docs/Mozilla/Gecko">Gecko</a></li> + <li><a href="/pt-PT/docs/Mozilla/Firefox/Headless_mode">Headless mode</a></li> + <li><a href="/pt-PT/docs/Mozilla/JavaScript_code_modules">JavaScript code modules</a></li> + <li><a href="/pt-PT/docs/Mozilla/js-ctypes">JS-ctypes</a></li> + <li><a href="/pt-PT/docs/Mozilla/MathML_Project">MathML project</a></li> + <li><a href="/pt-PT/docs/Mozilla/MFBT">MFBT</a></li> + <li><a href="/pt-PT/docs/Mozilla/Projects">Mozilla projects</a></li> + <li><a href="/pt-PT/docs/Mozilla/Preferences">Preference system</a></li> + <li><a href="/pt-PT/docs/Mozilla/WebIDL_bindings">WebIDL bindings</a></li> + <li><a href="/pt-PT/docs/Mozilla/Tech/XPCOM">XPCOM</a></li> + <li><a href="/pt-PT/docs/Mozilla/Tech/XUL">XUL</a></li> + </ol> + </details> + </li> + <li class="toggle"> + <details> + <summary>Building and contributing</summary> + <ol> + <li><a href="/pt-PT/docs/Mozilla/Developer_guide/Build_Instructions">Build instructions</a></li> + <li><a href="/pt-PT/docs/Mozilla/Developer_guide/Build_Instructions/Configuring_Build_Options">Configuring build options</a></li> + <li><a href="/pt-PT/docs/Mozilla/Developer_guide/Build_Instructions/How_Mozilla_s_build_system_works">How the build system works</a></li> + <li><a href="/pt-PT/docs/Mozilla/Developer_guide/Source_Code/Mercurial">Mozilla source code</a></li> + <li><a href="/pt-PT/docs/Mozilla/Localization">Localization</a></li> + <li><a href="/pt-PT/docs/Mozilla/Mercurial">Mercurial</a></li> + <li><a href="/pt-PT/docs/Mozilla/QA">Quality assurance</a></li> + <li><a href="/pt-PT/docs/Mozilla/Using_Mozilla_code_in_other_projects">Using Mozilla code in other projects</a></li> + </ol> + </details> + </li> + </ol> +</section></div> + +<p> Este artigo proporciona informações úteis para desenvolvedores que desejam atualizar suas extensões para que funcionem corretamente no Firefox 3.</p> + +<p>Antes de continuar, há uma sugestão útil que podemos oferecer: se a única mudança que sua extensão requere é uma atualização no campo <code>maxVersion</code> no seu manifesto de instalação, e você hospedou sua extensão em <a class="link-https" href="https://addons.mozilla.org">addons.mozilla.org</a>, você atualmente não precisa disponibilizar uma nova versão da sua extensão! Simplesmente use o Painel de Controle de Desenvolvedores em AMO para ajustar o <code>maxVersion</code>. Você pode evitar de ter sua extensão re-revisada por este caminho.</p> + +<h3 id="1.C2.B0_Passo_Atualize_o_manifesto_de_instala.C3.A7.C3.A3o" name="1.C2.B0_Passo:_Atualize_o_manifesto_de_instala.C3.A7.C3.A3o">Passo 1: Atualizar o manifesto de instalação</h3> + +<p>O primeiro passo -- e, para muitas das extensões, o único que será necessário -- é atualizar o arquivo <a href="/pt/install.rdf" title="pt/install.rdf">manifesto de instalação</a>, <code>install.rdf</code>, para indicar compatibilidade com o Firefox 3.</p> + +<p>Simplesmente ache a linha que indica a máxima versão compatível do Firefox (que, para o Firefox 2, pode indicar como aqui):</p> + +<pre class="eval"> <span class="nowiki"><em:maxVersion>2.0.0.*</em:maxVersion></span> +</pre> + +<p>Mude isto para indicar compatibilidade com o Firefox 3:</p> + +<pre class="eval"> <span class="nowiki"><em:maxVersion>3.0.*</em:maxVersion></span> +</pre> + +<p>Então reinstale sua extensão.</p> + +<p>Note que o Firefox 3 acaba com o ".0" extra no número da versão, então, ao invés de usar "3.0.0.*", você precisa usar somente "3.0.*".</p> + +<div class="note"><strong>Nota:</strong> Note que neste ponto mais mudanças no Firefox 3 são esperadas. Estas mudanças podem quebrar algumas extensões, então você não precisa lançar sua extensão com <code>3.0.*</code> <code>maxVersion</code> para os usuários antes que o Firefox 3 candidato a liberação seja lançado. Durante o período do Firefox 3 Beta, você pode usar <code>3.0b5</code> como sua <code>maxVersion</code>.</div> + +<p>Tem havido (e continuará a haver) um número de mudanças na API que poderão quebrar algumas extensões. Nós estamos trabalhando na compilação de uma lista completa destas mudanças.</p> + +<div class="note"><strong>Nota:</strong> Se a sua extensão ainda usa um script <code><a href="/en/Install.js">Install.js</a></code> ao invés de um <a href="/pt/install.rdf" title="pt/install.rdf">manifesto de instalação</a>, você precisa fazer a transição para um manifesto de instalação agora. O Firefox 3 não mais suporta os scripts <code>install.js</code> em arquivos XPI.</div> + +<h4 id="Adicionando_localiza.C3.A7.C3.B5es_para_o_manifesto_de_instala.C3.A7.C3.A3o" name="Adicionando_localiza.C3.A7.C3.B5es_para_o_manifesto_de_instala.C3.A7.C3.A3o">Adicionando localizações para o manifesto de instalação</h4> + +<p>O Firefox 3 suporta novas propriedades no manifesto de instalação para especificar descrições localizadas. Os antigos métodos ainda funcionam, entretanto o novo Firefox permite pegar as localizações sempre que os complementos estiverem desabilitados e com instalação pendente. Veja <a href="/pt/Localizar_descrições_de_extensões" title="pt/Localizar_descrições_de_extensões">Localizar descrições de extensões</a> para mais detalhes.</p> + +<h3 id="2.C2.B0_Passo_Assegure-se_de_estar_oferecendo_atualiza.C3.A7.C3.B5es_seguras" name="2.C2.B0_Passo:_Assegure-se_de_estar_oferecendo_atualiza.C3.A7.C3.B5es_seguras">Passo 2: Certificar-se de que está a proporcionar atualizações seguras</h3> + +<p>Se você está hospedando complementos por si mesmo e não em um provedor de hospedagem de complementos seguro como <a class="link-https" href="https://addons.mozilla.org">addons.mozilla.org</a> então você precisa oferecer um método seguro de atualizar seu complemento. Isto poderá envolver a hospedagem das suas atualizações em um website SSL, ou usando chaves criptográficas para assinar a informação da atualização. Leia <a href="/en/Extension_Versioning,_Update_and_Compatibility#Securing Updates">Securing Updates</a> para mais informações.</p> + +<h3 id="3.C2.B0_Passo_Lidar_com_APIs_mudadas" name="3.C2.B0_Passo:_Lidar_com_APIs_mudadas">Passo 3: Lidar com APIs alteradas</h3> + +<p>Várias APIs foram alterados de maneira significativa. O mais significativo destes, que provavelmente afetará um grande número de extensões, são:</p> + +<h4 id="DOM" name="DOM">DOM</h4> + +<p>Nodes from external documents should be cloned using <a class="new" href="/pt-PT/docs/Web/API/Document/importNode" rel="nofollow" title="The documentation about this has not yet been written; please consider contributing!"><code>document.importNode()</code></a> (or adopted using <a class="new" href="/pt-PT/docs/Web/API/Document/adoptNode" rel="nofollow" title="The documentation about this has not yet been written; please consider contributing!"><code>document.adoptNode()</code></a>) before they + can be inserted into the current document. For more on the <a class="new" href="/pt-PT/docs/Web/API/Node/ownerDocument" rel="nofollow" title="The documentation about this has not yet been written; please consider contributing!"><code>Node.ownerDocument</code></a> issues, see the + <a class="external" href="http://www.w3.org/DOM/faq.html#ownerdoc" rel="noopener">W3C DOM FAQ</a>.</p> + + <p>Firefox doesn't currently enforce this rule (it did for a while during the development of Firefox 3, but too many + sites break when this rule is enforced). We encourage Web developers to fix their code to follow this rule for + improved future compatibility.</p> + +<h4 id="Favoritos__Hist.C3.B3rico" name="Favoritos_&_Hist.C3.B3rico">Marcadores & Histórico</h4> + +<p>Se sua extensão acessa dados dos favoritos ou do histórico de alguma maneira, ela precisará de um trabalho substancial para tornar-se compatível com o Firefox 3. As antigas APIs de acesso a estas informações foram substituidas pela nova arquitetura <a href="/en/Places">en:Places</a>. Veja <a href="/en/Places/Migration_Guide">Migration Guide for Places</a> para detalhes na atualização da sua extensão existente para usar a API Places.</p> + +<h4 id="Gerenciador_de_Downloads" name="Gerenciador_de_Downloads">Gestor de Descargas</h4> + +<p>A API do Gestor de Descargas foi alterado ligeiramente devido à transição de um RDF para armazenar dados usando a API <a href="/en/Storage">en:Storage</a>. Esta pode ser uma transição muito fácil de fazer. Além disso, a API de monitoramento do progesso de downloads mudou para suportar múltiplos <em>receptores</em> no gestor de descargas. Consulte <a href="/en/nsIDownloadManager">en:nsIDownloadManager</a>, <a href="/en/nsIDownloadProgressListener">en:nsIDownloadProgressListener</a>, e <a href="/en/Monitoring_downloads">en:Monitoring downloads</a> para mais informação.</p> + +<h4 id="Gerenciador_de_Senhas" name="Gerenciador_de_Senhas">Gestor de Palavras-passe</h4> + +<p>Se sua extensão acessa informações do login de usuário usando o Gerenciador de Senhas, será necessário atualizá-la para usar a nova API de Gerenciamento de Login.</p> + +<ul> + <li>O artigo <a href="/en/Using_nsILoginManager">en:Using nsILoginManager</a> inclui exemplos, incluindo uma demonstração de como escrever sua extensão para que trabalhe tanto com o Gerenciador de Senhas quanto com o Gerenciador de Login, então ela irá funcionar tanto no Firefox quanto em versões anteriores.</li> + <li><code><a href="/en/nsILoginInfo">en:nsILoginInfo</a></code></li> + <li><code><a href="/en/nsILoginManager">en:nsILoginManager</a></code></li> +</ul> + +<p>Você pode também sobrepor o armazenamento do gerenciador de senhas construído se você desejar fornecer a implementação de seu próprio armazenamento de senhas nas suas extensões. Veja Criando um módulo de armazenamento de Gerenciador de Login para mais detalhes.</p> + +<h4 id="Popups_.28Menus.2C_Menus_de_Contexto.2C_Dicas_e_Pain.C3.A9is.29" name="Popups_.28Menus.2C_Menus_de_Contexto.2C_Dicas_e_Pain.C3.A9is.29">janelas (Menus, Menus de Contexto, Dicas de Ferramenta e Painéis)</h4> + +<p>O sistema de Popup XUL foi bastante modificado no Firefox 3. O sistema de Popup inclui menus principais, menus de contexto e painéis popup. Um guia sobre como <a href="/en/XUL/PopupGuide">usar Popups</a> foi criado, detalhando como o sistema trabalha. Uma coisa a se notar é que <code>popup.<span id="m-showPopup"><code><a href="https://developer.mozilla.org/pt-PT/docs/Mozilla/Tech/XUL/Method/showPopup">showPopup</a></code></span></code> foi depreciado em favor do novo <code>popup.<span id="m-openPopup"><code><a href="https://developer.mozilla.org/pt-PT/docs/Mozilla/Tech/XUL/Method/openPopup">openPopup</a></code></span></code> e <code>popup.<span id="m-openPopupAtScreen"><code><a href="https://developer.mozilla.org/pt-PT/docs/Mozilla/Tech/XUL/Method/openPopupAtScreen">openPopupAtScreen</a></code></span></code>.</p> + +<h4 id="Autocompletar" name="Autocompletar">Auto Completar</h4> + +<p>O método <code><a href="/en/nsIAutoCompleteController#handleEnter()">handleEnter()</a></code> da interface <a href="/en/nsIAutoCompleteController">en:nsIAutoCompleteController</a> foi alterado para aceitar um argumento que indica quando o texto foi selecionado do popup autocompletar ou pelo usuário pressionando enter depois de digitar o texto.</p> + +<h4 id="DOMParser" name="DOMParser">DOMParser</h4> + +<ul> + <li>Quando um <code>DOMParser</code> é instanciado, este herda o código principal dito e os <code>documentURI</code> e <code>baseURI</code> da janela de onde o construtor vier.</li> + <li>Se o chamador tiver privilégios UniversalXPConnect, ele pode passar parâmetros para <code> new DOMParser()</code>. Se menos de três parâmetros forem passados, os parâmetros restantes serão padronizados para <code>null</code>. + <ul> + <li>O primeiro parâmetro é o principal para uso; ele sobrepõe o padrão principal normalmente herdado.</li> + <li>O segundo parâmetro é o <code>documentURI</code> para uso.</li> + <li>O terceiro parâmetro é o <code>baseURI</code> para uso.</li> + </ul> + </li> + <li>Se inicializa um <code>DOMParser</code> usando um contrato, somente através de uma chamada <code>createInstance()</code>, e não fizer a chamada do método <code>init()</code> do <code>DOMParser</code>, tentando iniciar a operação de análise será criada automaticamente a inicialização de <code>DOMParser</code> com um nulo principal e apontadores <code>null</code> para <code>DocumentURI</code> e <code>baseURI</code>.</li> +</ul> + +<h4 id="Interfaces_removidas" name="Interfaces_removidas">Interfaces removidas</h4> + +<p>As seguintes interfaces foram removidas do Gecko 1.9, que direcionam o Firefox 3. Se sua extensão faz uso de alguma destas, você precisará atualizar seu código:</p> + +<ul> + <li><code>nsIDOMPaintListener</code></li> + <li><code>nsIDOMScrollListener</code></li> + <li><code>nsIDOMMutationListener</code></li> + <li><code>nsIDOMPageTransitionListener</code></li> + <li><code>nsICloseAllWindows</code> (see <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=386200" title='FIXED: SeaMonkey only: no "view cert button" in untrusted cert error dialog'>bug 386200</a>)</li> +</ul> + +<h3 id="4.C2.B0_Passo_Cheque_por_mudan.C3.A7as_relevantes_no_chrome" name="4.C2.B0_Passo:_Cheque_por_mudan.C3.A7as_relevantes_no_chrome">Passo 4: Procurar por alterações relevantes no chrome</h3> + +<p>Houveram menores mudanças no chrome que podem requisitar mudanças no seu código. Uma nova <code>vbox</code> foi adicionada, chamada "browser-bottombox", que inclui a barra de procura e a barra de estado à janela do navegador. Embora ela não afete a aparência da exibição, ela pode afetar sua extensão se ela sobrepuser o chrome em relação a estes elementos.</p> + +<p>Por exemplo, se você anteriormente sobrepôs algum chrome antes da barra de estado, como isto:</p> + +<pre><window id="main-window"> + <something insertbefore="status-bar" /> +</window> +</pre> + +<p>Você deve agora sobrepor desta maneira:</p> + +<pre><vbox id="browser-bottombox"> + <something insertbefore="status-bar" /> +</vbox> +</pre> + +<h3 id="Outras_mudan.C3.A7as" name="Outras_mudan.C3.A7as">Outras alterações</h3> + +<p><em>Mudanças simples adicionais que tiver de fazer enquanto atualiza sua extensão para trabalhar com o Firefox 3, aqui.</em></p> + +<ul> + <li><code><a class="external" rel="freelink">chrome://browser/base/utilityOverlay.js</a></code> não é mais suportada por razões de segurança. Se você previamente utilizava-a, você pode mudar para <code><a class="external" rel="freelink">chrome://browser/content/utilityOverlay.js</a></code>.</li> + <li><a href="/en/nsIAboutModule">en:nsIAboutModule</a> implementações são agora requeridas para suportar o método <code>getURIFlags</code>. Veja <a href="https://dxr.mozilla.org/mozilla-central/source/netwerk/protocol/about/public/nsIAboutModule.idl" rel="custom">nsIAboutModule.idl</a> para documentação. Isto afeta extensões que provém novas URIs <code>about:</code>. (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=337746" title='FIXED: [FIX]Move "safe about" hardcoding out of security manager'>bug 337746</a>)</li> + <li>O elemento <code><tabbrowser></code> não é mais parte do "kit de ferramentas" (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=339964" title="FIXED: move tabbrowser.xml out of mozilla/toolkit and into mozilla/browser">bug 339964</a>). Isto significa que este elemento não está mais disponível para aplicações XUL e extensões. Ele continua a ser usado na janela principal do Firefox (browser.xul).</li> + <li>Mudanças em <a href="/en/nsISupports_proxies">en:nsISupports proxies</a> e possivelmente relacionado ao encadeamento de interfaces que precisam ser documentadas.</li> + <li>Se você usa instruções de processamento XML, como <code><?xml-stylesheet ?></code> em seus arquivos XUL, fique atento às mudanças feitas em <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=319654" title="FIXED: Processing instructions in XUL are not added to the content model">bug 319654</a>: + <ol> + <li>XML PIs foram agora adicionadas a um documento XML DOM. Isto significa que <a href="/pt-PT/docs/Web/API/Document/firstChild" title="The documentation about this has not yet been written; please consider contributing!"><code>Document.firstChild</code></a> não é mais garantida como o elemento raiz. Se você precisa pegar o documento raiz no seu script, use <a href="/pt-PT/docs/Web/API/Document/documentElement" title="The documentation about this has not yet been written; please consider contributing!"><code>Document.documentElement</code></a> ao invés.</li> + <li>as instruções de processamento <code><?xml-stylesheet ?></code> e <code><?xul-overlay ?></code> agora não tem efeito fora do documento prolog.</li> + </ol> + </li> + <li><code>window.addEventListener("load", myFunc, true)</code> não é mais ativado no carregamento de conteúdo web (carregamento de páginas no navegador). Isto foi devido ao <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=296639" title="FIXED: Split windows into an inner and outer object">bug 296639</a> que altera a maneira como as janelas internas e externas se comunicam. O simples conserto é para o uso de <code>gBrowser.addEventListener("load", myFunc, true)</code> como descrito <a href="/en/Code_snippets:Tabbed_browser#Detecting page load">aqui</a> e trabalha no Firefox 2 muito bem.</li> + <li><code>content.window.getSelection()</code> dá um objeto (que pode ser convertido para uma string por <code>toString()</code>) diferentemente do agora depreciado <code>content.document.getSelection()</code> que retorna uma string</li> + <li><code>event.preventBubble()</code> foi depreciado no Firefox 2 e foi removido no Firefox 3. Use <a href="/en/DOM/event.stopPropagation">event.stopPropagation()</a>, que funciona bem no Firefox 2.</li> + <li>Contadores que são inciados usando <code>setTimeout()</code> estão agora bloquados por janelas modais devido à correção para <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=52209" title="FIXED: JS timers can fire while a modal dialog is open">bug 52209</a>. Você pode usar <code>nsITimer</code> no lugar.</li> +</ul> + +<p><span class="comment">Categorias</span></p> + +<p><span class="comment">Interwiki Language Links</span></p> |