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 Web-Benutzer und Entwickler. Diese Seite bietet Links zu Artikeln, die die neuen Funktionen von Firefox 3.6 behandeln.
Für Website- und Anwendungsentwickler
>CSS
- Verwendung von Gradienten
-
Firefox 3.6 unterstützt jetzt die vorgeschlagenen
-moz-linear-gradientund-moz-radial-gradientEigenschaften fürbackground. - Mehrere Hintergründe
-
Die
backgroundEigenschaft (sowiebackground-color,background-image,background-position,background-repeat, undbackground-attachment) unterstützt jetzt mehrere Hintergründe. Dies ermöglicht es Ihnen, mehrere Hintergründe anzugeben, die übereinander in Schichten gerendert werden. - Mozilla-spezifische Medienmerkmale
-
Medienmerkmale 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
background-sizeEigenschaft aus dem CSS 3 Backgrounds and Borders Draft wird jetzt unter dem Namen-moz-background-sizeunterstützt. - WOFF-Schriftunterstützung
-
@font-faceunterstützt jetzt das WOFF-Download-Schriftdateiformat. - Pointer-Events
-
Die
pointer-eventsEigenschaft ermöglicht es, anzugeben, ob ein Element Ziel von Mauszeigerereignissen sein kann oder nicht.
Verschiedene CSS-Änderungen
- Die
remLängeneinheit wird jetzt unterstützt. Firefox Bug 472195 image-renderingwird 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 Tabellentypen
displayverwenden, funktionieren jetzt viel besser. - Es wurden
:-moz-locale-dir(ltr)und:-moz-locale-dir(rtl)hinzugefügt, um es einfacher zu machen, Layouts basierend darauf anzupassen, ob die Benutzeroberfläche in einer Links-nach-Rechts- oder Rechts-nach-Links-Lokale angezeigt wird. Firefox Bug 478416 - Unterstützung für die
:indeterminatePseudo-Klasse wurde hinzugefügt, diecheckboxinputElemente auswählt, derenindeterminateAttributtrueist. - Fenstergestützte Plugins werden nicht mehr in CSS-Transformationen angezeigt, da sie vom Kompositor nicht korrekt transformiert werden können.
HTML
- Verwendung von Dateien aus Webanwendungen
-
Unterstützung für die neue HTML5 File API wurde zu Gecko hinzugefügt, was es Webanwendungen ermöglicht, auf vom Benutzer ausgewählte lokale Dateien zuzugreifen. Dies schließt die Unterstützung für die Auswahl mehrerer Dateien über das
input type="file"HTML-Element mit dem neuenmultipleAttribut ein. - HTML5-Video unterstützt Posterrahmen
-
Das
posterAttribut wird jetzt für dasvideoElement unterstützt, sodass Inhalte einen Posterrahmen angeben können, der angezeigt wird, bis das Video beginnt zu spielen. -
HTML
inputElemente vom Typcheckboxundradiounterstützen jetzt die indeterminate Eigenschaft, die einen dritten, "unbestimmten" Zustand ermöglicht. - Bildglättung auf Leinwand kann gesteuert werden
-
Die neue
mozImageSmoothingEnabledEigenschaft kann verwendet werden, um die Bildglättung beim Skalieren incanvasElementen ein- und auszuschalten. - Asynchrone Skriptausführung
-
Durch Festlegen des
asyncAttributs auf einemscriptElement blockiert dasscriptnicht mehr das Laden oder die Anzeige des restlichen Seiteninhalts. Stattdessen wird dasscriptausgeführt, sobald es heruntergeladen wurde.
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 YYYY-MM-DD analysieren.- Die
prototypeEigenschaft von Funktionsinstanzen ist nicht mehr aufzählbar.
DOM
- Web-Arbeiter können sich jetzt 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
DataTransferObjekt, das Drag-Listenern bereitgestellt wird, enthält jetzt eine Liste der Dateien, die gezogen wurden. - Überprüfen, ob ein Element einem angegebenen CSS-Selektor entspricht
-
Die neue
Node.mozMatchesSelectorMethode lässt Sie feststellen, ob ein Element einem angegebenen CSS-Selektor entspricht. Siehe Firefox Bug 518003. - Geräteausrichtung erkennen
-
Inhalte können jetzt die Ausrichtung des Geräts erkennen, wenn es über einen unterstützten Beschleunigungsmesser verfügt, indem das
MozOrientationEreignis verwendet wird. Firefox 3.6 unterstützt den Beschleunigungsmesser in Mac-Laptops. - Erkennung von Änderungen in Dokumentenbreite und -höhe
-
Das neue
MozScrollAreaChangedEreignis wird ausgelöst, wann immer sich diescrollWidthund/oderscrollHeightEigenschaften des Dokuments ändern.
Verschiedene DOM-Änderungen
- Die
getBoxObjectFor()Methode wurde entfernt, da sie nicht standardisiert war und noch mehr nicht standardisierte Elemente im Web enthüllt hat. Siehe Firefox Bug 340571. Dies betrifft auch MooTools, das diesen Aufruf zur Erkennung von Gecko verwendet; dies wurde in der neuesten Version von MooTools behoben, daher sollten Sie sicherstellen, dass Sie aktualisieren. - Die neuen
mozInnerScreenXundmozInnerScreenYEigenschaften auf DOM-Fenstern wurden hinzugefügt; sie geben die Bildschirmkoordinaten der oberen linken Ecke des Ansichtsbereichs des Fensters zurück. - Das neue
mozScreenPixelsPerCSSPixelAttribut auf dernsIDOMWindowUtilsSchnittstelle, nur für Chrome zugänglich, bietet einen Umrechnungsfaktor zwischen CSS-Pixeln und Bildschirmpixeln; dieser Wert kann basierend auf dem Zoomlevel des Inhalts variieren. - Wenn sich der Dokumentfragmentbezeichner (der Teil nach dem "#" (Rautezeichen) Charakter) der URI der Seite ändert, wird ein neues
hashchangeEreignis an die Seite gesendet. Siehe dashashchangeEreignis für weitere Informationen. Firefox Bug 385434 - Das Attribut
document.readyStatewird jetzt unterstützt. Firefox Bug 347174 - Unterstützung für HTML5's
element.classListfür eine einfachere Handhabung des Klassenattributs. Firefox Bug 501257 localNameundnamespaceURIin HTML-Dokumenten verhalten sich jetzt wie in XHTML-Dokumenten:localNamegibt Kleinbuchstaben zurück undnamespaceURIfür HTML-Elemente ist"http://www.w3.org/1999/xhtml".element.getElementsByTagNameNSwandelt sein Argument nicht mehr in Kleinbuchstaben um, sodass ASCII-Großbuchstaben im Argument bei HTML-Elementen zu Fehlschlägen führen. Das gleiche gilt fürdocument.getElementsByTagNameNS.- Unterstützung für Adressen in Geolokalisierung über die
nsIDOMGeoPositionAddressSchnittstelle und ein neues Feld imnsIDOMGeoPositionwurde hinzugefügt. - Die
window.getComputedStyleFunktion gibt jetzt Zitate 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 darüber bietet, welche Änderungen Ihre Erweiterung betreffen könnten. Plug-in-Entwickler sollten Aktualisieren von Plug-ins für Firefox 3.6 lesen.
Neue Funktionen
- Geräteausrichtung erkennen
-
Inhalte können jetzt die Ausrichtung des Geräts erkennen, wenn es über einen unterstützten Beschleunigungsmesser verfügt, indem das
MozOrientationEreignis verwendet wird. Firefox 3.6 unterstützt den Beschleunigungsmesser in Mac-Laptops. - Überwachung von HTTP-Aktivitäten
-
Sie können HTTP-Transaktionen jetzt in Echtzeit überwachen, um Anfragen und Antworten zu beobachten.
- Arbeiten mit der Windows-Taskleiste
-
Es ist jetzt möglich, das Erscheinungsbild von Fenstern in der Taskleiste unter Windows 7 oder höher anzupassen. Dies ist standardmäßig in Firefox 3.6 deaktiviert.
Places
- Places-Anfragen können nun das
redirectsModeAttribut auf dernsINavHistoryQueryOptionsSchnittstelle verwenden, um festzulegen, ob umgeleitete Seiten in die Ergebnisse einbezogen werden sollen oder nicht. - Die neue Methode
nsIFaviconService.expireAllFavicons()wurde zurnsIFaviconServiceSchnittstelle hinzugefügt.
Speicher
- Locale-sensitives Vergleichen von Daten wird jetzt von der Storage API unterstützt
-
In Gecko 1.9.2 wurden mehrere neue Vergleichsmethoden hinzugefügt, um eine optimierte Sortierung der Ergebnisse mit localesensitiven Techniken zu ermöglichen.
- Eigenschaften auf einer Anweisung können jetzt aufgezählt werden
-
Sie können jetzt eine
for...inAufzählung verwenden, um alle Eigenschaften auf einer Anweisung aufzuzählen. - Das Verhalten von mozIStorageStatement's getParameterIndex hat sich zwischen 3.5 und 3.6 geändert.
-
Siehe Firefox Bug 528166 für Details.
- Asynchrones Binden mehrerer Parametersätze und Ausführen einer Anweisung.
-
Siehe Firefox Bug 490085 für Details. Dokumentation folgt in Kürze.
Einstellungen
- Die
nsIContentPrefServiceSchnittstelle hat zwei neue Methoden:nsIContentPrefService.getPrefsByName()undnsIContentPrefService.removePrefsByName().
Themes
Siehe Aktualisieren von Themes für Firefox 3.6 für eine Liste von Änderungen im Zusammenhang mit Themes.
- Lightweight-Themes
-
Firefox 3.6 unterstützt Lightweight-Themes; dies sind einfach zu erstellende Themes, die einen Hintergrund auf die oberen (URL-Leiste und Schaltflächenleiste) und unteren (Statusleiste) Bereiche von Browserfenstern anwenden. Dies ist eine Integration der bestehenden Personas Thema-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 neu verpacken, damit sie als Standard-Add-ons installiert werden können.
contents.rdfwird zur Registrierung von Chrome in Erweiterungen nicht mehr unterstützt. Sie müssen stattdessen diechrome.manifestDatei 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-roleAttribut zu Objekten hinzugefügt. Siehe Firefox Bug 391829. - Das
tabs-closebuttonBinding wurde entfernt. Siehe Firefox Bug 500971. - Unterstützung hinzugefügt zu
nsISoundfür das Abspielen von Sounds basierend auf Ereignissen, die aufgetreten sind. Siehe Firefox Bug 502799. - Die Syntax für die
nsITreeViewMethodennsITreeView.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 hinzugefügt, um den Mauscursor auf die Standardtaste eines Dialogs oder Assistenten unter Windows zu schnappen, siehe Firefox Bug 76053. Dies wird automatisch durch das Dialog- und Assistenten-Element verarbeitet. Wenn eine XUL-Anwendung jedoch ein Fenster mit dem
windowElement erstellt und es eine Standardtaste hat, muss siensIDOMChromeWindow.notifyDefaultButtonLoadedwährend desonloadEreignishandlers des Fensters aufrufen. - Die
nsILocalFileMacSchnittstelle hat zwei Methoden entfernt:setFileTypeAndCreatorFromMIMEType()undsetFileTypeAndCreatorFromExtension(). - Das neue
NetUtils.jsmCode-Modul bietet eine einfache zu verwendende Methode zum asynchronen Kopieren von Daten von einem Eingabestrom zu einem Ausgabestrom. - Das neue
openLocationLastURL.jsmCode-Modul erleichtert das Lesen und Ändern des Wertes des im Dialogfeld "Öffnen in..." gespeicherten URLs unter Berücksichtigung des privaten Modus. - Unter Windows berichtet die
nsIScreenSchnittstelle jetzt 24-Bit pro Pixel Farbtiefen, wenn der Grafiktreiber 32 Bits beansprucht, da 24 genauer die tatsächliche Anzahl der verwendeten Farb-Pixel darstellt. - Menüs können auf Windows jetzt ausgeblendet werden, unter Verwendung des neuen
autohideAttributs auf dem<xul:toolbar>XUL-Element. - Die
loadOneTabundaddTabMethoden akzeptieren jetzt ein neuesrelatedToCurrentParameter und außerdem dürfen die Parameter nach Namen angegeben werden, da fast alle Parameter optional sind. - Die "verborgen" Eigenschaft wird im Installationsmanifest nicht mehr unterstützt; es ist nicht mehr möglich, zu verhindern, dass der Benutzer Add-ons im Add-ons-Manager-Fenster sieht.
- Die
@mozilla.org/webshell;1Komponente existiert nicht mehr; Sie müssen@mozilla.org/docshell;1verwenden. - Sie können sich jetzt beim Update-Timer-Kategorie registrieren, um Timerereignisse zu planen, ohne das Objekt zu instanziieren, das der Timer schließlich aufrufen wird; es wird stattdessen instanziiert, wenn es benötigt wird. Siehe
nsIUpdateTimerManager.registerTimer()für Details. - Die
NPN_GetValue()Funktion stellt keinen Zugriff mehr auf XPCOM durch die VariablenwerteNPNVserviceManager,NPNVDOMelement, undNPNVDOMWindowbereit. Dies ist Teil der Arbeit, um Plugins in einem zukünftigen Gecko separat auszuführen. - Plugins sind nicht mehr durch XPCOM (IDL) Schnittstellen skriptfähig, NPRuntime ist die API, die zur Erstellung skriptfähiger Plugins verwendet wird, und
NPP_GetValue()wird nicht mehr mit den WertenNPPVpluginScriptableInstanceoderNPPVpluginScriptableIIDaufgerufen. Dies ist Teil der Arbeit, um Plugins in einem zukünftigen Gecko separat auszuführen.
Für Firefox/Gecko-Entwickler
Bestimmte Änderungen sind nur dann wirklich interessant, wenn Sie an den internen Komponenten von Firefox selbst arbeiten.
Zusammengeführte Schnittstellen
Die folgenden Schnittstellen wurden zusammengelegt:
nsIPluginTagInfo2wurde innsIPluginTagInfointegriert.nsIPluginInstanceInternal,nsIPPluginInstancePeer,nsIPluginInstancePeer1,nsIPluginInstancePeer2, undnsIPluginInstancePeer3wurden alle innsIPluginInstanceintegriert.nsIWindowlessPlugInstPeerwurde innsIPluginInstanceintegriert.nsIPluginManagerundnsIPluginManager2wurden innsIPluginHostintegriert.
Entfernte Schnittstellen
Die folgenden Schnittstellen wurden vollständig entfernt, da sie ungenutzt, nicht implementiert oder veraltet waren:
nsIFullScreennsIDOMSVGListenernsIDOMSVGZoomListenernsIInternetConfigServicensIDKeynsIEventHandlernsIJRILiveConnectPIPeernsIJRILiveConnectPluginnsIScriptablePluginnsIClassicPluginFactorynsIFileUtilities
Verschobene Schnittstellen
Die folgenden Schnittstellen wurden von ihren vorherigen IDL-Dateien in neue Dateien verschoben:
nsIDOMNSCSS2Propertiesbefindet sich jetzt in seiner eigenen IDL-Datei (dom/interfaces/css/nsIDOMCSS2Properties.idl).nsIUpdateTimerManagerbefindet sich jetzt 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.
Sonstige Schnittstellenänderungen
Die folgenden Änderungen wurden vorgenommen:
- Die
nsIPluginSchnittstelle erbt jetzt vonnsISupportsstatt vonnsIFactory. - Die
nsIPluginHostSchnittstelle erbt jetzt vonnsISupportsstatt vonnsIFactory. - Die
nsIFrameSchnittstelle erbt jetzt vonnsQueryFramestatt vonnsISupports. - Die
nsIDeviceContextMethodegetPaletteInfo()wurde entfernt, da sie nie implementiert wurde. - Die
nsIScriptContextMethodereportPendingException()wurde entfernt, da sie nicht mehr verwendet wurde.
Änderungen im Accessibility-Code
- Das accessibility event
EVENT_REORDERwird jetzt gesendet, wenn sich die Kinder von Frames und Iframes ändern, sowie wenn sich die Kinder des Hauptdokuments ändern. Siehe Firefox Bug 420845. - Die
nsIAccessibleTable.selectRow()entfernt jetzt korrekt jede aktuelle Auswahl, bevor die angegebene Zeile ausgewählt wird.