Firefox 3.6 für Entwickler
Firefox 3.6 bietet Unterstützung für neue und sich entwickelnde Webstandards, erhöhte Leistung und insgesamt ein besseres Erlebnis für Webnutzer und Entwickler. Diese Seite enthält Links zu Artikeln über die neuen Fähigkeiten von Firefox 3.6.
Für Website- und Anwendungsentwickler
CSS
- Verwendung von Verläufen
-
Firefox 3.6 unterstützt die vorgeschlagenen Eigenschaften
-moz-linear-gradient
und-moz-radial-gradient
fürbackground
. - Mehrere Hintergründe
-
Die Eigenschaft
background
(sowiebackground-color
,background-image
,background-position
,background-repeat
, undbackground-attachment
) unterstützt jetzt mehrere Hintergründe. Dadurch können Sie mehrere Hintergründe angeben, die in Schichten übereinander gerendert werden. - Mozilla-spezifische Medienfeatures
-
Medienfeatures wurden für Mozilla-spezifische Systemmetriken hinzugefügt, sodass Media Queries verwendet werden können, um sicherer die Verfügbarkeit von Funktionen wie Touch-Unterstützung zu überprüfen.
- Skalierung von Hintergrundbildern
-
Die Eigenschaft
background-size
aus dem CSS 3 Backgrounds and Borders Entwurf wird jetzt unter dem Namen-moz-background-size
unterstützt. - Unterstützung des WOFF-Schriftformats
-
@font-face
unterstützt jetzt das WOFF-Download-Schriftformat. - Pointer-Events
-
Die Eigenschaft
pointer-events
erlaubt es, anzugeben, ob ein Element das Ziel von Mauspointer-Ereignissen sein kann oder nicht.
Verschiedene CSS-Änderungen
- Die Längeinheit
rem
aus CSS3 Values and Units wird jetzt unterstützt. Firefox-Bug 472195 image-rendering
wird für Bilder, Hintergrundbilder, Videos und Leinwände unterstützt. Firefox-Bug 423756text-align
:end wird jetzt unterstützt. Firefox-Bug 299837- DOM-Änderungen an Elementen, die die Tabellenanzeigetypten
display
verwenden, funktionieren jetzt viel besser. - Hinzugefügt wurden
:-moz-locale-dir(ltr)
und:-moz-locale-dir(rtl)
, um die Anpassung von Layouts zu erleichtern, je nachdem, ob die Benutzeroberfläche in einer links-nach-rechts- oder rechts-nach-links-Sprache angezeigt wird. Firefox-Bug 478416 - Unterstützung für die Pseudoklasse
:indeterminate
, diecheckbox
input
Elemente auswählt, derenindeterminate
Attributtrue
ist. - Plugins mit Fenstern werden nicht mehr in CSS-Transformationen angezeigt, da sie vom Kompositor nicht richtig transformiert werden können.
HTML
- Verwendung von Dateien aus Webanwendungen
-
Unterstützung für die neue HTML5 File API wurde in Gecko hinzugefügt, was es Webanwendungen ermöglicht, auf lokale Dateien zuzugreifen, die vom Benutzer ausgewählt wurden. Dies umfasst die Unterstützung für die Auswahl mehrerer Dateien mit dem
input type="file"
HTML-Element, das jetzt das neuemultiple
Attribut unterstützt. - HTML5-Video unterstützt Posterframes
-
Das
poster
Attribut wird jetzt für dasvideo
Element unterstützt, wodurch Inhalt ein Posterframe spezifizieren kann, das angezeigt wird, bis das Video zu spielen beginnt. -
HTML
input
Elemente der Typencheckbox
undradio
unterstützen jetzt die indeterminate Eigenschaft, die einen dritten "unbestimmten" Zustand ermöglicht. - Glättung von Canvas-Bildern kann gesteuert werden
-
Die neue Eigenschaft
mozImageSmoothingEnabled
kann verwendet werden, um das Glätten von Bildern beim Skalieren incanvas
Elementen ein- oder auszuschalten. - Asynchrone Skriptausführung
-
Durch Festlegen des
async
Attributs an einemscript
Element wird dasscript
das Laden oder Anzeigen des restlichen Seiteninhalts nicht blockieren. 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 Sprachmerkmalen aus dem ECMAScript 5 Standard hinzufügt:
Date.parse()
kann jetzt ISO 8601-Daten wie YYYY-MM-DD analysieren.- Die
prototype
Eigenschaft von Funktionsinstanzen ist nicht mehr aufzählbar.
DOM
- Web Worker können sich jetzt selbst beenden
-
Workers unterstützen jetzt die Methode
nsIWorkerScope.close()
, die es ihnen ermöglicht, sich selbst zu beenden. - Drag & Drop unterstützt jetzt Dateien
-
Das
DataTransfer
Objekt, das an Drag-Listener übergeben wird, beinhaltet jetzt eine Liste der Dateien, die gezogen wurden. - Überprüfen, ob ein Element einem bestimmten CSS-Selektor entspricht
-
Die neue Methode
element.mozMatchesSelector
ermöglicht es Ihnen, festzustellen, ob ein Element einem bestimmten CSS-Selektor entspricht. Siehe Firefox-Bug 518003. - Erkennung der Geräteausrichtung
-
Inhalte können jetzt die Ausrichtung des Geräts erkennen, wenn es über ein unterstütztes Beschleunigungsmesser verfügt, durch das
MozOrientation
Ereignis. Firefox 3.6 unterstützt den Beschleunigungsmesser in Mac-Laptops. - Erkennung von Änderungen der Dokumentbreite und -höhe
-
Das neue
MozScrollAreaChanged
Ereignis wird ausgelöst, wann immer 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; das wurde in der neuesten Version von MooTools behoben, also stellen Sie sicher, dass Sie aktualisieren. - Die neuen Eigenschaften
mozInnerScreenX
undmozInnerScreenY
auf DOM-Fenstern wurden hinzugefügt; diese geben die Bildschirmkoordinaten der oberen linken Ecke des Anzeigeausschnitts des Fensters zurück. - Das neue Attribut
mozScreenPixelsPerCSSPixel
auf dernsIDOMWindowUtils
Schnittstelle, nur für Chrome zugänglich, bietet einen Umrechnungsfaktor zwischen CSS-Pixeln und Bildschirm-Pixeln; dieser Wert kann basierend auf dem Zoomlevel des Inhalts variieren. - Wenn sich der Dokumentfragmentbezeichner (der Teil nach dem "#" Zeichen) der URI der Seite ändert, wird ein neues
hashchange
Ereignis an die Seite gesendet. Siehe dashashchange
Ereignis für weitere Informationen. Firefox-Bug 385434 - Das Attribut
document.readyState
wird jetzt unterstützt. Firefox-Bug 347174 - Unterstützung für HTML5's
element.classList
, um einfachere Handhabung des class-Attributs zu erlauben. Firefox-Bug 501257 localName
undnamespaceURI
in HTML-Dokumenten verhalten sich jetzt wie in XHTML-Dokumenten:localName
wird in Kleinbuchstaben zurückgegeben undnamespaceURI
für HTML-Elemente ist"http://www.w3.org/1999/xhtml"
.element.getElementsByTagNameNS
ändert nicht mehr seine Argumente in Kleinbuchstaben, so dass Großbuchstaben im Argument zu Trefferversagen bei HTML-Elementen führen. Das gleiche gilt fürdocument.getElementsByTagNameNS
.- Unterstützung wurde für Adressen in Geolocation über die
nsIDOMGeoPositionAddress
Schnittstelle und einem neuen Feld innsIDOMGeoPosition
hinzugefügt. - Die Funktion
window.getComputedStyle
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 XPath Implementierung 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önnen. Plugin-Entwickler sollten Aktualisieren von Plugins für Firefox 3.6 lesen.
Neue Funktionen
- Erkennung der Geräteausrichtung
-
Inhalte können jetzt die Ausrichtung des Geräts erkennen, wenn es ein unterstütztes Beschleunigungsmesser hat, durch das
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 der Fenster in der Taskleiste in 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 Ergebnisse aufgenommen werden sollen oder nicht. - Die neue Methode
nsIFaviconService.expireAllFavicons()
wurde zurnsIFaviconService
Schnittstelle hinzugefügt.
Speicher
- Ortsbezogene Sortierung von Daten wird jetzt von der Storage-API unterstützt
-
Gecko 1.9.2 fügte mehrere neue Sortiermethoden hinzu, um optimierte Sortierung (Kollation) von Ergebnissen unter Verwendung ortsbezogener Techniken zu bieten.
- Eigenschaften auf einer Anweisung können jetzt aufgezählt werden
-
Sie können jetzt eine
for...in
Enumeration verwenden, um alle Eigenschaften auf einer Anweisung aufzulisten. - Das Verhalten von
getParameterIndex
inmozIStorageStatement
hat sich zwischen 3.5 und 3.6 geändert. -
Siehe Firefox-Bug 528166 für Details.
- Asynchron mehrere Parametersätze binden und eine Anweisung ausführen.
-
Siehe Firefox-Bug 490085 für Details. Dokumentation folgt in Kürze.
Einstellungen
- Das
nsIContentPrefService
Interface 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.
- Leichte Themes
-
Firefox 3.6 unterstützt leichte Themes; dies sind einfach zu erstellende Themes, die einen Hintergrund auf die obere (URL-Leiste und Schaltflächenleiste) und untere (Statusleiste) Teile des Browserfensters anwenden. Dies ist eine Integration der bestehenden Personas Theme-Architektur in Firefox.
Verschiedenes
- Firefox lädt keine Drittanbieterkomponenten mehr, die im internen Komponentenverzeichnis installiert sind. Dies hilft, die Stabilität zu gewährleisten, indem verhindert wird, dass fehlerhafte Drittanbieterkomponenten ausgeführt werden. Entwickler, die auf diese Weise Komponenten installieren, müssen ihre Komponenten als XPI-Pakete umpacken, damit 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 die Dateichrome.manifest
verwenden. Siehe Firefox-Bug 492008.- Unterstützung für das automatische Verbergen 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 im
nsISound
hinzugefügt. Siehe Firefox-Bug 502799. - Die Syntax für die
nsITreeView
MethodennsITreeView.canDrop()
undnsITreeView.drop()
wurde 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 zum Einrasten des Mauspointers auf die Standard-Schaltfläche eines Dialog- oder Assistentenfensters unter Windows hinzugefügt, siehe Firefox-Bug 76053. Dies wird automatisch durch das Dialog- und Assistentenelement verarbeitet. Wenn allerdings eine XUL-Anwendung ein Fenster über das
window
Element erstellt und es eine Standard-Schaltfläche hat, muss esnsIDOMChromeWindow.notifyDefaultButtonLoaded
während desonload
Ereignishandlers des Fensters aufrufen. - Das
nsILocalFileMac
Interface 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 zu einem Ausgabestrom. - Das neue
openLocationLastURL.jsm
Code-Modul erleichtert das Lesen und Ändern des gespeicherten URLs des "Open Location" Dialogs unter Berücksichtigung des privaten Browsing-Modus. - Unter Windows berichtet das
nsIScreen
Interface jetzt 24-Bit Farbtiefen pro Pixel, wenn der Grafiktreiber 32 Bits beansprucht, da 24 Bits die tatsächliche Zahl der Farbpixel genauer repräsentieren. - Menüleisten können jetzt unter Windows versteckt werden, mit dem neuen
autohide
Attribut auf dem<xul:toolbar>
XUL-Element. - Die Methoden
loadOneTab
undaddTab
akzeptieren jetzt einen neuenrelatedToCurrent
Parameter und erlauben zudem, dass die Parameter nach Name angegeben werden können, da beinahe alle Parameter optional sind. - Die "versteckt" Eigenschaft wird in Installationsmanifesten nicht mehr unterstützt; es ist nicht mehr möglich, zu verhindern, dass Nutzer Add-Ons im Add-On-Manager-Fenster sehen.
- Die Komponente
@mozilla.org/webshell;1
existiert nicht mehr; Sie müssen@mozilla.org/docshell;1
stattdessen verwenden. - Sie können sich jetzt bei der update-timer Kategorie registrieren, um Timer-Ereignisse zu planen, ohne dass das Objekt instanziiert werden muss, das letztendlich vom Timer aufgerufen wird; es wird stattdessen bei Bedarf instanziiert. Siehe
nsIUpdateTimerManager.registerTimer()
für Details. - Die Funktion
NPN_GetValue()
bietet keinen Zugriff mehr auf XPCOM durch die VariablenwerteNPNVserviceManager
,NPNVDOMelement
, undNPNVDOMWindow
. Dies ist Teil der Arbeit, um Plugins in separaten Prozessen in einer zukünftigen Version von Gecko auszuführen. - Plugins sind über XPCOM (IDL) Schnittstellen nicht mehr skriptfähig, NPRuntime ist die API, die zum Skripten von Plugins verwendet wird, und
NPP_GetValue()
wird nicht mehr mit den WertenNPPVpluginScriptableInstance
oderNPPVpluginScriptableIID
aufgerufen. Dies ist Teil der Arbeit, um Plugins in separaten Prozessen in einer zukünftigen Version von Gecko auszuführen.
Für Firefox/Gecko-Entwickler
Bestimmte Änderungen sind nur dann interessant, wenn Sie an den Interna von Firefox selbst arbeiten.
Zusammengeführte Schnittstellen
Die folgenden Schnittstellen wurden zusammengeführt:
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 obsolet 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 verschoben:
nsIDOMNSCSS2Properties
befindet sich nun in seiner eigenen IDL-Datei (dom/interfaces/css/nsIDOMCSS2Properties.idl
).nsIUpdateTimerManager
befindet sich nun in seiner eigenen IDL-Datei.
Eine große Anzahl von Schnittstellen wurde verschoben. Siehe Verschobene Schnittstellen in Firefox 3.6 für eine vollständige Liste.
Andere Schnittstellenänderungen
Die folgenden Änderungen wurden vorgenommen:
- Das
nsIPlugin
Interface erbt jetzt vonnsISupports
statt vonnsIFactory
. - Das
nsIPluginHost
Interface erbt jetzt vonnsISupports
statt vonnsIFactory
. - Das
nsIFrame
Interface erbt jetzt vonnsQueryFrame
statt vonnsISupports
. - Die Methode
getPaletteInfo()
dernsIDeviceContext
wurde entfernt, da sie nie implementiert wurde. - Die Methode
reportPendingException()
dernsIScriptContext
wurde entfernt, da sie nicht mehr verwendet wurde.
Änderungen im Accessibility-Code
- Das
EVENT_REORDER
Accessibility-Ereignis wird jetzt gesendet, wenn sich die Kinder von Frames und iframes ändern, sowie wenn sich die Kinder des Hauptdokuments ändern. Siehe Firefox-Bug 420845. - Die Methode
nsIAccessibleTable.selectRow()
entfernt jetzt korrekt jede aktuelle Auswahl, bevor sie die angegebene Zeile auswählt.