Firefox 3.6 für Entwickler
Firefox 3.6 bietet Unterstützung für neue und sich entwickelnde Webstandards, verbesserte Leistung und insgesamt ein besseres Erlebnis für Webnutzer und Entwickler. Diese Seite enthält Links zu Artikeln, die die neuen Fähigkeiten von Firefox 3.6 behandeln.
Für Website- und Anwendungsentwickler
CSS
- Using gradients
-
Firefox 3.6 unterstützt die vorgeschlagenen
-moz-linear-gradient
und-moz-radial-gradient
Eigenschaften fürbackground
. - Multiple backgrounds
-
Die
background
-Eigenschaft (sowiebackground-color
,background-image
,background-position
,background-repeat
, undbackground-attachment
) unterstützt nun mehrere Hintergründe. Dies ermöglicht es, mehrere Hintergründe anzugeben, die übereinander in Schichten angezeigt werden. - Mozilla-specific media features
-
Medienmerkmale wurden für Mozilla-spezifische Systemmetriken hinzugefügt, sodass Media Queries sicherer zur Überprüfung der Verfügbarkeit von Funktionen wie Touch-Unterstützung verwendet werden können.
- Scaling background images
-
Die
background-size
-Eigenschaft aus dem CSS 3 Backgrounds and Borders draft wird nun unter dem Namen-moz-background-size
unterstützt. - WOFF font support
-
@font-face
unterstützt nun das herunterladbare Schriftdateiformat WOFF. - Pointer events
-
Die
pointer-events
-Eigenschaft ermöglicht es dem Inhalt, anzugeben, ob ein Element das Ziel von Mausezeigerereignissen sein darf oder nicht.
Verschiedene CSS-Änderungen
- Die
rem
Längeneinheit wird jetzt unterstützt. Firefox-Bug 472195 image-rendering
wird für Bilder, Hintergrundbilder, Videos und Canvas unterstützt. Firefox-Bug 423756text-align
:end wird jetzt unterstützt. Firefox-Bug 299837- DOM-Änderungen an Elementen, die die Tabelle
display
Typen verwenden, funktionieren jetzt viel besser. - Hinzugefügt
:-moz-locale-dir(ltr)
und:-moz-locale-dir(rtl)
um es einfacher zu machen, Layouts anzupassen, je nachdem, ob die Benutzeroberfläche in einer von links nach rechts oder von rechts nach links verlaufenden Sprache angezeigt wird. Firefox-Bug 478416 - Unterstützung für die
:indeterminate
Pseudoklasse, die aufcheckbox
input
Elemente angewendet wird, derenindeterminate
Attributtrue
ist. - Plugins mit Fenster werden nicht mehr in CSS-Transformationen angezeigt, da sie vom Kompositor nicht richtig transformiert werden können.
HTML
- Using files from web applications
-
Unterstützung für die neue HTML5 File API wurde zu Gecko hinzugefügt, was es Webanwendungen ermöglicht, auf lokale Dateien zuzugreifen, die vom Benutzer ausgewählt wurden. Dies beinhaltet die Unterstützung für die Auswahl mehrerer Dateien mit dem
input type="file"
HTML-Element und seinem neuenmultiple
Attribut. - HTML5-Video unterstützt Posterframes
-
Das
poster
Attribut wird jetzt für dasvideo
Element unterstützt, sodass Inhalte ein Posterframe anzeigen können, bis das Video zu spielen beginnt. - Kontrollkästchen und Optionsfelder unterstützen die
indeterminate
Eigenschaft -
HTML
input
Elemente der Typencheckbox
undradio
unterstützen jetzt dieindeterminate
Eigenschaft, die einen dritten, "unbestimmten" Zustand ermöglicht. - Bildglättung auf Canvas kann gesteuert werden
-
Die neue
mozImageSmoothingEnabled
Eigenschaft kann verwendet werden, um die Bildglättung beim Skalieren incanvas
Elementen ein- oder auszuschalten. - Asynchrone Skriptausführung
-
Durch das Setzen des
async
Attributs auf einscript
Element blockiert dasscript
nicht das Laden oder die Anzeige des Rests der Seite. Stattdessen wird dasscript
ausgeführt, sobald es heruntergeladen ist.
JavaScript
Gecko 1.9.2 führt JavaScript 1.8.2 ein, das eine Reihe von Sprachfunktionen aus dem ECMAScript 5 Standard hinzufügt:
Date.parse()
kann jetzt ISO 8601-Daten wie JJJJ-MM-TT analysieren.- Die
prototype
Eigenschaft von Funktionsinstanzen ist nicht mehr aufzählbar.
DOM
- Web-Arbeiter können sich nun selbst beenden
-
Arbeiter unterstützen jetzt die
nsIWorkerScope.close()
Methode, die es ihnen ermöglicht, sich selbst zu beenden. - Drag & Drop unterstützt jetzt Dateien
-
Das
DataTransfer
Objekt, das an Drag-Listener übergeben wird, enthält jetzt eine Liste von Dateien, die gezogen wurden. - Überprüfen, ob ein Element einem bestimmten CSS-Selektor entspricht
-
Die neue
element.mozMatchesSelector
Methode ermöglicht es, zu bestimmen, ob ein Element einem bestimmten CSS-Selektor entspricht. Siehe Firefox-Bug 518003. - Geräteorientierung erkennen
-
Inhalte können nun die Orientierung des Geräts erkennen, wenn es über einen unterstützten Beschleunigungsmesser verfügt, mit dem
MozOrientation
Ereignis. Firefox 3.6 unterstützt den Beschleunigungsmesser in Mac-Laptops. - Änderungen der Breite und Höhe des Dokuments erkennen
-
Das neue
MozScrollAreaChanged
Ereignis wird ausgelöst, wenn sich diescrollWidth
und/oderscrollHeight
Eigenschaften des Dokuments ändern.
Verschiedene DOM-Änderungen
- Die
getBoxObjectFor()
Methode wurde entfernt, da sie nicht standardisiert war und noch mehr nicht standardisierte Dinge dem Web ausgesetzt hat. Siehe Firefox-Bug 340571. Dies betrifft auch MooTools, das diesen Aufruf zur Gecko-Erkennung verwendet; dies wurde in der neuesten Version von MooTools behoben, also aktualisieren Sie es unbedingt. - Die neuen
mozInnerScreenX
undmozInnerScreenY
Eigenschaften in DOM-Fenstern wurden hinzugefügt; diese geben die Bildschirmkoordinaten der oberen linken Ecke des Ansichtsbereichs des Fensters zurück. - Das neue
mozScreenPixelsPerCSSPixel
Attribut auf dernsIDOMWindowUtils
Schnittstelle, nur für Chrome zugänglich, bietet einen Umrechnungsfaktor zwischen CSS-Pixeln und Bildschirm-Pixeln; dieser Wert kann je nach Zoomstufe des Inhalts variieren. - Wenn sich der Dokumentfragment-Identifikator der URI der Seite (der Teil nach dem "#" (Raute-Zeichen)) ändert, wird ein neues
hashchange
Ereignis zur Seite gesendet. Weitere Informationen finden Sie imhashchange
Ereignis. Firefox-Bug 385434 - Das Attribut
document.readyState
wird jetzt unterstützt. Firefox-Bug 347174 - Unterstützung für HTML5's
element.classList
, um den Umgang mit dem Klassenattribut zu erleichtern. Firefox-Bug 501257 localName
undnamespaceURI
in HTML-Dokumenten verhalten sich jetzt wie in XHTML-Dokumenten:localName
gibt in Kleinbuchstaben zurück undnamespaceURI
für HTML-Elemente ist"http://www.w3.org/1999/xhtml"
.element.getElementsByTagNameNS
kleinschreibt sein Argument nicht mehr, sodass Großbuchstaben im Argument dazu führen, dass Übereinstimmungen mit HTML-Elementen fehlschlagen. Dasselbe gilt fürdocument.getElementsByTagNameNS
.- Unterstützung wurde für Adressen in der Geolokalisierung über die
nsIDOMGeoPositionAddress
Schnittstelle hinzugefügt, und ein neues Feld wurde zunsIDOMGeoPosition
hinzugefügt. - Die
window.getComputedStyle
Funktion gibt jetzt Anführungszeichen innerhalb vonurl()
Werten zurück.
XPath
- Die
choose()
XPath-Methode wird jetzt unterstützt -
Die
choose()
Methode wird jetzt von unserer Implementierung von XPath unterstützt.
Für XUL- und Add-on-Entwickler
Wenn Sie ein Erweiterungsentwickler sind, sollten Sie mit dem Lesen von Aktualisieren von Erweiterungen für Firefox 3.6 beginnen, das einen hilfreichen Überblick über Änderungen bietet, die Ihre Erweiterung betreffen könnten. Plugin-Entwickler sollten Aktualisieren von Plugins für Firefox 3.6 lesen.
Neue Funktionen
- Erkennen der Geräteorientierung
-
Inhalte können nun die Orientierung des Geräts erkennen, wenn es über einen unterstützten Beschleunigungsmesser verfügt, mit dem
MozOrientation
Ereignis. Firefox 3.6 unterstützt den Beschleunigungsmesser in Mac-Laptops. - Überwachung der HTTP-Aktivität
-
Sie können jetzt HTTP-Transaktionen überwachen, um Anfragen und Antworten in Echtzeit zu beobachten.
- Arbeiten mit der Windows-Taskleiste
-
Es ist jetzt möglich, das Erscheinungsbild von Fenstern in der Taskleiste unter Windows 7 oder später anzupassen. Dies ist standardmäßig in Firefox 3.6 deaktiviert.
Places
- Places-Abfragen können jetzt das
redirectsMode
Attribut auf dernsINavHistoryQueryOptions
Schnittstelle verwenden, um anzugeben, ob umgeleitete Seiten in den Ergebnissen enthalten sein sollen oder nicht. - Die neue
nsIFaviconService.expireAllFavicons()
Methode wurde dernsIFaviconService
Schnittstelle hinzugefügt.
Storage
- Lokalbezogene Sortierung von Daten wird jetzt von der Storage-API unterstützt
-
Gecko 1.9.2 hat mehrere neue Sortiermethoden hinzugefügt, um eine optimierte Sortierung von Ergebnissen mit lokalbewussten Techniken bereitzustellen.
- Eigenschaften auf einer Anweisung können jetzt aufgezählt werden
-
Sie können jetzt eine
for...in
Aufzählung verwenden, um alle Eigenschaften auf einer Anweisung aufzulisten. - Das Verhalten von
mozIStorageStatement's getParameterIndex
hat sich zwischen 3.5 und 3.6 geändert. -
Siehe Firefox-Bug 528166 für weitere Details.
- Mehrere Parametersätze asynchron binden und eine Anweisung ausführen.
-
Siehe Firefox-Bug 490085 für weitere Details. Dokumentation folgt in Kürze.
Preferences
- Die
nsIContentPrefService
Schnittstelle hat zwei neue Methoden:nsIContentPrefService.getPrefsByName()
undnsIContentPrefService.removePrefsByName()
.
Themes
Siehe Aktualisieren von Themes für Firefox 3.6 für eine Liste der Änderungen im Zusammenhang mit Themes.
- Lightweight themes
-
Firefox 3.6 unterstützt Lightweight-Themes; dies sind leicht zu erstellende Themes, die einen Hintergrund auf die obere (URL-Leiste und Schaltflächenleiste) und untere (Statusleiste) von Browserfenstern anwenden. Dies ist eine Integration der bestehenden Personas Theme-Architektur in Firefox.
Verschiedenes
- Firefox wird keine Drittanbieterkomponenten mehr laden, die in seinem internen Komponentenverzeichnis installiert sind. Dies hilft, die Stabilität zu gewährleisten, indem verhindert wird, dass fehlerhafte Drittanbieterkomponenten ausgeführt werden. Entwickler, die Komponenten auf diese Weise installieren, müssen ihre Komponenten als XPI-Pakete neu verpacken, sodass sie als Standard-Add-ons installiert werden können.
contents.rdf
wird nicht mehr zum Registrieren von Chrome in Erweiterungen unterstützt. Sie müssen jetzt diechrome.manifest
Datei verwenden. Siehe Firefox-Bug 492008.- Unterstützung für das automatische Ausblenden der Menüleiste hinzugefügt. Siehe Firefox-Bug 477256.
- Unterstützung für das
container-live-role
Attribut zu Objekten hinzugefügt. Siehe Firefox-Bug 391829. - Die
tabs-closebutton
Bindung wurde entfernt. Siehe Firefox-Bug 500971. - Unterstützung für das Abspielen von Sounds basierend auf Ereignissen, die aufgetreten sind, zu
nsISound
hinzugefügt. Siehe Firefox-Bug 502799. - Die Syntax für die
nsITreeView
MethodennsITreeView.canDrop()
undnsITreeView.drop()
hat sich geändert, um die neue Drag & Drop API zu unterstützen, die in Gecko 1.9 eingeführt wurde. Siehe Firefox-Bug 455590. - Unterstützung für das Einrasten des Mauszeigers auf die Standardschaltfläche des Dialogs oder Assistenten in Windows hinzugefügt. Siehe Firefox-Bug 76053. Dies wird automatisch von Dialog- und Assistentenelementen verarbeitet. Wenn jedoch eine XUL-Anwendung ein Fenster mit dem
window
Element erstellt und es eine Standardschaltfläche besitzt, muss esnsIDOMChromeWindow.notifyDefaultButtonLoaded
während desonload
Ereignishandlers des Fensters aufrufen. - Die
nsILocalFileMac
Schnittstelle hat zwei Methoden entfernt:setFileTypeAndCreatorFromMIMEType()
undsetFileTypeAndCreatorFromExtension()
. - Das neue
NetUtils.jsm
Code-Modul bietet eine einfach zu verwendende Methode zum asynchronen Kopieren von Daten von einem Eingabestrom in einen Ausgabestrom. - Das neue
openLocationLastURL.jsm
Code-Modul erleichtert das Lesen und Ändern des Werts der "Open Location"-Dialogbox des gespeicherten URL, während der private Browsing-Modus ordnungsgemäß berücksichtigt wird. - Unter Windows meldet die
nsIScreen
Schnittstelle jetzt 24-Bit pro Pixel Bildschirmtiefen, wenn der Grafiktreiber 32 Bit angibt, da 24 genauer die tatsächlich verwendete Anzahl von Bildschirmfarben pixel darstellt. - Menüleisten können jetzt unter Windows ausgeblendet werden, indem das neue
autohide
Attribut auf dem<xul:toolbar>
XUL-Element verwendet wird. - Die
loadOneTab
undaddTab
Methoden akzeptieren jetzt einen neuenrelatedToCurrent
Parameter und erlauben zudem die Angabe der Parameter nach Name, da fast alle Parameter optional sind. - Die "hidden" Eigenschaft wird in Installationsmanifesten nicht mehr unterstützt; es ist nicht mehr möglich, zu verhindern, dass der Benutzer Add-ons im Add-on-Manager-Fenster sieht.
- Die
@mozilla.org/webshell;1
Komponente existiert nicht mehr; Sie müssen@mozilla.org/docshell;1
verwenden. - Sie können sich jetzt bei der Kategorie "update-timer" registrieren, um Timer-Ereignisse zu planen, ohne das Objekt instanziieren zu müssen, auf das der Timer schließlich zugreifen wird; es wird stattdessen instanziiert, wenn es benötigt wird. Details finden Sie unter
nsIUpdateTimerManager.registerTimer()
. - Die
NPN_GetValue()
Funktion bietet keinen Zugriff mehr auf XPCOM über die VariablenwerteNPNVserviceManager
,NPNVDOMelement
undNPNVDOMWindow
. Dies ist Teil der Arbeit zur Ausführung von Plugins in separaten Prozessen in einer zukünftigen Version von Gecko. - Plugins sind nicht mehr über XPCOM (IDL-) Schnittstellen skriptfähig, NPRuntime ist die API, die verwendet werden muss, um Plugins skriptfähig zu machen, und
NPP_GetValue()
wird nicht mehr mit dem WertNPPVpluginScriptableInstance
oderNPPVpluginScriptableIID
aufgerufen. Dies ist Teil der Arbeit zur Ausführung von Plugins in separaten Prozessen in einer zukünftigen Version von Gecko.
Für Firefox/Gecko-Entwickler
Bestimmte Änderungen sind nur dann wirklich interessant, wenn Sie an den internen Elementen von Firefox selbst arbeiten.
Zusammengeführte Schnittstellen
Die folgenden Schnittstellen wurden zusammengefasst:
nsIPluginTagInfo2
wurde innsIPluginTagInfo
zusammengeführt.nsIPluginInstanceInternal
,nsIPPluginInstancePeer
,nsIPluginInstancePeer1
,nsIPluginInstancePeer2
, undnsIPluginInstancePeer3
wurden alle innsIPluginInstance
zusammengeführt.nsIWindowlessPlugInstPeer
wurde innsIPluginInstance
zusammengeführt.nsIPluginManager
undnsIPluginManager2
wurden innsIPluginHost
zusammengeführt.
Entfernte Schnittstellen
Die folgenden Schnittstellen wurden vollständig entfernt, da sie ungenutzt, nicht implementiert oder veraltet waren:
nsIFullScreen
nsIDOMSVGListener
nsIDOMSVGZoomListener
nsIInternetConfigService
nsIDKey
nsIEventHandler
nsIJRILiveConnectPIPeer
nsIJRILiveConnectPlugin
nsIScriptablePlugin
nsIClassicPluginFactory
nsIFileUtilities
Verschobene Schnittstellen
Die folgenden Schnittstellen wurden aus ihren vorherigen IDL-Dateien in neue verlagert:
nsIDOMNSCSS2Properties
befindet sich jetzt in seiner eigenen IDL-Datei (dom/interfaces/css/nsIDOMCSS2Properties.idl
).nsIUpdateTimerManager
befindet sich jetzt in seiner eigenen IDL-Datei.
Eine Vielzahl von Schnittstellen wurde verschoben. Siehe Verschobene Schnittstellen in Firefox 3.6 für eine vollständige Liste.
Weitere Schnittstellenänderungen
Die folgenden Änderungen wurden vorgenommen:
- Die
nsIPlugin
Schnittstelle erbt jetzt vonnsISupports
anstelle vonnsIFactory
. - Die
nsIPluginHost
Schnittstelle erbt jetzt vonnsISupports
anstelle vonnsIFactory
. - Die
nsIFrame
Schnittstelle erbt jetzt vonnsQueryFrame
anstelle vonnsISupports
. - Die
nsIDeviceContext
MethodegetPaletteInfo()
wurde entfernt, da sie nie implementiert wurde. - Die
nsIScriptContext
MethodereportPendingException()
wurde entfernt, da sie nicht mehr verwendet wurde.
Änderungen im Barrierefreiheitscode
- Das
EVENT_REORDER
Barrierefreiheit-Ereignis wird jetzt ausgelöst, wenn sich die Kinder von Frames und IFrames ändern, ebenso wie wenn sich die Kinder des Hauptdokuments ändern. Siehe Firefox-Bug 420845. - Der
nsIAccessibleTable.selectRow()
entfernt jetzt korrekt jede aktuelle Auswahl, bevor die angegebene Zeile ausgewählt wird.