Firefox 4 para desarrolladores

  • Enlace amigable (slug) de la revisión: Firefox_4_para_desarrolladores
  • Título de la revisión: Firefox 4 para desarrolladores
  • Id de la revisión: 94706
  • Creada:
  • Creador: inma_610
  • ¿Es la revisión actual? No
  • Comentario one or more formatting changes

Contenido de la revisión

{{ draft() }}

Firefox 4, que entró en beta a fines de junio del 2010, mejora el rendimiento, agrega una mayor compatibilidad para HTML5 y otras tecnologías Web en desarrollo, y otras mejoras en la seguridad. Este artículo provee información inicial sobre esta futura versión y qué características estarán disponibles para los desarrolladores Web, desarrolladores de extensiones y desarrolladores sobre la plataforma Gecko.

Muchas de estas funcionalidades pueden ser probadas actualmente en las versiones de Firefox 4 beta o, si tienes espíritu aventurero, en las versiones nocturnas.

Nota: Este artículo está en proceso, así como todos los artículos enlazados desde esta página. Algunos nombres de artículos son marcadores de posición y algunos temas podrán dividirse en muchos artículos. En general, ten cuidado a la hora de enlazar a esos artículos, al menos de momento.

Funcionalidades para desarrolladores web

Gecko usa ahora un parseador o analizador HTML5, que arregla algunos problemas, mejora la interoperabilidad y el rendimiento. También permite incrustar contenido en SVG y MathML directamente en el marcado HTML.

HTML

Conoce el analizador de HTML5
Una mirada a lo que significa para ti el analizador HTML5 y cómo incrustar SVG y MathML dentro de tu contenido.
Formularios en HTML5
Una mirada a las mejoras en los formularios web en HTML5. Entre los cambios se encuentran los tipos de entrada agregados en el elemento <input> , validación de datos y muchos más.
Secciones y esquema de un documento HTML5
Gecko ya admite los nuevos elementos de HTML5 relacionados a secciones en un documento: {{ HTMLElement("article") }}, {{ HTMLElement("section") }}, {{ HTMLElement("nav") }}, {{ HTMLElement("aside") }}, {{ HTMLElement("hgroup") }}, {{ HTMLElement("header") }} y {{ HTMLElement("footer") }}.
Atributo hidden de HTML5
Este atributo, común a todos los elementos, se utiliza para ocultar contenido de una página web que no es relevante actualmente para el usuario.
Otros elementos de HTML5
Gecko ya admite el uso de los siguientes nuevos elementos en HTML5: {{ HTMLElement("mark") }}, {{ HTMLElement("figure") }} y  {{ HTMLElement("figcaption") }}.
WebSockets
Una guía para usar la nueva API de WebSockets para comunicación en tiempo real entre una aplicación web y un servidor.

Diversos cambios en HTML

  • Los elementos {{ HTMLElement("textarea") }} ahora son de tamaño variable por defecto; puedes usar la propiedad CSS {{ cssxref("resize") }} para desabilitarlos.
  • canvas.getContext y canvas.toDataURL no lanzan una excepción cuando se invocan con argumentos no reconocidos.
  • El elemento <canvas> ya admite el método específico de Mozilla mozGetAsFile(), que te permite obtener un archivo basado en memoria que contiene una imagen de los contenidos de canvas. Consulta HTMLCanvasElement si deseas tener más detalles.
  • canvas2dcontext.lineCap y canvas2dcontext.lineJoin ya no lanzan una excepción cuando se les asigna una valor no reconocido.
  • canvas2dcontext.globalCompositeOperation no lanza una excepción cuando se les asigna un valor no reconocido ni tampoco admite el valor no estándar darker.

  • Se ha eliminado la compatibilidad para el elemento obsoleto <spacer>, que estaba ausente en el resto de navegadores.
  • El elemento <isindex> es creado como un elemento simple sin propiedades ni métodos cuando se invoca a document.createElement(),
  • Gecko ya admite invocar a click()en elementos <input>  para abrir el selector de archivos. Mira el ejemplo del artículo Usar archivos desde aplicaciones web.
  • El elemento <input>  admite un nuevo atributo mozactionhint, que te permite especificar la etiqueta para la tecla enter de los teclados virtuales.
  • Los elementos <script> dentro de los elementos <iframe>, <noembed> y <noframe> ahora se ejecutan, lo que en anteriores versiones de Firefox no hacían. Esto cumple con la especificación y coincide con el comportamiento de otros navegadores.

CSS

Transiciones CSS
Está disponible en Firefox 4 una nueva compatibilidad para las transiciones CSS.
Valores calculados en CSS
Se ha agregado la compatibilidad para -moz-calc , lo que te permite especificar valores <length> como expresiones matemáticas.
Agrupación de selectores
Compatibilidad para {{ cssxref(":-moz-any") }} para agrupar selectores y descomponer elementos de combinación en factores.
Compatibilidad background image subrectangle
La función {{ cssxref("-moz-image-rect") }} hace que sea posible utilizar subrectángulos de imágenes como background-image (imágenes de fondo).
Propiedades CSS touch
Se agrega la compatibilidad para propiedades touch. Más adelante se aportarán más detalles y nombres reales de los artículos.
 Uso de elementos arbitrarios como fondos CSS
Puedes utilizar la función CSS {{ cssxref("-moz-element") }} y la función DOM domxref {{ domxref("document.mozSetImageElement()") }} para usar elementos HTML arbitrarios como fondo.
Privacidad y el selector :visited
Se han hecho cambios en la información que se puede obtener sobre el estilo de los enlaces visitados usando selectores CSS, lo puede afectar a algunas aplicaciones web.

Nuevas propiedades CSS

Propiedad Descripción
{{ cssxref("-moz-font-feature-settings") }} Te permite personalizar las funciones avanzadas de las fuentes OpenType.
{{ cssxref("-moz-tab-size") }} Especifica el ancho en caracteres de espacio de un carácter de tabulación (U 0009) al representar el texto.
{{ cssxref("resize") }} Te permite controlar las dimensiones a las que se puede adaptar un elemento.

Nuevas  seudoclases CSS

Seudoclase Descripción
{{ cssxref(":-moz-handler-crashed") }} Se utiliza para aplicar estilo a los elementos cuyos plugins se han caído.
{{ cssxref(":-moz-placeholder") }} Aplicado al texto de marcador de posición en los campos de formulario.
{{ cssxref(":-moz-submit-invalid") }} Aplicado al botón de enviar de los formularios cuando uno o más de los campos del formulario no se valida.
{{ cssxref(":-moz-window-inactive") }} Aplicado a los elementos de las ventanas inactivas.
{{ cssxref(":invalid") }} Aplicado de manera automática a los campos {{ HTMLElement("input") }} cuando su contenido no es válido.
{{ cssxref(":optional") }} Aplicado automáticamente a los campos{{ HTMLElement("input") }} que no especifican el atributo required.
{{ cssxref(":required") }} Aplicado automáticamente a los campos{{ HTMLElement("input") }} que especifican el atributo required.
{{ cssxref(":valid") }} Aplicado de manera automática a los campos {{ HTMLElement("input") }} cuando su contenido se valida con éxito.

Nuevos seudoselectores CSS

Seudoselector Descripción
{{ cssxref(":-moz-focusring") }} Te permite especificar el aspecto de un elemento cuando Gecko cree que debería tener representada una indicación del foco .

Nuevas funciones CSS

Función Descripción
{{ cssxref(":-moz-any") }} Te permite agrupar selectores y descomponer en factores los elementos de combinación.
{{ cssxref("-moz-calc") }} Te permite especificar valores {{ xref_csslength() }} como expresiones matemáticas.
{{ cssxref("-moz-element") }} Te permite utilizar un elemento arbitrario como fondo de {{ cssxref ("background-image") }} y {{ cssxref("background") }}.
{{ cssxref("-moz-image-rect") }} Te permite utilizar un subrectángulo de una imagen como {{ cssxref ("background-image") }} o {{ cssxref("background") }}.

Propiedades CSS renombradas

Nombre anterior Nuevo nombre Notas
-moz-background-size {{ cssxref("background-size") }} El nombre -moz-background-size ya no es compatible.
-moz-border-radius {{ cssxref("border-radius") }} El nombre anterior es admitido por un tiempo limitado para que puedas actualizar tus sitios. Los cambios de representación también se han hecho para que coincida con la última versión de la especificación.
-moz-box-shadow {{ cssxref("box-shadow") }}  

Varios cambios en CSS

  • La propiedad {{ cssxref ("text-shadow") }} ahora limita el radio de desenfoque a 300px por razones de integridad y rendimiento.
  • La propiedad {{ cssxref("overflow") }} ya no se aplica a los elementos agrupados en tablas ( <thead> , <tbody> y <tfoot> ).
  • La propiedad {{ cssxref("-moz-appearance") }} ahora es compatible con el valor -moz-win-borderless-glass, que aplica a un elemento un aspecto sin márgenes Aero Glass.
  • Se ha agregado la función multimedia -moz-device-pixel-ratio, que permite que se usen los píxeles del dispositivo por ratio de píxel CSS para las Consultas a medios .
  • El control de Gecko sobre las unidades CSS ha sido revisado para adaptarse mejor a otros navegadores y para traducir con mayor precisión las longitudes absolutas en cálculos de píxeles de pantalla basados en los ppp del dispositivo.

Gráficos y de video

WebGL
El estándar WebGL en desarrollo es admitida ya por Firefox.
Optimizar el rendimiento de los gráficos
Consejos y trucos para sacarle el máximo partido a los gráficos y al rendimiento del video en Firefox 4.
Compatibilidad para video WebM
El nuevo formato de video abierto WebM es compatible con Gecko 2.0.
Animación SVG con SMIL
La compatibilidad para la animación SMIL de SVG ya está disponible.
Utilizar SVG como imágenes y como fondos CSS
Ahora puedes utilizar SVG con el elemento {{ htmlelement("img") }}, así como un {{ cssxref("background-image") }} CSS.
Compatibilidad con el atributo multimedia buffered
El atributo buffered de los elementos {{ HTMLElement("video") }} y {{ HTMLElement("audio") }} es admitido ya, lo que te permite determinar qué rangos de un archivo multimedia se han almacenado en el búfer. La interfaz DOM {{ domxref("TimeRanges") }} ha sido implementada para admitirlo.
Atributo multimedia preload
Se ha implementado el atributo preload de la especificación HTML 5, en sustitución del atributo autobuffer, que se aplicaba anteriormente y que ya no se admite. Esto afecta a los elementos {{ HTMLElement ("video") }} y {{ HTMLElement ("audio") }}, así como a la interfaz de {{ interface("nsIDOMHTMLMediaElement") }}.
Mejoras SVG en la posición de texto
Ahora puedes especificar listas para los valores de las propiedades x , y , dx y dy en elementos {{ SVGElement ("text") }} y {{ SVGElement ("tspan") }} SVG. Esto te permite controlar de forma individual la posición de cada carácter en una cadena.

DOM

Matrices de tipo JavaScript
Se ha añadido la compatibilidad para las matrices de tipo JavaScript, lo que te permite manipular los búferes que contienen datos sin procesar utilizando tipos de datos nativos. Varias APIs hacen uso de ello, incluyendo la API de archivos , WebGL y WebSockets .
Obtener rectángulos límite para rangos
El objeto {{ domxref ("Range") }} ahora tiene los métodos {{ domxref("range.getClientRects()") }} y {{ domxref("range.getBoundingClientRect()") }}.
Capturar eventos del ratón sobre elementos arbitrarios
Se ha agregado la compatibilidad para las APIs de Internet Explorer setCapture() y releaseCapture(). Mira {{ bug("503943") }}.
Manipular el historial del navegador
El objeto historial del documento existente, disponible a través del objeto {{ domxref ("window.history") }}, ahora es compatible con los nuevos métodos HTML5 pushState() y replaceState().
Animaciones con MozBeforePaint
Un nuevo evento se ha añadido que, en concertación con el método {{ domxref("window.mozRequestAnimationFrame()") }} y la propiedad {{ domxref("window.mozAnimationStartTime") }}, proporciona una manera de crear animaciones que se sincronizan entre sí.
Eventos touch y multi-touch
Se ha añadido la compatibilidad para los eventos touch y multi-touch.

Han cambiado las interfaces DOM de los elementos HTML

Varios elementos HTML han incorporado cambios en sus interfaces DOM para adaptarlas a los requisitos de la especificación de HTML 5, como se muestra a continuación.

Interfaz de Firefox 3.6 Interfaz en Firefox 4 Elemento HTML
HTMLSpanElementHTMLSpanElement HTMLElement {{ HTMLElement("abbr") }}, {{ HTMLElement("acronym") }}, {{ HTMLElement("address") }}, {{ HTMLElement("b") }}, {{ HTMLElement("bdo") }}, {{ HTMLElement("big") }}, {{ HTMLElement("blink") }}, {{ HTMLElement("center") }}, {{ HTMLElement("cite") }}, {{ HTMLElement("code") }}, {{ HTMLElement("dd") }}, {{ HTMLElement("dfn") }}, {{ HTMLElement("dt") }}, {{ HTMLElement("em") }}, {{ HTMLElement("i") }}, {{ HTMLElement("kbd") }}, {{ HTMLElement("listing") }}, {{ HTMLElement("nobr") }}, {{ HTMLElement("plaintext") }}, {{ HTMLElement("s") }}, {{ HTMLElement("samp") }}, {{ HTMLElement("small") }}, {{ HTMLElement("strike") }}, {{ HTMLElement("strong") }}, {{ HTMLElement("sub") }}, {{ HTMLElement("sup") }}, , {{ HTMLElement("tt") }}, {{ HTMLElement("u") }}, {{ HTMLElement("var") }}, {{ HTMLElement("xmp") }}
HTMLDivElement HTMLElement {{ HTMLElement("noembed") }}, {{ HTMLElement("noframes") }}, {{ HTMLElement("noscript") }}
HTMLWBRElement HTMLElement {{ HTMLElement("wbr") }}

Varios cambios DOM

  • El ajuste de un elemento {{ HTMLElement ("textarea") }} ahora se puede controlar a través del DOM, gracias al atributo DOM wrap. {{ bug("41464") }}
  • Los elementos {{ HTMLElement ("script") }} creados por medio de {{ domxref("document.createElement()") }} e insertados en un documento ahora se comportan por defecto de acuerdo a la especificación HTML 5. Las secuencias de comandos con el atributo src se ejecutan en cuanto están disponibles (sin guardar el orden) y las secuencias de comandos sin el atributo src se ejecutan de forma sincrónica. Para insertar dentro de scripts otros scripts que ejecuten el atributo src en el orden de inserción, ajusta en ellos .async=false.
  • Los objetos DOM {{ domxref("file") }} ahora ofrecen una propiedad url.
  • Compatibilidad de FormData para XMLHttpRequest.
  • Se ha implementado la propiedad {{ domxref ("element.isContentEditable") }}.
  • La propiedad {{ domxref ("document.currentScript") }} le permite determinar qué script del elemento {{ HTMLElement ("script") }} se está ejecutando actualmente. Los nuevos eventos {{ domxref ("element.onbeforescriptexecute") }} y {{ domxref ("element.onafterscriptexecute") }} se activan antes y después de que se ejecute un elemento script.
  • Se agregó la propiedad mozSourceNode al objeto DragTransfer.
  • Se agregó el método selection.modify() para el objeto {{ domxref("Selection") }}, lo que te permite modificar fácilmente la selección de texto o la posición actual del cursor en una ventana del navegador.
  • Se ha eliminado la compatibilidad para el objeto window.directories y la función directories para {{ domxref("window.open") }}, que no son compatibles con ningún otro navegador. Utiliza personalbar en su lugar. {{ bug ("474058") }}
  • Se ha añadido la propiedad {{ domxref ("event.mozInputSource") }} a los eventos DOM de interfaz de usuario. Esta propiedad no estándar te permite determinar el tipo de dispositivo que generó un evento.
  • Se ha implementado el evento {{ domxref ("document.onreadystatechange") }}.
  • El método {{ domxref ("document.createElement") }} ya no acepta en modo "quirks" < y > alrededor del nombre de la etiqueta.
  • Se han agregado los métodos {{ domxref("element.setCapture()") }} y {{ domxref("document.releaseCapture()") }}, que permiten a los elementos que continúen el seguimiento de los eventos del ratón, incluso cuando el ratón está fuera de su zona normal de seguimiento después de que haya ocurrido un evento mousedown.
  • Se ha agregado la propiedad {{ domxref ("window.mozPaintCount") }}, que te permite determinar cuántas veces ha sido pintado un documento. Esto puede ser útil cuando se esté comprobando el rendimiento de tu aplicación web.
  • El token de idioma se ha quitado de {{ domxref ("window.navigator.appVersion") }} y {{ domxref ("window.navigator.userAgent ") }}. Usa {{ domxref ("window.navigator.language") }} o el encabezado Accept-Language en su lugar.  {{ Bug ("572656") }}
  • El objeto XMLHttpRequest ahora expone la respuesta como una matriz de tipo JavaScript, así como una cadena, usando la propiedad específica de Gecko mozResponseArrayBuffer.
  • Los eventos del ratón ahora incluyen una propiedad mozPressure que indica la cantidad de presión sobre los dispositivos de entrada sensibles a la presión compatibles.
  • Los métodos {{ domxref("window.URL.createObjectURL()") }} y {{ domxref("window.URL.revokeObjectURL()") }} te permiten crear URLs objeto que hacen referencia a archivos locales.
  • El método {{ domxref("DOMImplementation.createHTMLDocument()") }} te permite crear un nuevo documento HTML.
  • {{ domxref("Node.mozMatchesSelector()") }} ahora lanza una excepción SYNTAX_ERR si la cadena de selector especificada no es válida, en lugar de devolver incorrectamente false .
  • Ahora puedes establecer los valores de las propiedades SVG de un elemento utilizando la sintaxis abreviada lo mismo que con CSS. Por ejemplo, element.style.fill = 'lime' . Consulta {{ domxref ("element.style") }} para tener más detalles.
  • La raíz del documento tiene ahora un atributo privatebrowsingmode que describe el estado del modo de navegación privada, incluyendo una indicación sobre si la navegación privada es temporal o permanente para la sesión.
  • El segundo parámetro del método {{domxref("window.getComputedStyle()")} ahora es opcional, como lo es en todos los navegadores importantes.
  • El objeto DOM StorageEvent coincide ahora con la última versión de la especificación.
  • El retraso mínimo permitido para el método {{ domxref("window.setTimeout()") }} es ahora una preferencia, dom.min_timeout_value .
  • El evento MozAfterPaint ya no se envía de forma predeterminada, debido a un problema de seguridad potencial. Se puede volver a habilitar mediante el establecimiento de una preferencia.

Seguridad

Política de Seguridad sobre Contenidos (Content Security Policy, CSP)
La Política de Seguridad sobre Contenidos (CSP) es una propuesta de Mozilla diseñada para ayudar a los diseñadores y administradores de servidores a especificar cómo interactúa el contenido de sus sitios web. El objetivo es ayudar a detectar y mitigar ataques como secuencias de comandos entre sitios e inyección de datos.
Seguridad Estricta de Transporte HTTP
La Seguridad Estricta de Transporte HTTP es una característica de seguridad que permite a un sitio web decirle a los navegadores que sólo deben comunicarse por medio de HTTPS, en lugar de HTTP.
El encabezado de respuesta X-FRAME-OPTIONS
El encabezado de respuesta HTTP X-FRAME-OPTIONS introducido en Internet Explorer 8 ya es compatible con Firefox. Esto permite que los sitios indiquen si sus páginas se pueden o no utilizar en los marcos y, de ser así, restringirlo o no al mismo origen.
Cambios en la cadena del agente de usuario
Como medio para reducir la cantidad de datos enviados y la entropía en las peticiones HTTP (ver {{ bug ("572650 ") }}), los tokens de idioma y de intensidad criptográficos han sido eliminados de la cadena del agente de usuario.

JavaScript

Para una visión general de los cambios implementados en JavaScript 1.8.5, consulta Novedades en JavaScript 1.8.5 . JavaScript en Firefox 4 tendrá la adhesión adicional al estándar ECMAScript 5.

Herramientas para desarrolladores

Uso de la Consola Web
La herramienta Consola Web es una ayuda de depuración útil para los desarrolladores web y desarrolladores de extensiones por igual.

{{ gecko_callout_heading ("2.0") }}

La Consola de errores está desactivada por defecto a partir de Firefox 4. Puedes volver a habilitarla cambiando la preferencia devtools.errorconsole.enabled a true y reiniciando el navegador.

Cambios para desarrolladores de Mozilla y de complementos/agregados

Para obtener consejos útiles sobre la actualización de las extensiones existentes para Firefox 4, puedes ver Actualizar extensiones para Firefox 4 . Hay varios cambios claves que rompen la compatibilidad con los complementos existentes, así que asegúrate de leer este artículo.

Si eres un desarrollador de temas, es aconsejable que leas Cambios en los temas de Firefox 4 para entender algunos cambios fundamentales que tendrás que tener en cuenta.

Módulos de código JavaScript

Services.jsm
El módulo de código Services.jsm proporciona captadores que facilitan la obtención de referencias a los servicios de uso común, tales como el servicio de preferencias o el mediador de la ventana, entre otros.
JS-ctypes API
La API JS-ctypes permite llamar a funciones de bibliotecas externas compatibles con C sin necesidad de usar XPCOM.
Administrador de complementos/agregados
El nuevo administrador proporciona información acerca de los complementos/agregados instalados, asistencia para su gestión y proporciona formas de instalarlos y quitarlos.
PopupNotifications.jsm
El nuevo módulo de notificaciones emergentes facilita la presentación de notificaciones atractivas, no modales al usuario. Puedes ver cómo se utiliza esta API en Uso de las notificaciones emergentes .
Cargar módulos de código desde chrome: URLs
Ahora puedes cargar los módulos de código JavaScript utilizando chrome: URLs, incluso dentro de los archivos JAR.
DownloadLastDir.jsm
El módulo de código DownloadLastDir.jsm proporciona la variable global gDownloadLastDir, que contiene una cadena que puedes utilizar para conocer la ruta del directorio en la que se produjo la última descarga. Este módulo se gestiona por ti de cuestiones relacionadas con la navegación privada.
Medición del rendimiento con el módulo de código PerfMeasurement.jsm
El módulo de código PerfMeasurement.jsm proporciona una API para medir los datos del rendimiento a nivel de la CPU en código JavaScript.

Distintos cambios en módulos de código

Cambios en DOM

{{ domxref("ChromeWorker") }}
Un nuevo tipo de worker para código privilegiado, lo que te permite utilizar cosas como js-ctypes de workers en las extensiones y en el código de aplicación.
Eventos touch
Se ha añadido la compatibilidad para eventos touch (no estándar), los cuales permiten realizar el seguimiento de varios dedos en movimiento sobre una pantalla táctil al mismo tiempo.

XUL

Cambios en el elemento tabbrowser

Se hicieron varios cambios en el elemento {{ XULElem("tabbrowser") }} que afectan directamente a las extensiones que interactúan con pestañas. Además de ser compatibles con las pestañas de aplicaciones, estos cambios también transforman la barra de pestañas en una barra de herramientas estándar, lo cual permite al usuario arrastrar botones de la barra de herramientas hasta la misma.

  • Los eventos TabClose, TabSelect y TabOpen ya no se propagarán al elemento {{ XULElem("tabbrowser") }} ( gBrowser ). Es recomendable que los detectores de eventos para dichos eventos se agreguen a gBrowser.tabContainer en lugar de gBrowser directamente.
  • El menú contextual de pestañas ha dejado de ser un niño anónimo de {{ XULElem("tabbrowser") }}. Por lo tanto, pueden ser superpuestos directamente con superposiciones XUL . También se puede acceder de forma más directa en JavaScript a través de gBrowser.tabContextMenu . Puedes ver esta entrada de blog para tener más detalles.
  • Se ha agregado la nueva propiedad {{ XULProp ("visibleTabs") }}, que te permite obtener una matriz de las pestañas actualmente visibles y, por tanto, determinar qué pestañas son visibles en el conjunto de pestañas actual. Esto es utilizado por Firefox Panorama, por ejemplo.
  • Añadido el nuevo método {{ XULMeth2 ("showOnlyTheseTabs") }}, utilizado por Firefox Panorama.
  • Añadido el nuevo método {{ XULMeth2 ("getIcon") }}, que te permite obtener el favicon de una pestaña sin tener que tirar del elemento {{ XULElem ("browser") }}.
  • Añadida la nueva propiedad {{ XULProp ("tabbrowser.tabs") }}, que te permite fácilmente obtener una lista de las pestañas en un elemento {{ XULElem ("tabbrowser") }}.
  • Los nuevos métodos {{ XULMeth2 ("pinTab") }} y {{ XULMeth2 ("unpinTab") }} permiten anclar y desanclar pestañas (es decir, intercambiarlas entre las pestañas de aplicaciones y las pestañas normales).
  • Añadidos el método {{ XULMeth2("getTabModalPromptBox") }} y el atributo {{ XULAttr("tabmodalPromptShowing") }} para admitir alertas modales sobre pestañas.

Cambios en elementos emergentes

  • El elemento {{ xulelem ("popup") }} ha dejado de ser compatible, así que se recomienda usar {{ xulelem ("menupopup") }} en su lugar. (Si continúas utilizando popup , te encontrarás con problemas técnicos, ya que el elemento no tiene ningún significado especial. Por ejemplo, {{ xulelem ("menuseparator") }} puede aparecer transparente cuando se utiliza en un {{ xulelem("popup") }}.)
  • El elemento XUL {{ XULElem("menupopup") }}tiene ahora una propiedad {{ XULProp("triggerNode") }}, que indica el nodo en el que ocurrió el evento que hizo que el elemento emergente se abriera. Esto también requiere agregar un parámetro de evento desencadenante al método {{ XULMeth2 ("openPopup") }}. Se ha agregado, además, la propiedad {{ XULProp ("anchorNode") }}, que devuelve el anclaje que se especificó cuando se creó el elemento emergente.
  • El elemento {{ XULElem ("panel") }} ofrece ahora los atributos {{ XULAttr ("fade") }} y {{ XULAttr ("flip") }}, que se utilizan para configurar el comportamiento de los nuevos paneles de notificación en estilo "flecha".

Compatibilidad de XUL remotos eliminada

XUL remotos ya no es compatible, lo que afecta a los documentos XUL que se sirven a través de HTTP. Del mismo modo, ya no se pueden cargar documentos XUL con file:// URLs a menos que se cree la preferencia dom.allow_XUL_XBL_for_file y se establezca en true . Hay, sin embargo, una característica de la lista blanca que se puede utilizar para permitir a dominios específicos para cargar XUL remotos. La extensión Administrador de XUL remotos te permite administrar esta lista blanca.

Distintos cambios en XUL

  • El atributo {{ xulattr("readonly") }} ahora funciona correctamente para los campos.
  • El elemento {{ xulelem("resizer") }} ahora te permite utilizar el atributo {{ xulattr("element") }} especificar un elemento para cambiar el tamaño, en lugar de cambiar el tamaño de la ventana.
  • El elemento {{ xulelem ("resizer") }} tiene ahora un atributo {{ xulattr("resizer.type", "type") }} que te permite especificar que el cambio de tamaño es para una ventana en vez de un elemento, para evitar así que el cambio de tamaño de la ventana se dibuje dos veces.
  • El atributo "activo" ya no se establece en ventanas XUL activas. En su lugar, puede utilizar la nueva pseudoclase {{ cssxref(":-moz-window-inactive") }} con el fin de asignar distintos estilos a las ventanas de fondo.
  • El atributo {{xulattr("emptytext")} se considera obsoleto, así que se debería usar {{xulattr("placeholder")}} en su lugar.
  • El elemento {{ xulelem("window") }} ahora ofrece un atributo {{ xulattr("accelerated") }} que cuando se establece en true, permite al administrador de capas de hardware acelerar la ventana.
  • El elemento {{ xulelem("stack") }} ahora es compatible con los atributos {{ xulattr("bottom") }} y {{ xulattr("right") }}.
  • Los eventos son ahora lanzados durante la personalización {{ xulelem("toolbox") }}, lo que te permite detectar cambios en las barras de herramientas .
  • El atributo {{ xulattr("alternatingbackground") }} para los elementos {{ xulelem("tree") }} ya no se admite. Se puede usar la seudoclase {{ cssxref(":-moz-tree-row") }} en su lugar.
  • El botón de desbordamiento de la Barra de marcadores con chevronPopup anonid ya no es anónimo, sino que tiene un id. del cliente de "PlacesChevron".
  • El elemento {{ xulelem("tabs") }} tiene ahora una propiedad {{ xulprop ("tabbox") }}, en sustitución de la antigua _tabbox, que ha quedado obsoleta (y nunca fue documentada).
  • Los elementos XUL {{ xulelem("window") }} ahora tienen el atributo {{ xulattr("drawintitlebar") }}. Si está establecido en true , el área de contenido de la ventana incluye la barra de título, lo que permite dibujar en ella.
  • Nuevos eventos TabPinned y TabUnpinned están disponibles, lo que te permite detectar cuando las pestañas están ancladas y desancladas .
  • El nuevo evento TabAttrModified es enviado cuando cambian los atributos de una pestaña {{ xulattr("label") }}, {{ xulattr("crop") }}, {{ xulattr("busy") }}, {{ xulattr("image") }}, o {{ xulattr("selected") }}.
  • Los elementos {{ xulelem("tab") }} ahora tienen un atributo {{ xulattr("pinned") }}, lo que te permite determinar si una pestaña se encuentra actualmente anclada.
  • La clase setDirectionIndicator en los elementos {{ xulelem("tree") }} no ha hecho nada desde hace algún tiempo, por lo que ha dejado de usarse.
  • El elemento {{ XULElem("window") }} tiene ahora un atributo {{ XULAttr("chromemargin") }} que te permite establecer el margen entre chrome y contenido en cada lado de una ventana. Se puede utilizar para dibujar en la barra de título, por ejemplo.
  • El elemento {{ XULElem("window") }} tiene ahora un atributo {{ XULAttr("disablechrome") }} que se utiliza para ocultar la mayor parte del cromo en una ventana cuando éste se está utilizando para mostrar la interfaz de usuario en el navegador, como about:addons .
  • El elemento {{ XULElem("window") }} tiene ahora un atributo {{ XULAttr("disablefastfind") }}, que te permite desactivar la barra de búsqueda en una ventana cuando el contenido no lo admite. Se utiliza, por ejemplo, por el panel de complementos/agregados.
  • Las barras de herramientas ahora pueden ser externas a la caja de herramientas, sin dejar de ser considerada un miembro del {{ XULElem("toolbox") }}, estableciendo la propiedad {{ XULProp("toolboxid") }} del {{ XULElem("toolbox") }}. Además, el elemento {{ XULElem("toolbox") }} tiene ahora una propiedad {{ XULProp("externalToolbars") }}, que enumera todas las barras de herramientas que se consideran miembros de la caja de herramientas.
  • Se ha añadido la compatibilidad para el registro de plantillas de XUL para fines de depuración.

Cambios en la IU que afectan a los desarrolladores

La barra de complementos/agregados
La barra de estado ha sido eliminada en favor de la barra de complementos/agregados. Tienes que actualizar tu extensión para usarla si has agregado anteriormente la IU a la barra de estado.

Almacenamiento

Distintos cambios en la API de almacenamiento

  • La interfaz de {{ ("mozIStorageBindingParamsArray") }} ahora tiene un atributo de longitud que indica el número de objetos {{ interface("mozIStorageBindingParams") }} de la matriz.
  • {{ ifmethod ("mozIStorageStatement", "bindParameters") }} ahora devuelven un error si está vacía la {{ interface("mozIStorageBindingParamsArray") }} especificada.
  • Se ha añadido el método {{ ifmethod ("mozIStorageConnection", "clon") }}, que permite clonar una conexión de base de datos existente.
  • Se ha añadido el método {{ ifmethod ("mozIStorageConnection", "asyncClose") }}, que te permite cerrar una conexión de base de datos de forma asincrónica. Especificas que se notifique una devolución de llamada cuando la operación de cierre se ha completado.
  • Se ha añadido el método {{ ifmethod ("mozIStorageConnection", "setGrowthIncrement") }} , que permite especificar cuánto se amplía un archivo de base de datos a la vez, con el fin de ayudar a que SQLite reduzca la fragmentación.
  • Ahora se informa sobre el error SQLITE_CONSTRAINT como NS_ERROR_STORAGE_CONSTRAINT en lugar de como NS_ERROR_FAILURE .

XPCOM

Además de los cambios específicos a los que se hace referencia a continuación, es importante tener en cuenta que ya no hay ninguna interfaz inmovilizada. Ninguna de las interfaces está inmovilizada, sin importar lo que la documentación puede decir. Vamos a ir actualizando la documentación con el tiempo.

Cambios XPCOM en Gecko 2.0
Detalles sobre los cambios en XPCOM que afectan a la compatibilidad en Firefox 4.
Components.utils.getGlobalForObject ()
Este nuevo método devuelve el objeto global con el que se asocia un objeto, lo que sustituye a un caso de uso común del ahora eliminado __parent__ .

Lugares

  • Los resultados de las consultas sobre lugares ahora pueden ser vistos por varios observadores y las consultas se pueden ejecutar de forma asincrónica. Esto significa que ha habido algunos cambios en las interfaces {{ interface("nsINavHistoryResult") }}, {{ interface("nsINavHistoryQueryOptions") }} y {{ interface("nsINavHistoryContainerResultNode") }} De manera más significativa, la interfaz de {{ interface("nsINavHistoryResultViewer") }} ha cambiado el nombre a {{ interface("nsINavHistoryResultObserver") }}.
  • Algunas notificaciones nuevas se han agregado para permitir que el navegador realice de manera más fiable el seguimiento del proceso de cierre del servicio Lugares. De estos, la mayoría son para uso interno, pero la notificación places-connection-closed está disponible para conocer cuándo el servicio de Lugares ha completado su proceso de cierre.
  • El parámetro de salida del tamaño de la matriz ahora es opcional en varios métodos de Lugares.
  • La compatibilidad para <menupopup type="places"> se ha eliminado. En su lugar, es necesario crear y rellenar de forma manual un menú con información de Lugares. Véase Visualización de información de Lugares a través de las vistas: vista de los menús para obtener más detalles.

Cambios en la interfaz

  • Las interfaces {{ interface("nsIDocShell") }} and {{ interface("nsIWebBrowser") }} tienen ahora un nuevo atributo isActive, que se utiliza para permitir la optimización de las rutas de código para los documentos que actualmente no están visibles.
  • El método {{ interface("nsIMemory") }} {{ ifmethod("nsIMemory","isLowMemory") }} ha quedado obsoleto. Se recomienda usar en su lugar las notificaciones de "presión de memoria" para observar las situaciones de baja memoria.
  • La API para controlar redirecciones en los canales HTTP ha cambiado para dejar que se procesen de forma asincrónica. Cualquier código que implemente el control de redirecciones a través de {{ ifmethod("nsIChannelEventSink", "onChannelRedirect") }} debe actualizarse y utilizar {{ ifmethod ("nsIChannelEventSink", "asyncOnChannelRedirect") }} en su lugar. Éste acepta un controlador de devolución de llamada que se debe llamar cuando una redirección se completa con éxito.
  • Se ha añadido el método {{ ifmethod("nsINavHistoryResultObserver", "batching") }}, proporcionando una forma de agrupar en lotes las operaciones de Lugares, reduciendo el número de notificaciones de actualización emitidas, lo cual puede mejorar el rendimiento cuando los observadores están realizando tareas relacionadas (como recargar vistas).
  • La interfaz {{ interface("nsIPref") }}, que hace tiempo quedó obsoleta, ha sido finalmente eliminada. Si aún no has cambiado a {{interface("nsIPrefService")}, ahora es el momento.
  • Las interfaces {{ interface("nsISessionStore") }} y {{ interface("nsISessionStartup") }} han experimentado cambios para admitir el restablecimiento de sesión a petición. Consulta el método {{ ifmethod("nsISessionStore", "restoreLastSession") }}.
  • Los métodos {{ interface("nsIPrincipal") }} {{ ifmethod("nsIPrincipal", "subsumes") }} y {{ ifmethod("nsIPrincipal", "checkMayLoad") }}, así como su origin , csp , y los atributos URI, que anteriormente sólo estaban disponibles a partir de código nativo, ya lo están desde script.
  • La interfaz {{ interface("nsIPrompt") }} es ahora compatible con las alertas modales sobre pestañas. Puedes ver Uso de los indicadores modales sobre pestañas si quieres tener más detalles.

Administración de la memoria

Asignación de memoria infalible
Mozilla proporciona ahora asignadores de memoria infalibles que están garantizados para no devolver null. Es recomendable leer este artículo para saber cómo funcionan y cómo solicitar explícitamente la asignación de memoria falible frente a infalible.

Otros cambios

  • La mayor parte de los recursos contenidos dentro de Firefox se han combinado en un único archivo JAR, omni.jar , lo que mejora el rendimiento de inicio mediante la reducción de E / S. Para obtener más información, lee Acerca de omni.jar.
  • La preferencia accessibility.disablecache ya no es compatible. Se expuso sólo para fines de depuración y ya no se utiliza.
  • Los complementos/agregados cuyo GUID (Identificador Exclusivo Global) cambia de una versión a otra ya se pueden actualizar correctamente.
  • Como efecto secundario de la eliminación de directorios específicos de la plataforma en los paquetes de complementos/agregados, ya no se pueden ofrecer diferentes preferencias por defecto para cada plataforma.
  • De manera predeterminada, las extensiones ya no se desempaquetan al ser instaladas, sino que se ejecutan directamente desde el archivo XPI. Pueden usar la propiedad unpack del install manifest para elegir el comportamiento anterior. Asimismo, las extensiones que usan componentes binarios, DLLs cargadas con ctypes, plugins de búsqueda, diccionarios e iconos de ventana deben especificar que tienen que ser desempaquetadas. 

Otros cambios

Sólo se carga el archivo raíz chrome.manifest
Sólo se carga ahora el archivo raíz chrome.manifest. Si necesitas que se carguen archivos manifest secundarios, puedes utilizar el comando manifest en tu chrome.manifest raíz para cargarlos.
Eliminada la compatibilidad para Gopher
El protocolo Gopher ya no se admite de forma nativa. Con la extensión OverbiteFF podrás continuar la compatibilidad.
Control de eventos de proceso de contenido
A fin de hacer compatibles los plugins fuera de proceso y otras funciones de procesos múltiples, se ha introducido una nueva API para admitir el envío de mensajes a través de los procesos.
Extensiones de arranque
Ahora puedes crear extensiones que pueden instalarse, desinstalarse y actualizarse (o instalar la versión anterior) sin necesidad de reiniciar el explorador.
Eliminado el plugin predeterminado
Se ha eliminado el plugin por defecto. Asimismo, se ha eliminado de manera predeterminada la carpeta de plugins de aplicaciones. La carpeta de plugins de aplicaciones también ha sido eliminada por defecto, sin embargo la compatibilidad para la instalación de plugins a través de esta carpeta continúa. Mira {{ bug("533891") }}.
El Administrador de complementos/agregados sustituye al Administrador de extensiones
{{ interface("nsIExtensionManager") }} ha sido sustituido por AddonManager .
Ya no se utilizan los HWNDs secundarios
Firefox ya no crea HWNDs secundarios para su uso interno en Windows. Si has escrito una extensión que utiliza código nativo para manipular estos HWNDs, no te funcionará en Firefox 4. Tendrás que dejar de usar HWNDs o ajustar el código que se basa en HWNDs a un plugin NPAPI. Eso es mucho trabajo, por lo que si puedes evitar el uso de HWNDs directamente, hazlo.
Cambios de gestos
Los tres gestos de pasar los dedos por los trackpads se han sustituido, de manera predeterminada, por abrir y cerrar la vista Firefox Panorama (TabCandy). Para volver a cambiar a los comandos anteriores de desplazamiento hacia arriba y desplazamiento hacia abajo, abre about: config y ajusta browser.gesture.swipe.down a cmd_scrollBottom y browser.gesture.swipe.up a cmd_scrollTop .

Consulta también

{{ languages( { "en":"en/Firefox_4_for_developers", "de": "de/Firefox_4_für_Entwickler", "ja": "ja/Firefox_4_for_developers", "zh-tw": "zh_tw/Firefox_4_for_developers"} ) }}

Fuente de la revisión

<p>{{ draft() }}</p>
<p>Firefox 4, que entró en beta a fines de junio del 2010, mejora el rendimiento, agrega una mayor compatibilidad para HTML5 y otras tecnologías Web en desarrollo, y otras mejoras en la seguridad. Este artículo provee información inicial sobre esta futura versión y qué características estarán disponibles para los desarrolladores Web, desarrolladores de extensiones y desarrolladores sobre la plataforma Gecko.</p>
<p>Muchas de estas funcionalidades pueden ser probadas actualmente en las versiones de <a class=" external" href="http://www.mozilla.com/es/firefox/beta/" title="http://www.mozilla.com/es/firefox/beta/">Firefox 4 beta</a> o, si tienes espíritu aventurero, en las <a class=" external" href="http://nightly.mozilla.org/" title="http://nightly.mozilla.org/">versiones nocturnas</a>.</p>
<div class="note"><strong>Nota:</strong> Este artículo está en proceso, así como todos los artículos enlazados desde esta página. Algunos nombres de artículos son marcadores de posición y algunos temas podrán dividirse en muchos artículos. En general, ten cuidado a la hora de enlazar a esos artículos, al menos de momento.</div>
<h2>Funcionalidades para desarrolladores web</h2>
<p>Gecko usa ahora un parseador o analizador <a href="/es/HTML/HTML5" title="es/HTML/HTML5">HTML5</a>, que arregla algunos problemas, mejora la interoperabilidad y el rendimiento. También permite incrustar contenido en <a href="/en/SVG" title="en/SVG">SVG</a> y <a href="/en/MathML" title="en/MathML">MathML</a> directamente en el marcado HTML.</p>
<h3>HTML</h3>
<dl> <dt><a href="/es/HTML/HTML5/HTML5_Parser" title="es/HTML/HTML5/HTML5 Parser">Conoce el analizador de HTML5</a></dt> <dd>Una mirada a lo que significa para ti el analizador HTML5 y cómo incrustar SVG y MathML dentro de tu contenido.</dd> <dt><a href="/es/HTML/HTML5/Formularios_en_HTML5" title="es/HTML/HTML5/Formularios en HTML5">Formularios en HTML5</a></dt> <dd>Una mirada a las mejoras en los formularios web en HTML5. Entre los cambios se encuentran los tipos de entrada agregados en el elemento <code><a href="../../../../en/HTML/Element/input" rel="custom nofollow">&lt;input&gt;</a></code> , validación de datos y muchos más.</dd> <dt><a href="/es/Secciones_y_esquema_de_un_documento_HTML_5" title="es/Secciones y esquema de un documento HTML 5">Secciones y esquema de un documento HTML5</a></dt> <dd>Gecko ya admite los nuevos elementos de HTML5 relacionados a secciones en un documento: {{ HTMLElement("article") }}, {{ HTMLElement("section") }}, {{ HTMLElement("nav") }}, {{ HTMLElement("aside") }}, {{ HTMLElement("hgroup") }}, {{ HTMLElement("header") }} y {{ HTMLElement("footer") }}.</dd>
</dl>
<dl> <dt><a href="/en/HTML/Global_attributes#attr-hidden" title="en/HTML/Global attributes#attr-hidden">Atributo hidden de HTML5</a><span id="1297943256810S" style="display: none;"> </span></dt> <dd>Este atributo, común a todos los elementos, se utiliza para ocultar contenido de una página web que no es relevante actualmente para el usuario.</dd>
</dl>
<dl> <dt>Otros elementos de HTML5</dt> <dd>Gecko ya admite el uso de los siguientes nuevos elementos en HTML5: {{ HTMLElement("mark") }}, {{ HTMLElement("figure") }} y  {{ HTMLElement("figcaption") }}.</dd> <dt><a href="/en/WebSockets" title="en/WebSockets">WebSockets</a></dt> <dd>Una guía para usar la nueva API de WebSockets para comunicación en tiempo real entre una aplicación web y un servidor.</dd>
</dl>
<h4>Diversos cambios en HTML</h4>
<ul> <li>Los elementos {{ HTMLElement("textarea") }} ahora son de tamaño variable por defecto; puedes usar la propiedad CSS {{ cssxref("resize") }} para desabilitarlos.</li> <li><code>canvas.getContext</code> y <code>canvas.toDataURL</code> no lanzan una excepción cuando se invocan con argumentos no reconocidos.</li> <li>El elemento <code><a href="../../../../en/HTML/Element/canvas" rel="custom nofollow">&lt;canvas&gt;</a> </code><span class="short_text" id="result_box"><span style="" title="">ya admite el método específico de Mozilla </span></span><code>mozGetAsFile()</code><span class="short_text" id="result_box"><span style="" title="">, que te permite obtener un archivo basado en memoria que contiene una imagen de los contenidos de canvas. Consulta </span></span> <code><a href="../../../../en/DOM/HTMLCanvasElement" rel="custom nofollow">HTMLCanvasElement</a> </code><span class="short_text" id="result_box"><span style="" title="">si deseas tener más detalles.</span></span></li> <li><code>canvas2dcontext.lineCap</code> y <code>canvas2dcontext.lineJoin</code> ya no lanzan una excepción cuando se les asigna una valor no reconocido.</li> <li><code>canvas2dcontext.globalCompositeOperation</code> no lanza una excepción <span class="short_text" id="result_box"><span style="" title="">cuando se les asigna un valor no reconocido ni tampoco admite el valor no estándar <code>darker. </code></span></span></li>
</ul>
<p><span class="short_text"><span style="" title=""><code> </code>
</span></span></p><ul> <li>Se ha eliminado la compatibilidad para el elemento obsoleto <code><a class="new" href="../../../../en/HTML/Element/spacer" rel="internal">&lt;spacer&gt;</a></code>, que estaba ausente en el resto de navegadores.</li> <li>El elemento <code><a class="new" href="../../../../en/HTML/Element/isindex" rel="internal">&lt;isindex&gt;</a> </code><span class="short_text"><span style="" title=""><span class="short_text"><span style="" title="">es creado como un elemento simple sin propiedades ni métodos </span></span></span></span><span class="short_text"><span style="" title="">cuando se invoca a </span></span><code><a href="../../../../en/DOM/document.createElement" rel="custom nofollow">document.createElement()</a>, </code><span class="short_text"><span style="" title="">. </span></span></li> <li><span class="short_text"><span style="" title="">Gecko ya admite invocar a </span></span><code>click()</code>en elementos <code><a href="../../../../en/HTML/Element/input" rel="custom nofollow">&lt;input&gt;</a></code>  para abrir el selector de archivos. Mira el <a href="/en/Using_files_from_web_applications#Using_hidden_file_input_elements_using_the_click%28%29_method" title="en/Using files from web applications#Using hidden file input elements using the click() method">ejemplo</a> del artículo <a href="/en/Using_files_from_web_applications" title="en/Using files from web applications">Usar archivos desde aplicaciones web</a>.</li> <li>El elemento <code><a href="../../../../en/HTML/Element/input" rel="custom nofollow">&lt;input&gt;</a></code>  admite un nuevo atributo <a href="../../../../en/HTML/Element/Input#attr-mozactionhint" rel="internal"><code>mozactionhint</code></a>, que te permite especificar la etiqueta para la tecla enter de los teclados virtuales.</li> <li>Los elementos <code><a href="../../../../en/HTML/Element/script" rel="custom nofollow">&lt;script&gt;</a></code> dentro de los elementos <code><a href="../../../../en/HTML/Element/iframe" rel="custom nofollow">&lt;iframe&gt;</a></code>, <code><a class="new" href="../../../../en/HTML/Element/noembed" rel="internal">&lt;noembed&gt;</a></code> y <code><a class="new" href="../../../../en/HTML/Element/noframes" rel="internal">&lt;noframe&gt;</a></code> ahora se ejecutan, lo que en anteriores versiones de Firefox no hacían. Esto cumple con la especificación y coincide con el comportamiento de otros navegadores.</li>
</ul>
<p></p>
<h3>CSS</h3>
<dl> <dt><a href="/es/CSS/Transiciones_de_CSS" title="es/CSS/Transiciones de CSS">Transiciones CSS</a></dt> <dd>Está disponible en Firefox 4 una nueva compatibilidad para las transiciones CSS.</dd> <dt>Valores calculados en CSS</dt> <dd>Se ha agregado la compatibilidad para<code> </code><code><span style="font-family: Verdana,Tahoma,sans-serif;"><code><a href="../../../../en/CSS/-moz-calc" rel="custom nofollow">-moz-calc</a></code> , lo que te permite especificar valores </span></code><code><span style="font-family: Verdana,Tahoma,sans-serif;"><code><a href="../../../../en/CSS/length" rel="custom nofollow">&lt;length&gt;</a></code> </span></code><code><span style="font-family: Verdana,Tahoma,sans-serif;">como expresiones matemáticas.</span></code></dd> <dt><span class="short_text" id="result_box"><span style="" title="">Agrupación de selectores<br> </span></span></dt> <dd>Compatibilidad para {{ cssxref(":-moz-any") }} para agrupar selectores y descomponer elementos de combinación en factores.</dd> <dt>Compatibilidad background image subrectangle</dt> <dd>La función {{ cssxref("-moz-image-rect") }} hace que sea posible utilizar subrectángulos de imágenes como <code><a href="../../../../en/CSS/background-image" rel="custom nofollow">background-image</a></code> (imágenes de fondo).</dd> <dt>Propiedades CSS touch</dt> <dd>Se agrega la compatibilidad para propiedades touch. Más adelante se aportarán más detalles y nombres reales de los artículos.</dd> <dt> <a href="/en/CSS/-moz-element" title="en/CSS/-moz-element"><span class="goog-gtc-unit" id="goog-gtc-unit-1"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Uso de elementos arbitrarios como fondos CSS</span></span></a></dt>
</dl>
<dl> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-2"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style=""> Puedes utilizar la función CSS {{ cssxref("-moz-element") }} y la función DOM domxref {{ domxref("document.mozSetImageElement()") }} para usar elementos HTML arbitrarios como fondo.</span></span></dd>
</dl>
<dl> <dt><a href="/en/CSS/Privacy_and_the_:visited_selector" title="en/CSS/Privacy and the :visited selector"><span class="goog-gtc-unit" id="goog-gtc-unit-3"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Privacidad y el selector :visited</span></span></a></dt>
</dl>
<dl> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-4-goog-gtc-unit-5"><span class="goog-gtc-translatable goog-gtc-from-human">Se han hecho cambios en la información que se puede obtener sobre el estilo de los enlaces visitados usando selectores CSS, lo puede afectar a algunas aplicaciones web.</span></span></dd>
</dl>
<h4><span class="goog-gtc-unit" id="goog-gtc-unit-6"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Nuevas propiedades CSS</span></span></h4>
<table class="standard-table"> <tbody> <tr> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-7"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Propiedad</span></span></td> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-8"><span class="goog-gtc-translatable goog-gtc-from-tm goog-gtc-from-tm-score-100" dir="ltr">Descripción</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-9"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("-moz-font-feature-settings") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-10"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Te permite personalizar las funciones avanzadas de las fuentes OpenType.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-11"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("-moz-tab-size") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-12"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Especifica el ancho en caracteres de espacio de un carácter de tabulación (U 0009) al representar el texto.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-13"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("resize") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-14"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Te permite controlar las dimensiones a las que se puede adaptar un elemento.</span></span></td> </tr> </tbody>
</table>
<dl> <h4><span class="goog-gtc-unit" id="goog-gtc-unit-15"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Nuevas  seudoclases</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-15"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">CSS</span></span></h4> <table class="standard-table"> <tbody> <tr> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-16"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Seudoclase</span></span></td> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-17"><span class="goog-gtc-translatable goog-gtc-from-tm goog-gtc-from-tm-score-100" dir="ltr">Descripción</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-18"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":-moz-handler-crashed") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-19"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se utiliza para aplicar estilo a los elementos cuyos plugins se han caído.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-20"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":-moz-placeholder") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-21"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Aplicado al texto de marcador de posición en los campos de formulario.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-22"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":-moz-submit-invalid") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-23"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Aplicado al botón de enviar de los formularios cuando uno o más de los campos del formulario no se valida.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-24"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":-moz-window-inactive") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-25"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Aplicado a los elementos de las ventanas inactivas.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-26"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":invalid") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-27"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Aplicado de manera automática a los campos {{ HTMLElement("input") }} cuando su contenido no es válido.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-28"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":optional") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-29"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Aplicado automáticamente a los campos{{ HTMLElement("input") }} que no especifican el atributo <code>required</code>.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-30"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":required") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-31"><span class="goog-gtc-translatable goog-gtc-from-human goog-gtc-ph-missing" dir="ltr">Aplicado automáticamente a los campos{{ HTMLElement("input") }} que especifican el atributo </span></span><span class="goog-gtc-unit" id="goog-gtc-unit-29"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"><code>required</code></span></span><span class="goog-gtc-unit" id="goog-gtc-unit-31"><span class="goog-gtc-translatable goog-gtc-from-human goog-gtc-ph-missing" dir="ltr">.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-32"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":valid") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-33"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Aplicado de manera automática a los campos {{ HTMLElement("input") }} cuando su contenido se valida con éxito.</span></span></td> </tr> </tbody> </table> <h4><span class="goog-gtc-unit" id="goog-gtc-unit-34"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Nuevos seudoselectores </span></span><span class="goog-gtc-unit" id="goog-gtc-unit-34"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">CSS </span></span></h4> <table class="standard-table"> <tbody> <tr> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-35"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Seudoselector</span></span></td> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-36"><span class="goog-gtc-translatable goog-gtc-from-tm goog-gtc-from-tm-score-100" dir="ltr">Descripción</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-37"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":-moz-focusring") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-38"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Te permite especificar el aspecto de un elemento cuando Gecko cree que debería tener representada una indicación del foco .</span></span></td> </tr> </tbody> </table> <h4><span class="goog-gtc-unit" id="goog-gtc-unit-39"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Nuevas funciones CSS</span></span></h4> <table class="standard-table"> <tbody> <tr> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-40"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Función</span></span></td> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-41"><span class="goog-gtc-translatable goog-gtc-from-tm goog-gtc-from-tm-score-100" dir="ltr">Descripción</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-42"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref(":-moz-any") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-43"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Te permite agrupar selectores y descomponer en factores los elementos de combinación.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-44"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("-moz-calc") }} </span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-45"><span class="goog-gtc-translatable goog-gtc-from-human goog-gtc-ph-missing" dir="ltr">Te permite especificar valores {{ xref_csslength() }} como expresiones matemáticas.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-46"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("-moz-element") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-47"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Te permite utilizar un elemento arbitrario como fondo de {{ cssxref ("background-image") }} y {{ cssxref("background") }}.</span></span></td> </tr> <tr> <td><span class="goog-gtc-unit" id="goog-gtc-unit-48"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("-moz-image-rect") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-49"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Te permite utilizar un subrectángulo de una imagen como {{ cssxref ("background-image") }} o {{ cssxref("background") }}.</span></span></td> </tr> </tbody> </table> <h4><span class="goog-gtc-unit" id="goog-gtc-unit-50"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Propiedades CSS renombradas</span></span></h4> <table class="standard-table"> <thead> <tr> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-51"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Nombre anterior</span></span></td> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-52"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Nuevo nombre</span></span></td> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-53"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Notas</span></span></td> </tr> </thead> <tbody> <tr> <td><code>-moz-background-size</code></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-54"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("background-size") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-55"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">El nombre <code>-moz-background-size</code> ya no es compatible.</span></span></td> </tr> <tr> <td><code>-moz-border-radius</code></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-56"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("border-radius") }}</span></span></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-57"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El nombre anterior es admitido por un tiempo limitado para que puedas actualizar tus sitios.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-58"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Los cambios de representación también se han hecho para que coincida con la última versión de la especificación.</span></span></td> </tr> <tr> <td><code>-moz-box-shadow</code></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-59"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ cssxref("box-shadow") }}</span></span></td> <td> </td> </tr> </tbody> </table> <h4><span class="goog-gtc-unit" id="goog-gtc-unit-60"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Varios cambios en CSS</span></span></h4> <ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-61"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La propiedad {{ cssxref ("text-shadow") }} ahora limita el radio de desenfoque a 300px por razones de integridad y rendimiento.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-62"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La propiedad {{ cssxref("overflow") }} ya no se aplica a los elementos agrupados en tablas ( <code>&lt;thead&gt;</code> , <code>&lt;tbody&gt;</code> y <code>&lt;tfoot&gt;</code> ).</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-63"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La propiedad {{ cssxref("-moz-appearance") }} ahora es compatible con el valor <code>-moz-win-borderless-glass</code>, que aplica a un elemento un aspecto sin márgenes Aero Glass.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-64"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha agregado la función multimedia <code><a>-moz-device-pixel-ratio</a></code>, que permite que se usen los píxeles del dispositivo por ratio de píxel CSS para las<a href="/En/CSS/Media_queries" title="En/CSS/Media queries"> Consultas a medios </a>.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-65"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El control de Gecko sobre las <a>unidades CSS</a> ha sido revisado para adaptarse mejor a otros navegadores y para traducir con mayor precisión las longitudes absolutas en cálculos de píxeles de pantalla basados en los ppp del dispositivo.</span></span></li> </ul> <h3><span class="goog-gtc-unit" id="goog-gtc-unit-66"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Gráficos y de video</span></span></h3>
<dl> <dt> </dt><dt><a href="/en/WebGL" title="en/WebGL"><span class="goog-gtc-unit" id="goog-gtc-unit-67"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">WebGL</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-68"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El estándar WebGL en desarrollo es admitida ya por Firefox.</span></span></dd> <dt><a href="/en/Optimizing_graphics_performance" title="en/Optimizing graphics performance"><span class="goog-gtc-unit" id="goog-gtc-unit-69"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Optimizar el rendimiento de los gráficos</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-70"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Consejos y trucos para sacarle el máximo partido a los gráficos y al rendimiento del video en Firefox 4.</span></span></dd> <dt><a href="/En/Media_formats_supported_by_the_audio_and_video_elements#WebM" title="En/Media formats supported by the audio and video elements#WebM"><span class="goog-gtc-unit" id="goog-gtc-unit-71"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Compatibilidad para video WebM</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-72"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El nuevo formato de video abierto </span></span><span class="goog-gtc-unit" id="goog-gtc-unit-72"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"><a class=" external" href="http://www.webmproject.org/" title="http://www.webmproject.org/">WebM</a> </span></span><span class="goog-gtc-unit" id="goog-gtc-unit-72"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">es compatible con Gecko 2.0.</span></span></dd> <dt><a href="/en/SVG/SVG_animation_with_SMIL" title="en/SVG/SVG animation with SMIL"><span class="goog-gtc-unit" id="goog-gtc-unit-73"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Animación SVG con SMIL</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-74"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La compatibilidad para la animación SMIL de SVG ya está disponible.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-75"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Utilizar SVG como imágenes y como fondos CSS</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-76"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Ahora puedes utilizar SVG con el elemento {{ htmlelement("img") }}, así como un {{ cssxref("background-image") }} CSS.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-77"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Compatibilidad con el atributo multimedia <code>buffered</code> </span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-78"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El atributo <code>buffered</code> de los elementos {{ HTMLElement("video") }} y {{ HTMLElement("audio") }} es admitido ya, lo que te permite determinar qué rangos de un archivo multimedia se han almacenado en el búfer.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-79"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La interfaz DOM {{ domxref("TimeRanges") }} ha sido implementada para admitirlo.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-80"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Atributo multimedia <code>preload</code> </span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-81"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha implementado el atributo <code>preload</code> de la especificación HTML 5, en sustitución del atributo <code>autobuffer</code>, que se aplicaba anteriormente y que ya no se admite.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-82"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Esto afecta a los elementos {{ HTMLElement ("video") }} y {{ HTMLElement ("audio") }}, así como a la interfaz de </span></span>{{ interface("nsIDOMHTMLMediaElement") }}<span class="goog-gtc-unit" id="goog-gtc-unit-82"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-83"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Mejoras SVG en la posición de texto</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-84"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Ahora puedes especificar listas para los valores de las propiedades <code>x</code> , <code>y</code> , <code>dx</code> y <code>dy</code> en elementos {{ SVGElement ("text") }} y {{ SVGElement ("tspan") }} SVG.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-85"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Esto te permite controlar de forma individual la posición de cada carácter en una cadena.</span></span></dd>
</dl><h3><span class="goog-gtc-unit" id="goog-gtc-unit-86"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">DOM</span></span></h3>
<dl> <dt><a><span class="goog-gtc-unit" id="goog-gtc-unit-87"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Matrices de tipo JavaScript</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-88"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha añadido la compatibilidad para las matrices de tipo JavaScript, lo que te permite manipular los búferes que contienen datos sin procesar utilizando tipos de datos nativos.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-89"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Varias APIs hacen uso de ello, incluyendo la <a href="/en/DOM/File" title="en/DOM/File">API de archivos</a> , <a href="/en/WebGL" title="en/WebGL">WebGL</a> y <a href="/en/WebSockets" title="en/WebSockets">WebSockets</a> .</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-90"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Obtener rectángulos límite para rangos</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-91"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El objeto {{ domxref ("Range") }} ahora tiene los métodos {{ domxref("range.getClientRects()") }} y {{ domxref("range.getBoundingClientRect()") }}.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-92"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Capturar eventos del ratón sobre elementos arbitrarios</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-93"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha agregado la compatibilidad para las APIs de Internet Explorer <code>setCapture()</code> y <code>releaseCapture</code></span></span><span class="goog-gtc-unit" id="goog-gtc-unit-93"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"><code>()</code></span></span><span class="goog-gtc-unit" id="goog-gtc-unit-93"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-94"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Mira</span></span> {{ bug("503943") }}<span class="goog-gtc-unit" id="goog-gtc-unit-94"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">.</span></span></dd> <dt><a href="/en/DOM/Manipulating_the_browser_history" title="en/DOM/Manipulating the browser history"><span class="goog-gtc-unit" id="goog-gtc-unit-95"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Manipular el historial del navegador</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-96"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El objeto historial del documento existente, disponible a través del objeto {{ domxref ("window.history") }}, ahora es compatible con los nuevos métodos HTML5 <code>pushState()</code> y <code>replaceState()</code>.</span></span></dd> <dt><a href="/en/DOM/Animations_using_MozBeforePaint" title="en/DOM/Animations using MozBeforePaint"><span class="goog-gtc-unit" id="goog-gtc-unit-97"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Animaciones con MozBeforePaint</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-98"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Un nuevo evento se ha añadido que, en concertación con el método {{ domxref("window.mozRequestAnimationFrame()") }} y la propiedad {{ domxref("window.mozAnimationStartTime") }}, proporciona una manera de crear animaciones que se sincronizan entre sí.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-99"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Eventos touch y multi-touch</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-100"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha añadido la compatibilidad para los eventos touch y multi-touch.</span></span></dd>
</dl>
<h4><span class="goog-gtc-unit" id="goog-gtc-unit-101"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Han cambiado las interfaces DOM de los elementos HTML</span></span></h4>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-102"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Varios elementos HTML han incorporado cambios en sus interfaces DOM para adaptarlas a los requisitos de la especificación de HTML 5, como se muestra a continuación.</span></span></p>
<table class="standard-table"> <thead> <tr> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-103"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Interfaz de Firefox 3.6</span></span></td> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-104"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Interfaz en Firefox 4</span></span></td> <td class="header"><span class="goog-gtc-unit" id="goog-gtc-unit-105"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Elemento HTML</span></span></td> </tr> </thead> <tbody> <tr> <td><code><a href="/en/DOM/HTMLSpanElement" title="en/DOM/HTMLSpanElement">HTMLSpanElementHTMLSpanElement</a></code></td> <td><code><a href="/en/DOM/HTMLElement" title="en/DOM/HTMLElement">HTMLElement</a></code></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-106"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ HTMLElement("abbr") }}, {{ HTMLElement("acronym") }}, {{ HTMLElement("address") }}, {{ HTMLElement("b") }}, {{ HTMLElement("bdo") }}, {{ HTMLElement("big") }}, {{ HTMLElement("blink") }}, {{ HTMLElement("center") }}, {{ HTMLElement("cite") }}, {{ HTMLElement("code") }}, {{ HTMLElement("dd") }}, {{ HTMLElement("dfn") }}, {{ HTMLElement("dt") }}, {{ HTMLElement("em") }}, {{ HTMLElement("i") }}, {{ HTMLElement("kbd") }}, {{ HTMLElement("listing") }}, {{ HTMLElement("nobr") }}, {{ HTMLElement("plaintext") }}, {{ HTMLElement("s") }}, {{ HTMLElement("samp") }}, {{ HTMLElement("small") }}, {{ HTMLElement("strike") }}, {{ HTMLElement("strong") }}, {{ HTMLElement("sub") }}, {{ HTMLElement("sup") }}, , {{ HTMLElement("tt") }}, {{ HTMLElement("u") }}, {{ HTMLElement("var") }}, {{ HTMLElement("xmp") }}</span></span></td> </tr> <tr> <td><code><a href="/en/DOM/HTMLWBRElement" title="en/DOM/HTMLWBRElement">HTMLDivElement</a></code></td> <td><code><a href="/en/DOM/HTMLElement" title="en/DOM/HTMLElement">HTMLElement</a></code></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-107"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ HTMLElement("noembed") }}, {{ HTMLElement("noframes") }}, {{ HTMLElement("noscript") }}</span></span></td> </tr> <tr> <td><code><a href="/en/DOM/HTMLWBRElement" title="en/DOM/HTMLWBRElement">HTMLWBRElement</a></code></td> <td><code><a href="/en/DOM/HTMLElement" title="en/DOM/HTMLElement">HTMLElement</a></code></td> <td><span class="goog-gtc-unit" id="goog-gtc-unit-108"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">	{{ HTMLElement("wbr") }}</span></span></td> </tr> </tbody>
</table>
<dl><h4><span class="goog-gtc-unit" id="goog-gtc-unit-109"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Varios cambios DOM</span></span></h4>
<ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-110"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El ajuste de un elemento {{ HTMLElement ("textarea") }} ahora se puede controlar a través del DOM, gracias al atributo DOM <code>wrap</code>. </span></span>{{ bug("41464") }}</li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-111"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Los elementos {{ HTMLElement ("script") }} creados por medio de {{ domxref("document.createElement()") }} e insertados en un documento ahora se comportan por defecto de acuerdo a la especificación HTML 5.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-112"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Las secuencias de comandos con el atributo <code>src</code> se ejecutan en cuanto están disponibles (sin guardar el orden) y las secuencias de comandos sin el atributo <code>src</code> se ejecutan de forma sincrónica.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-113"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Para insertar dentro de scripts otros scripts que ejecuten el atributo <code>src</code> en el orden de inserción, ajusta en ellos <code>.async=false</code>.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-114"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Los objetos DOM {{ domxref("file") }} ahora ofrecen una propiedad <code>url</code>.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-115"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Compatibilidad de </span></span><a href="/En/XMLHttpRequest/Using_XMLHttpRequest#Using_FormData_objects" title="en/XMLHttpRequest/Using XMLHttpRequest#Using FormData objects">FormData</a><span class="goog-gtc-unit" id="goog-gtc-unit-115"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"> para XMLHttpRequest.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-116"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha implementado la propiedad {{ domxref ("element.isContentEditable") }}.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-117"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La propiedad {{ domxref ("document.currentScript") }} le permite determinar qué script del elemento {{ HTMLElement ("script") }} se está ejecutando actualmente.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-118"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Los nuevos eventos {{ domxref ("element.onbeforescriptexecute") }} y {{ domxref ("element.onafterscriptexecute") }} se activan antes y después de que se ejecute un elemento script.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-119"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se agregó la propiedad </span></span><a href="/En/DragDrop/DataTransfer#mozSourceNode" title="En/DragDrop/DataTransfer#mozSourceNode"><code>mozSourceNode</code></a><span class="goog-gtc-unit" id="goog-gtc-unit-119"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"> al objeto </span></span><a href="/En/DragDrop/DataTransfer" title="En/DragDrop/DataTransfer"><code>DragTransfer</code></a><span class="goog-gtc-unit" id="goog-gtc-unit-119"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-120"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se agregó el método </span></span><a href="/en/DOM/Selection/modify" title="en/DOM/selection/modify"><code>selection.modify()</code></a><span class="goog-gtc-unit" id="goog-gtc-unit-120"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"> para el objeto {{ domxref("Selection") }}, lo que te permite modificar fácilmente la selección de texto o la posición actual del cursor en una ventana del navegador.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-121"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha eliminado la compatibilidad para el objeto <code>window.directories</code> y la función <code>directories</code> para {{ domxref("window.open") }}, que no son compatibles con ningún otro navegador.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-122"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Utiliza <code>personalbar</code> en su lugar.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-123"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ bug ("474058") }}</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-124"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha añadido la propiedad {{ domxref ("event.mozInputSource") }} a los eventos DOM de interfaz de usuario. Esta propiedad no estándar te permite determinar el tipo de dispositivo que generó un evento.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-125"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha implementado el evento {{ domxref ("document.onreadystatechange") }}.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-126"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El método {{ domxref ("document.createElement") }} ya no acepta en modo "quirks" <code>&lt;</code> y <code>&gt;</code> alrededor del nombre de la etiqueta.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-127"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se han agregado los métodos {{ domxref("element.setCapture()") }} y {{ domxref("document.releaseCapture()") }}, que permiten a los elementos que continúen el seguimiento de los eventos del ratón, incluso cuando el ratón está fuera de su zona normal de seguimiento después de que haya ocurrido un evento <code>mousedown</code>.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-128"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha agregado la propiedad {{ domxref ("window.mozPaintCount") }}, que te permite determinar cuántas veces ha sido pintado un documento.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-129"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Esto puede ser útil cuando se esté comprobando el rendimiento de tu aplicación web.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-130"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El token de idioma se ha quitado de {{ domxref ("window.navigator.appVersion") }} y {{ domxref ("window.navigator.userAgent ") }}.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-131"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Usa {{ domxref ("window.navigator.language") }} o el <a href="/en/Content_negotiation" title="en/Content negotiation">encabezado </a><a href="/en/Content_negotiation" title="en/Content negotiation">Accept-Language</a> en su lugar.</span></span>  <span class="goog-gtc-unit" id="goog-gtc-unit-132"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ Bug ("572656") }}</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-133"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El objeto </span></span><a href="/en/XMLHttpRequest" title="en/XMLHttpRequest">XMLHttpRequest</a> <span class="goog-gtc-unit" id="goog-gtc-unit-133"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"> ahora expone la respuesta como una matriz de tipo JavaScript, así como una cadena, usando la propiedad específica de Gecko <code>mozResponseArrayBuffer</code>.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-134"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"><a href="/en/DOM/Event/UIEvent/MouseEvent" title="en/DOM/Event/UIEvent/MouseEvent">Los eventos del ratón</a> ahora incluyen una propiedad <code>mozPressure</code> que indica la cantidad de presión sobre los dispositivos de entrada sensibles a la presión compatibles.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-135-goog-gtc-unit-136-goog-gtc-unit-137"><span class="goog-gtc-translatable goog-gtc-from-human">Los métodos {{ domxref("window.URL.createObjectURL()") }} y {{ domxref("window.URL.revokeObjectURL()") }} te permiten crear URLs objeto que hacen referencia a archivos locales.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-138"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El método {{ domxref("DOMImplementation.createHTMLDocument()") }} te permite crear un nuevo documento HTML.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-139"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ domxref("Node.mozMatchesSelector()") }} ahora lanza una excepción <code>SYNTAX_ERR</code> si la cadena de selector especificada no es válida, en lugar de devolver incorrectamente <code>false</code> .</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-140"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Ahora puedes establecer los valores de las propiedades SVG de un elemento utilizando la sintaxis abreviada lo mismo que con CSS. Por ejemplo, <code>element.style.fill = 'lime'</code> .</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-141"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Consulta {{ domxref ("element.style") }} para tener más detalles.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-142"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La raíz del documento tiene ahora <a href="/En/Supporting_private_browsing_mode#Detecting_whether_private_browsing_mode_is_permanent" title="En/Supporting private browsing mode#Detecting whether private browsing mode is permanent">un atributo <code>privatebrowsingmode</code></a> que describe el estado del modo de navegación privada, incluyendo una indicación sobre si la navegación privada es temporal o permanente para la sesión.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-143"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El segundo parámetro del método {{domxref("window.getComputedStyle()")} ahora es opcional, como lo es en todos los navegadores importantes.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-144"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El objeto DOM <a href="/en/DOM/event/StorageEvent" title="en/DOM/event/StorageEvent"><code>StorageEvent</code></a> coincide ahora con la última versión de la especificación.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-145"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El retraso mínimo permitido para el método {{ domxref("window.setTimeout()") }} es ahora una preferencia, <code>dom.min_timeout_value</code> .</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-146"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El evento <a href="/en/Gecko-Specific_DOM_Events#MozAfterPaint" title="en/Gecko-Specific DOM Events#MozAfterPaint"><code>MozAfterPaint</code></a> ya no se envía de forma predeterminada, debido a un problema de seguridad potencial.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-147"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Se puede volver a habilitar mediante el establecimiento de una preferencia.</span></span></li>
</ul><h3><span class="goog-gtc-unit" id="goog-gtc-unit-148"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Seguridad</span></span></h3>
<dl> <dt><a href="/en/Security/CSP" title="en/Security/CSP"><span class="goog-gtc-unit" id="goog-gtc-unit-149"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Política de Seguridad sobre Contenidos (Content Security Policy, CSP)</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-150"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La Política de Seguridad sobre Contenidos (CSP) es una propuesta de Mozilla diseñada para ayudar a los diseñadores y administradores de servidores a especificar cómo interactúa el contenido de sus sitios web.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-151"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El objetivo es ayudar a detectar y mitigar ataques como secuencias de comandos entre sitios e inyección de datos.</span></span></dd> <dt><a href="/en/Security/HTTP_Strict_Transport_Security" title="en/Security/HTTP Strict Transport Security"><span class="goog-gtc-unit" id="goog-gtc-unit-152"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Seguridad Estricta de Transporte HTTP</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-153"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La Seguridad Estricta de Transporte HTTP es una característica de seguridad que permite a un sitio web decirle a los navegadores que sólo deben comunicarse por medio de HTTPS, en lugar de HTTP.</span></span></dd> <dt><a href="/en/The_X-FRAME-OPTIONS_response_header" title="en/The X-FRAME-OPTIONS response header"><span class="goog-gtc-unit" id="goog-gtc-unit-154"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El encabezado de respuesta X-FRAME-OPTIONS</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-155"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El encabezado de respuesta HTTP X-FRAME-OPTIONS introducido en Internet Explorer 8 ya es compatible con Firefox.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-156"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Esto permite que los sitios indiquen si sus páginas se pueden o no utilizar en los marcos y, de ser así, restringirlo o no al mismo origen.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-157"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Cambios en la <a href="/En/User_Agent_Strings_Reference" title="En/User Agent Strings Reference">cadena del agente de usuario</a></span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-158"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Como medio para reducir la cantidad de datos enviados y la entropía en las peticiones HTTP (ver {{ bug ("572650 ") }}), los tokens de idioma y de intensidad criptográficos han sido eliminados de la cadena del agente de usuario.</span></span></dd>
</dl><h3><span class="goog-gtc-unit" id="goog-gtc-unit-159"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">JavaScript</span></span></h3>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-160"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Para una visión general de los cambios implementados en JavaScript 1.8.5, consulta <a href="/en/JavaScript/New_in_JavaScript/1.8.5" title="en/JavaScript/New in JavaScript/1.8.5">Novedades en JavaScript 1.8.5</a> .</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-161"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">JavaScript en Firefox 4 tendrá la adhesión adicional al estándar ECMAScript 5.</span></span></p><h3><span class="goog-gtc-unit" id="goog-gtc-unit-162"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Herramientas para desarrolladores</span></span></h3>
<dl> <dt><a href="/en/Using_the_Web_Console" title="en/Using the Web Console"><span class="goog-gtc-unit" id="goog-gtc-unit-163"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Uso de la Consola Web</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-164"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La herramienta Consola Web es una ayuda de depuración útil para los desarrolladores web y desarrolladores de extensiones por igual.</span></span></dd>
</dl>
<div class="geckoVersionNote">
<p><span class="goog-gtc-unit" id="goog-gtc-unit-165"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ gecko_callout_heading ("2.0") }}</span></span></p>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-166"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La Consola de errores está desactivada por defecto a partir de Firefox 4.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-167"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Puedes volver a habilitarla cambiando la preferencia <code>devtools.errorconsole.enabled</code> a <code>true</code> y reiniciando el navegador.</span></span></p>
</div><h2><span class="goog-gtc-unit" id="goog-gtc-unit-168"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Cambios para desarrolladores de Mozilla y de complementos/agregados</span></span></h2>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-169"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Para obtener consejos útiles sobre la actualización de las extensiones existentes para Firefox 4, puedes ver <a href="/en/Extensions/Updating_extensions_for_Firefox_4" title="en/Extensions/Updating extensions for Firefox 4">Actualizar extensiones para Firefox 4</a> .</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-170"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Hay varios cambios claves que rompen la compatibilidad con los complementos existentes, así que asegúrate de leer este artículo.</span></span></p>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-171"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Si eres un desarrollador de temas, es aconsejable que leas <a href="/en/Theme_changes_in_Firefox_4" title="en/Theme changes in Firefox 4">Cambios en los temas de Firefox 4</a> para entender algunos cambios fundamentales que tendrás que tener en cuenta.</span></span></p>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-172"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Módulos de código </span></span><span class="goog-gtc-unit" id="goog-gtc-unit-172"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">JavaScript</span></span></h3>
<dl> <dt><a href="/en/JavaScript_code_modules/Services.jsm" title="en/JavaScript code modules/Services.jsm">Services.jsm</a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-174"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El módulo de código <code>Services.jsm</code> proporciona captadores que facilitan la obtención de referencias a los servicios de uso común, tales como el servicio de preferencias o el mediador de la ventana, entre otros.</span></span></dd> <dt><a href="/en/JavaScript_code_modules/ctypes.jsm" title="en/JavaScript code modules/ctypes.jsm">JS-ctypes API</a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-176"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La API JS-ctypes permite llamar a funciones de bibliotecas externas compatibles con C sin necesidad de usar XPCOM.</span></span></dd> <dt><a href="/en/Addons/Add-on_Manager" title="en/Addons/Add-on Manager"><span class="goog-gtc-unit" id="goog-gtc-unit-177"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Administrador de complementos/agregados</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-178"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El nuevo administrador proporciona información acerca de los complementos/agregados instalados, asistencia para su gestión y proporciona formas de instalarlos y quitarlos.</span></span></dd> <dt><a href="/en/JavaScript_code_modules/PopupNotifications.jsm" title="en/JavaScript code modules/PopupNotifications.jsm"><span class="goog-gtc-unit" id="goog-gtc-unit-179"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">PopupNotifications.jsm</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-180"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El nuevo módulo de notificaciones emergentes facilita la presentación de notificaciones atractivas, no modales al usuario.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-181"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Puedes ver cómo se utiliza esta API en <a href="/en/Using_popup_notifications" title="en/Using popup notifications">Uso de las notificaciones emergentes</a> .</span></span></dd> <dt><a href="/en/JavaScript_code_modules/Using#Locating_the_code_module" title="en/JavaScript code modules/Using#Locating the code module"><span class="goog-gtc-unit" id="goog-gtc-unit-182"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Cargar módulos de código desde chrome: URLs</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-183"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Ahora puedes cargar los módulos de código JavaScript utilizando <strong>chrome:</strong> URLs, incluso dentro de los archivos JAR.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-184"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">DownloadLastDir.jsm</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-185"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El módulo de código <a></a></span></span><a href="/en/JavaScript_code_modules/DownloadLastDir.jsm" title="en/JavaScript/Code modules/DownloadLastDir.jsm"><code>DownloadLastDir.jsm</code></a><span class="goog-gtc-unit" id="goog-gtc-unit-185"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"><a> proporciona la variable global <code>gDownloadLastDir</code>, que contiene una cadena que puedes utilizar para conocer la ruta del directorio en la que se produjo la última descarga.</a></span></span><a> <span class="goog-gtc-unit" id="goog-gtc-unit-186"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Este módulo se gestiona por ti de cuestiones relacionadas con la navegación privada.</span></span></a></dd><a> </a><dt><a></a><a href="/en/Performance/Measuring_performance_using_the_PerfMeasurement.jsm_code_module" title="en/Performance/Measuring performance using the PerfMeasurement.jsm code module"><span class="goog-gtc-unit" id="goog-gtc-unit-187"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Medición del rendimiento con el módulo de código PerfMeasurement.jsm</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-188"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El módulo de código <a></a></span></span><a href="/en/JavaScript_code_modules/PerfMeasurement.jsm" title="en/JavaScript code modules/PerfMeasurement.jsm"><code>PerfMeasurement.jsm</code></a><span class="goog-gtc-unit" id="goog-gtc-unit-188"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"><a> proporciona una API para medir los datos del rendimiento a nivel de la CPU en código JavaScript.</a></span></span></dd><a>
</a></dl><a>
<h4><span class="goog-gtc-unit" id="goog-gtc-unit-189"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Distintos cambios en módulos de código</span></span></h4>
</a><ul><a> </a><li><a><span class="goog-gtc-unit" id="goog-gtc-unit-190"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El <code>NetUtil.jsm</code> módulo de código ofrece ahora el método </span></span></a><a></a><a href="/en/JavaScript_code_modules/NetUtil.jsm#readInputStreamToString()" title="en/JavaScript/Code modules/NetUtil.jsm#readInputStreamToString()"><code>readInputStreamToString()</code></a><span class="goog-gtc-unit" id="goog-gtc-unit-190"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr"><a>, que te permite leer bytes arbitrarios de una secuencia en una cadena, incluso si la secuencia incluye ceros.</a></span></span></li><a> </a><li><a><span class="goog-gtc-unit" id="goog-gtc-unit-191"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Ahora puedes </span></span></a><a href="/en/JavaScript_code_modules/Using_workers_in_JavaScript_code_modules" title="en/JavaScript code modules/Using workers in JavaScript code modules">utilizar workers en los módulos de código JavaScript</a> .</li>
</ul>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-192"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Cambios en DOM</span></span></h3>
<dl> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-193"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">{{ domxref("ChromeWorker") }}</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-194"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Un nuevo tipo de worker para código privilegiado, lo que te permite utilizar cosas como <a href="/en/js-ctypes" title="en/js-ctypes">js-ctypes</a> de workers en las extensiones y en el código de aplicación.</span></span></dd> <dt><a href="/en/DOM/Touch_events" title="en/DOM/Touch events"><span class="goog-gtc-unit" id="goog-gtc-unit-195"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Eventos touch</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-196"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha añadido la compatibilidad para eventos touch (no estándar), los cuales permiten realizar el seguimiento de varios dedos en movimiento sobre una pantalla táctil al mismo tiempo.</span></span></dd>
</dl>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-197"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">XUL</span></span></h3>
<h4><span class="goog-gtc-unit" id="goog-gtc-unit-198"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Cambios en el elemento tabbrowser</span></span></h4>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-199"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se hicieron varios cambios en el elemento {{ XULElem("tabbrowser") }} que afectan directamente a las extensiones que interactúan con pestañas.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-200"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Además de ser compatibles con las pestañas de aplicaciones, estos cambios también transforman la barra de pestañas en una barra de herramientas estándar, lo cual permite al usuario arrastrar botones de la barra de herramientas hasta la misma.</span></span></p>
<ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-201"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Los eventos TabClose, TabSelect y TabOpen ya no se propagarán al elemento {{ XULElem("tabbrowser") }} ( <code>gBrowser</code> ).</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-202"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Es recomendable que los detectores de eventos para dichos eventos se agreguen a <code>gBrowser.tabContainer</code> en lugar de <code>gBrowser</code> directamente.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-203"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El menú contextual de pestañas ha dejado de ser un niño anónimo de {{ XULElem("tabbrowser") }}.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-204"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Por lo tanto, pueden ser superpuestos directamente con <a href="/en/XUL_Overlays" title="en/XUL Overlays">superposiciones XUL</a> .</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-205"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">También se puede acceder de forma más directa en JavaScript a través de <code>gBrowser.tabContextMenu</code> .</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-206"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Puedes ver <a class=" external" href="http://www.gavinsharp.com/blog/2010/03/31/accessingmodifying-the-firefox-tab-context-menu-from-extensions/" title="http://www.gavinsharp.com/blog/2010/03/31/accessingmodifying-the-firefox-tab-context-menu-from-extensions/">esta entrada de blog</a> para tener más detalles.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-207"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha agregado la nueva propiedad {{ XULProp ("visibleTabs") }}, que te permite obtener una matriz de las pestañas actualmente visibles y, por tanto, determinar qué pestañas son visibles en el conjunto de pestañas actual.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-208"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr">Esto es utilizado por Firefox Panorama, por ejemplo.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-209"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Añadido el nuevo método {{ XULMeth2 ("showOnlyTheseTabs") }}, utilizado por Firefox Panorama.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-210"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Añadido el nuevo método {{ XULMeth2 ("getIcon") }}, que te permite obtener el favicon de una pestaña sin tener que tirar del elemento {{ XULElem ("browser") }}.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-211"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Añadida la nueva propiedad {{ XULProp ("tabbrowser.tabs") }}, que te permite fácilmente obtener una lista de las pestañas en un elemento {{ XULElem ("tabbrowser") }}.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-212"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Los nuevos métodos {{ XULMeth2 ("pinTab") }} y {{ XULMeth2 ("unpinTab") }} permiten anclar y desanclar pestañas (es decir, intercambiarlas entre las pestañas de aplicaciones y las pestañas normales).</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-213"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Añadidos el método {{ XULMeth2("getTabModalPromptBox") }} y el atributo {{ XULAttr("tabmodalPromptShowing") }} para admitir alertas modales sobre pestañas.</span></span></li>
</ul>
<h4><span class="goog-gtc-unit" id="goog-gtc-unit-214"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Cambios en elementos emergentes</span></span></h4>
<ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-215"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El elemento {{ xulelem ("popup") }} ha dejado de ser compatible, así que se recomienda usar {{ xulelem ("menupopup") }} en su lugar.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-216"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">(Si continúas utilizando <code>popup</code> , te encontrarás con problemas técnicos, ya que el elemento no tiene ningún significado especial.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-217"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Por ejemplo, {{ xulelem ("menuseparator") }} puede aparecer transparente cuando se utiliza en un {{ xulelem("popup") }}.)</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-218"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El elemento XUL {{ XULElem("menupopup") }}tiene ahora una propiedad {{ XULProp("triggerNode") }}, que indica el nodo en el que ocurrió el evento que hizo que el elemento emergente se abriera.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-219"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Esto también requiere agregar un parámetro de evento desencadenante al método {{ XULMeth2 ("openPopup") }}.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-220"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Se ha agregado, además, la propiedad {{ XULProp ("anchorNode") }}, que devuelve el anclaje que se especificó cuando se creó el elemento emergente.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-221"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El elemento {{ XULElem ("panel") }} ofrece ahora los atributos {{ XULAttr ("fade") }} y {{ XULAttr ("flip") }}, que se utilizan para configurar el comportamiento de los nuevos paneles de notificación en estilo "flecha".</span></span></li>
</ul>
<h4><span class="goog-gtc-unit" id="goog-gtc-unit-222"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Compatibilidad de XUL remotos eliminada</span></span></h4>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-223"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">XUL remotos ya no es compatible, lo que afecta a los documentos XUL que se sirven a través de HTTP. Del mismo modo, ya no se pueden cargar documentos XUL con <span class="nowiki"><code>file://</code></span> URLs a menos que se cree la preferencia <code>dom.allow_XUL_XBL_for_file</code> y se establezca en <code>true</code> .</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-224"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Hay, sin embargo, una característica de la lista blanca que se puede utilizar para permitir a dominios específicos para cargar XUL remotos. La <a class=" link-https" href="https://addons.mozilla.org/en-US/firefox/addon/235281/" title="https://addons.mozilla.org/en-US/firefox/addon/235281/">extensión Administrador de XUL remotos</a> te permite administrar esta lista blanca.</span></span></p>
<h4><span class="goog-gtc-unit" id="goog-gtc-unit-225"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Distintos cambios en XUL</span></span></h4>
<ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-226"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El atributo {{ xulattr("readonly") }} ahora funciona correctamente para los campos.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-227"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El elemento {{ xulelem("resizer") }} ahora te permite utilizar el atributo {{ xulattr("element") }} especificar un elemento para cambiar el tamaño, en lugar de cambiar el tamaño de la ventana.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-228"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El elemento {{ xulelem ("resizer") }} tiene ahora un atributo {{ xulattr("resizer.type", "type") }} que te permite especificar que el cambio de tamaño es para una ventana en vez de un elemento, para evitar así que el cambio de tamaño de la ventana se dibuje dos veces.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-229"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El atributo "activo" ya no se establece en ventanas XUL activas.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-230"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">En su lugar, puede utilizar la nueva pseudoclase {{ cssxref(":-moz-window-inactive") }} con el fin de asignar distintos estilos a las ventanas de fondo.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-231"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El atributo {{xulattr("emptytext")} se considera obsoleto, así que se debería usar {{xulattr("placeholder")}} en su lugar.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-232"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El elemento {{ xulelem("window") }} ahora ofrece un atributo {{ xulattr("accelerated") }} que cuando se establece en true, permite al administrador de capas de hardware acelerar la ventana.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-233"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El elemento {{ xulelem("stack") }} ahora es compatible con los atributos {{ xulattr("bottom") }} y {{ xulattr("right") }}.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-234"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Los eventos son ahora lanzados durante la personalización {{ xulelem("toolbox") }}, lo que te permite <a href="/en/XUL/Toolbars/Toolbar_customization_events" title="en/XUL/Toolbars/Toolbar customization events">detectar cambios en las barras de herramientas</a> .</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-235"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">El atributo {{ xulattr("alternatingbackground") }} para los elementos {{ xulelem("tree") }} ya no se admite. Se puede usar la seudoclase {{ cssxref(":-moz-tree-row") }} en su lugar.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-236"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El botón de desbordamiento de la Barra de marcadores con chevronPopup anonid ya no es anónimo, sino que tiene un id. del cliente de "PlacesChevron".</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-237"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El elemento {{ xulelem("tabs") }} tiene ahora una propiedad {{ xulprop ("tabbox") }}, en sustitución de la antigua <code>_tabbox</code>, que ha quedado obsoleta (y nunca fue documentada).</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-238"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Los elementos XUL {{ xulelem("window") }} ahora tienen el atributo {{ xulattr("drawintitlebar") }}. Si está establecido en <code>true</code> , el área de contenido de la ventana incluye la barra de título, lo que permite dibujar en ella.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-239"><span class="goog-gtc-translatable goog-gtc-from-human goog-gtc-ph-missing" dir="ltr">Nuevos eventos </span></span><code>TabPinned</code><span class="goog-gtc-unit" id="goog-gtc-unit-239"><span class="goog-gtc-translatable goog-gtc-from-human goog-gtc-ph-missing" dir="ltr"> y </span></span><code>TabUnpinned</code><span class="goog-gtc-unit" id="goog-gtc-unit-239"><span class="goog-gtc-translatable goog-gtc-from-human goog-gtc-ph-missing" dir="ltr"> están disponibles, lo que te permite <a href="/../../../../en/Code_snippets/Tabbed_browser#Notification_when_a_tab_is_pinned_or_unpinned" title="../../../../en/Code snippets/Tabbed browser#Notification when a tab is pinned or unpinned">detectar cuando las pestañas están ancladas y desancladas</a> .</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-240"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">El nuevo<a href="/en/Code_snippets/Tabbed_browser#Notification_when_a_tab%27s_attributes_change" title="en/Code snippets/Tabbed browser#Notification when a tab's attributes change"> evento <code>TabAttrModified</code> </a>es enviado cuando cambian los atributos de una pestaña {{ xulattr("label") }}, {{ xulattr("crop") }}, {{ xulattr("busy") }}, {{ xulattr("image") }}, o {{ xulattr("selected") }}.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-241"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">Los elementos {{ xulelem("tab") }} ahora tienen un atributo {{ xulattr("pinned") }}, lo que te permite determinar si una pestaña se encuentra actualmente anclada.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-242"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr">La clase <code>setDirectionIndicator</code> en los elementos {{ xulelem("tree") }} no ha hecho nada desde hace algún tiempo, por lo que ha dejado de usarse.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-243"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">El elemento {{ XULElem("window") }} tiene ahora un atributo {{ XULAttr("chromemargin") }} que te permite establecer el margen entre chrome y contenido en cada lado de una ventana. Se puede utilizar para dibujar en la barra de título, por ejemplo.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-244"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">El elemento {{ XULElem("window") }} tiene ahora un atributo {{ XULAttr("disablechrome") }} que se utiliza para ocultar la mayor parte del cromo en una ventana cuando éste se está utilizando para mostrar la interfaz de usuario en el navegador, como <code>about:addons</code> .</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-245"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">El elemento {{ XULElem("window") }} tiene ahora un atributo {{ XULAttr("disablefastfind") }}, que te permite desactivar la barra de búsqueda en una ventana cuando el contenido no lo admite.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-246"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Se utiliza, por ejemplo, por el panel de complementos/agregados.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-247"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Las barras de herramientas ahora pueden ser externas a la caja de herramientas, sin dejar de ser considerada un miembro del {{ XULElem("toolbox") }}, estableciendo la propiedad {{ XULProp("toolboxid") }} del {{ XULElem("toolbox") }}.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-248"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Además, el elemento {{ XULElem("toolbox") }} tiene ahora una propiedad {{ XULProp("externalToolbars") }}, que enumera todas las barras de herramientas que se consideran miembros de la caja de herramientas.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-249"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Se ha añadido la compatibilidad para el <a href="/en/XUL/Template_Guide/Template_Logging" title="en/XUL/Template Guide/Template Logging">registro de plantillas de XUL</a> para fines de depuración.</span></span></li>
</ul>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-250"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Cambios en la IU que afectan a los desarrolladores</span></span></h3>
<dl> <dt><a href="/en/The_add-on_bar" title="en/The add-on bar"><span class="goog-gtc-unit" id="goog-gtc-unit-251"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La barra de complementos/agregados</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-252"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La barra de estado ha sido eliminada en favor de la barra de complementos/agregados.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-253"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Tienes que actualizar tu extensión para usarla si has agregado anteriormente la IU a la barra de estado.</span></span></dd>
</dl>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-254"><span class="goog-gtc-translatable goog-gtc-from-tm goog-gtc-from-tm-score-100" dir="ltr" style="">Almacenamiento</span></span></h3>
<h4><span class="goog-gtc-unit" id="goog-gtc-unit-255"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Distintos cambios en la API de almacenamiento</span></span></h4>
<ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-256"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La interfaz de {{ ("mozIStorageBindingParamsArray") }} ahora tiene un atributo de longitud que indica el número de objetos {{ interface("mozIStorageBindingParams") }} de la matriz.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-257"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">{{ ifmethod ("mozIStorageStatement", "bindParameters") }} ahora devuelven un error si está vacía la {{ interface("mozIStorageBindingParamsArray") }} especificada.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-258"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Se ha añadido el método {{ ifmethod ("mozIStorageConnection", "clon") }}, que permite clonar una conexión de base de datos existente.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-259"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Se ha añadido el método {{ ifmethod ("mozIStorageConnection", "asyncClose") }}, que te permite cerrar una conexión de base de datos de forma asincrónica. Especificas que se notifique una devolución de llamada cuando la operación de cierre se ha completado.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-260"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Se ha añadido el método {{ ifmethod ("mozIStorageConnection", "setGrowthIncrement") }} , que permite especificar cuánto se amplía un archivo de base de datos a la vez, con el fin de ayudar a que SQLite reduzca la fragmentación.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-261"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Ahora se informa sobre el error <code>SQLITE_CONSTRAINT</code> como <code>NS_ERROR_STORAGE_CONSTRAINT</code> en lugar de como <code>NS_ERROR_FAILURE</code> .</span></span></li>
</ul>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-262"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">XPCOM</span></span></h3>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-263"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Además de los cambios específicos a los que se hace referencia a continuación, es importante tener en cuenta que ya no hay ninguna interfaz inmovilizada.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-264"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Ninguna de las interfaces está inmovilizada, sin importar lo que la documentación puede decir.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-265"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Vamos a ir actualizando la documentación con el tiempo.</span></span></p>
<dl> <dt><a href="/en/XPCOM/XPCOM_changes_in_Gecko_2.0" title="en/XPCOM/XPCOM changes in Gecko 2.0"><span class="goog-gtc-unit" id="goog-gtc-unit-266"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Cambios XPCOM en Gecko 2.0</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-267"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Detalles sobre los cambios en XPCOM que afectan a la compatibilidad en Firefox 4.</span></span></dd> <dt><a href="/en/Components.utils.getGlobalForObject" title="en/Components.utils.getGlobalForObject"><span class="goog-gtc-unit" id="goog-gtc-unit-268"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Components.utils.getGlobalForObject ()</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-269"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Este nuevo método devuelve el objeto global con el que se asocia un objeto, lo que sustituye a un caso de uso común del ahora eliminado <code>__parent__</code> .</span></span></dd>
</dl>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-270"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Lugares</span></span></h3>
<ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-271"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Los resultados de las consultas sobre lugares ahora pueden ser vistos por varios observadores y las consultas se pueden ejecutar de forma asincrónica.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-272"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Esto significa que ha habido algunos cambios en las interfaces {{ interface("nsINavHistoryResult") }}, {{ interface("nsINavHistoryQueryOptions") }} y {{ interface("nsINavHistoryContainerResultNode") }}</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-273"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">De manera más significativa, la interfaz de {{ interface("nsINavHistoryResultViewer") }} ha cambiado el nombre a {{ interface("nsINavHistoryResultObserver") }}.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-274"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Algunas <a href="/en/Observer_Notifications#Places" title="en/Observer Notifications#Places">notificaciones nuevas</a> se han agregado para permitir que el navegador realice de manera más fiable el seguimiento del proceso de cierre del servicio Lugares.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-275"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">De estos, la mayoría son para uso interno, pero la notificación <code>places-connection-closed</code> está disponible para conocer cuándo el servicio de Lugares ha completado su proceso de cierre.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-276"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">El parámetro de salida del tamaño de la matriz ahora es opcional en varios métodos de Lugares.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-277"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La compatibilidad para <code>&lt;menupopup type="places"&gt;</code> se ha eliminado.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-278"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">En su lugar, es necesario crear y rellenar de forma manual un menú con información de Lugares.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-279"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Véase <a href="/en/Displaying_Places_information_using_views#Menu_view" title="en/Displaying Places information using views#Menu view">Visualización de información de Lugares a través de las vistas: vista de los menús</a> para obtener más detalles.</span></span></li>
</ul>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-280"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Cambios en la interfaz</span></span></h3>
<ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-281"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Las interfaces {{ interface("nsIDocShell") }} and {{ interface("nsIWebBrowser") }} tienen ahora un nuevo atributo <code>isActive</code>, que se utiliza para permitir la optimización de las rutas de código para los documentos que actualmente no están visibles.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-282"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">El método {{ interface("nsIMemory") }} {{ ifmethod("nsIMemory","isLowMemory") }} ha quedado obsoleto.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-283"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Se recomienda usar en su lugar <a href="/en/XPCOM_Interface_Reference/nsIMemory#Low_memory_notifications" title="en/XPCOM Interface Reference/nsIMemory#Low memory notifications">las notificaciones de "presión de memoria"</a> para observar las situaciones de baja memoria.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-284"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La API para controlar redirecciones en los canales HTTP ha cambiado para dejar que se procesen de forma asincrónica.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-285"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Cualquier código que implemente el control de redirecciones a través de {{ ifmethod("nsIChannelEventSink", "onChannelRedirect") }} debe actualizarse y utilizar {{ ifmethod ("nsIChannelEventSink", "asyncOnChannelRedirect") }} en su lugar.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-286"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Éste acepta un controlador de devolución de llamada que se debe llamar cuando una redirección se completa con éxito.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-287"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Se ha añadido el método {{ ifmethod("nsINavHistoryResultObserver", "batching") }}, proporcionando una forma de agrupar en lotes las operaciones de Lugares, reduciendo el número de notificaciones de actualización emitidas, lo cual puede mejorar el rendimiento cuando los observadores están realizando tareas relacionadas (como recargar vistas).</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-288"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La interfaz {{ interface("nsIPref") }}, que hace tiempo quedó obsoleta, ha sido finalmente eliminada.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-289"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Si aún no has cambiado a {{interface("nsIPrefService")}, ahora es el momento.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-290"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Las interfaces {{ interface("nsISessionStore") }} y {{ interface("nsISessionStartup") }} han experimentado cambios para admitir el restablecimiento de sesión a petición.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-291"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Consulta el método {{ ifmethod("nsISessionStore", "restoreLastSession") }}.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-292"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Los métodos {{ interface("nsIPrincipal") }} {{ ifmethod("nsIPrincipal", "subsumes") }} y {{ ifmethod("nsIPrincipal", "checkMayLoad") }}, así como su <code>origin</code> , <code>csp</code> , y los atributos <code>URI</code>, que anteriormente sólo estaban disponibles a partir de código nativo, ya lo están desde script.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-293"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La interfaz {{ interface("nsIPrompt") }} es ahora compatible con las alertas modales sobre pestañas. Puedes ver <a href="/en/Using_tab-modal_prompts" title="en/Using tab-modal prompts">Uso de los indicadores modales sobre pestañas</a> si quieres tener más detalles.</span></span></li>
</ul>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-294"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Administración de la memoria</span></span></h3>
<dl> <dt><a href="/en/Infallible_memory_allocation" title="en/Infallible memory allocation"><span class="goog-gtc-unit" id="goog-gtc-unit-295"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Asignación de memoria infalible</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-296"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Mozilla proporciona ahora asignadores de memoria infalibles que están garantizados para no devolver null.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-297"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Es recomendable leer este artículo para saber cómo funcionan y cómo solicitar explícitamente la asignación de memoria falible frente a infalible.</span></span></dd>
</dl>
<h3><span class="goog-gtc-unit" id="goog-gtc-unit-298"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Otros cambios</span></span></h3>
<ul> <li><span class="goog-gtc-unit" id="goog-gtc-unit-299"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La mayor parte de los recursos contenidos dentro de Firefox se han combinado en un único archivo JAR, <code>omni.jar</code> , lo que mejora el rendimiento de inicio mediante la reducción de E / S. Para obtener más información, lee <a href="/en/About_omni.jar" title="en/About omni.jar">Acerca de omni.jar</a>.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-300"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La preferencia <code>accessibility.disablecache</code> ya no es compatible. Se expuso sólo para fines de depuración y ya no se utiliza.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-301"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Los complementos/agregados cuyo GUID (Identificador Exclusivo Global) cambia de una versión a otra ya se pueden actualizar correctamente.</span></span></li> <li><span class="goog-gtc-unit" id="goog-gtc-unit-302"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Como efecto secundario de la eliminación de directorios específicos de la plataforma en los paquetes de complementos/agregados, ya no se pueden ofrecer diferentes preferencias por defecto para cada plataforma.</span></span></li> <li><span class="goog-gtc-unit"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">De manera predeterminada, las extensiones ya no se </span></span>desempaquetan al ser instaladas, sino que se ejecutan directamente desde el archivo XPI. Pueden usar la propiedad <a href="/en/Install_Manifests#unpack" title="en/Install Manifests#unpack">unpack</a> del <a href="/en/Install_Manifests" title="https://developer.mozilla.org/en/Install_Manifests">install manifest</a> para elegir el comportamiento anterior. Asimismo, las extensiones que usan componentes binarios, DLLs cargadas con ctypes, plugins de búsqueda, diccionarios e iconos de ventana deben especificar que tienen que ser desempaquetadas. </li>
</ul><h2><span class="goog-gtc-unit" id="goog-gtc-unit-303"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Otros cambios</span></span></h2>
<dl> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-304"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Sólo se carga el archivo raíz chrome.manifest </span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-305"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Sólo se carga ahora el archivo raíz <code>chrome.manifest</code>. Si necesitas que se carguen archivos manifest secundarios, puedes utilizar el comando <a></a></span></span><a href="../../../../en/Chrome_Registration#manifest" rel="internal"><code>manifest</code></a><span class="goog-gtc-unit" id="goog-gtc-unit-305"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style=""><a> en tu <code>chrome.manifest</code> raíz para cargarlos.</a></span></span></dd><a> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-306"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Eliminada la compatibilidad para Gopher</span></span></dt> </a><dd><a><span class="goog-gtc-unit" id="goog-gtc-unit-307"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">El protocolo Gopher ya no se admite de forma nativa.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-308"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Con la extensión </span></span></a><a class=" link-https" href="https://addons.mozilla.org/addon/7685/" rel="external nofollow" target="_blank" title="https://addons.mozilla.org/addon/7685/">OverbiteFF</a> <span class="goog-gtc-unit" id="goog-gtc-unit-308"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style=""> podrás continuar la compatibilidad.</span></span></dd> <dt><a href="/en/The_message_manager" title="en/The message manager"><span class="goog-gtc-unit" id="goog-gtc-unit-309"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Control de eventos de proceso de contenido</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-310"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">A fin de hacer compatibles los plugins fuera de proceso y otras funciones de procesos múltiples, se ha introducido una nueva API para admitir el envío de mensajes a través de los procesos.</span></span></dd> <dt><a href="/en/Extensions/Bootstrapped_extensions" title="en/Extensions/Bootstrapped extensions"><span class="goog-gtc-unit" id="goog-gtc-unit-311"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Extensiones de arranque</span></span></a></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-312"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Ahora puedes crear extensiones que pueden instalarse, desinstalarse y actualizarse (o instalar la versión anterior) sin necesidad de reiniciar el explorador.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-313"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Eliminado el plugin predeterminado</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-314"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Se ha eliminado el plugin por defecto. Asimismo, se ha eliminado de manera predeterminada la carpeta de plugins de aplicaciones.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-315"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">La carpeta de plugins de aplicaciones también ha sido eliminada por defecto, sin embargo la compatibilidad para la instalación de plugins a través de esta carpeta continúa.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-316"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Mira {{ bug("533891") }}.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-317"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">El Administrador de complementos/agregados sustituye al Administrador de extensiones</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-318"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">{{ interface("nsIExtensionManager") }} ha sido sustituido por <a href="/en/Addons/Add-on_Manager/AddonManager" title="en/Addons/Add-on Manager/AddonManager">AddonManager</a> .</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-319"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Ya no se utilizan los HWNDs secundarios</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-320"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Firefox ya no crea HWNDs secundarios para su uso interno en Windows.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-321"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Si has escrito una extensión que utiliza código nativo para manipular estos HWNDs, no te funcionará en Firefox 4.</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-322"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Tendrás que dejar de usar HWNDs o ajustar el código que se basa en HWNDs a un plugin <a href="/en/NPAPI" title="en/NPAPI">NPAPI</a>. Eso es mucho trabajo, por lo que si puedes evitar el uso de HWNDs directamente, hazlo.</span></span></dd> <dt><span class="goog-gtc-unit" id="goog-gtc-unit-323"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Cambios de gestos</span></span></dt> <dd><span class="goog-gtc-unit" id="goog-gtc-unit-324"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Los tres gestos de pasar los dedos por los trackpads se han sustituido, de manera predeterminada, por abrir y cerrar la vista Firefox Panorama (TabCandy).</span></span> <span class="goog-gtc-unit" id="goog-gtc-unit-325"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">Para volver a cambiar a los comandos anteriores de desplazamiento hacia arriba y desplazamiento hacia abajo, abre about: config y ajusta <code>browser.gesture.swipe.down</code> a <code>cmd_scrollBottom</code> y <code>browser.gesture.swipe.up</code> a <code>cmd_scrollTop</code> .</span></span></dd>
</dl><h2><span class="goog-gtc-unit" id="goog-gtc-unit-326"><span class="goog-gtc-translatable goog-gtc-from-tm goog-gtc-from-tm-score-100" dir="ltr" style="">Consulta también</span></span></h2>
<ul> <li><a href="/en/Firefox_3.6_for_developers" title="en/Firefox 3.6 for developers"><span class="goog-gtc-unit" id="goog-gtc-unit-327"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Firefox 3.6 para desarrolladores</span></span></a></li> <li><a class="internal" href="/En/Firefox_3.5_for_developers" title="En/Firefox 3.5 for developers"><span class="goog-gtc-unit" id="goog-gtc-unit-328"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Firefox 3.5 para desarrolladores</span></span></a></li> <li><a class="internal" href="/en/Firefox_3_for_developers" title="en/Firefox 3 for developers"><span class="goog-gtc-unit" id="goog-gtc-unit-329"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Firefox 3 para desarrolladores</span></span></a></li> <li><a class="internal" href="/en/Firefox_2_for_developers" title="en/Firefox 2 for developers"><span class="goog-gtc-unit" id="goog-gtc-unit-330"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Firefox 2 para desarrolladores</span></span></a></li> <li><a class="internal" href="/en/Firefox_1.5_for_developers" title="en/Firefox 1.5 for developers"><span class="goog-gtc-unit" id="goog-gtc-unit-331"><span class="goog-gtc-translatable goog-gtc-from-mt" dir="ltr" style="">Firefox 1.5 para desarrolladores</span></span></a></li>
</ul>
<p><span class="goog-gtc-unit" id="goog-gtc-unit-332"><span class="goog-gtc-translatable goog-gtc-from-human" dir="ltr" style="">{{ languages( { "en":"en/Firefox_4_for_developers", "de": "de/Firefox_4_für_Entwickler", "ja": "ja/Firefox_4_for_developers", "zh-tw": "zh_tw/Firefox_4_for_developers"} ) }}</span></span></p></dl></dl>
Revertir a esta revisión