Mnenhy 
| resources: | Home Download & Installation Documentation Bugs Source Code Version History Spinoffs |
|---|
Der Chrome-Manager (SeaMonkey, Mozilla, Thunderbird, Firefox)
Chrome
Der Begriff Chrome bezeichnet bei Mozilla und seinen Derivaten die Gesamtheit der grafischen Benutzeroberfläche. Bei näherer Betrachtung lassen sich drei weitere Unterteilungen treffen:
- Inhalt (content):
Welche Oberflächenelemente werden verwendet? Wie verhalten sie sich? - Aussehen (skin):
Wie sind diese Oberflächenelemente gestaltet? Welche Schriften und Farben werden verwendet? - Sprache (locale):
In welcher Sprache werden angezeigte Texte dargestellt?
Mozilla erlaubt die Installation von Erweiterungspaketen für Chrome, sogenannten Addons oder Extensions. Diese Pakete werden entweder mozillaweit für alle oder aber profilbasiert für nur einzelne Benutzer installiert. Sie bestehen zumeist aus mehreren Chrome-Paketen, die jeweils einen der drei obigen Chrome-Aspekte beschreiben.
Der Chrome-Manager kann nun den Installationsort, den Aktivierungszustand und den Archivstatus solcher Chrome-Pakete manipulieren: Pakete können zwischen Profil- und Anwendungsverzeichnis verschoben, temporär deaktiviert oder gar komplett deinstalliert werden. Zugehörige .jar-Dateien kann man in lokale Verzeichnisse entpacken und von dort nutzen. Dies vereinfacht das Austesten neuer Addons ohne eigenen Deinstallierer oder das Ausprobieren neuer Hacks und Modifikationen beträchtlich.
Dieses Feature ist nichts für Zaghafte: die Mozilla-Installation kann irreparabel beschädigt werden, wenn man nicht genau weiß, was man da macht! Diese Seite bitte sorgfältig durchlesen!
Die Chrome-Registry
Die aus den vorinstallierten und nachgerüsteten Chrome-Paketen gebildete Mozilla-Oberfläche wird in einer Sammlung verschiedener Dateien verwaltet, die zusammen die Chrome-Registry bilden:
- Im Verzeichnis $MozillaProgrammVerzeichnis/chrome:
- installed-chrome.txt:
Je eine Zeile pro Chrome-Paket, die die Art des Pakets und den Pfad zu seiner Manifest-Datei contents.rdf beschreibt. Wird diese Datei verändert (zum Beispiel durch Hinzufügen neuer Einträge), werden die Informationen der Manifest-Datei der chrome.rdf und dem overlayinfo-Verzeichnis hinzugefügt. Das Löschen von Zeilen führt nicht zum Löschen des Chrome-Paketes!
Beispiel:skin,install,url,jar:resource:/chrome/classic.jar!/skin/classic/messenger/ content,install,url,resource:/chrome/mnenhy/content/mnenhy/ locale,profile,url,jar:file:///Q:/if93afhv.slt/chrome/messageidfinder.jar!/locale/de-DE/messageidfinder/ skin,install,select,classic/1.0 - chrome.rdf:
Pro mozillaweit installiertem Chrome-Paket ein Eintrag, eingebettet in eine hierarchische Struktur. Der Eintrag entspricht im wesentlichen dem entsprechenden Inhalt der Manifest-Datei, hinzu kommen Querverweise zu anderen Paketen, die von diesem Paket benutzt werden.
Beispiel:<RDF:Description RDF:about="urn:mozilla:package:chatzilla" c:baseURL="jar:resource:/chrome/chatzilla.jar!/content/chatzilla/" c:locType="install" c:displayName="Chatzilla" c:author="mozilla.org" c:authorURL="http://www.mozilla.org/projects/rt-messaging/chatzilla/" c:description="A simple, straightforward Internet Relay Chat (IRC) client." c:localeVersion="1.7a" c:extension="true" c:settingsURL="" c:name="chatzilla" /> - overlayinfo:
Mozilla erlaubt das Ersetzen von Oberflächen-Elementen und -Stylesdurch andere. Die dazu notwendigen Informationen werden hier den Manifest-Dateien den mozillaweit installierter Pakete entnommen und, getrennt nach betroffenen Dateien, in diesem Verzeichnis gespeichert.
Beispiel:<RDF:Seq RDF:about="chrome://communicator/content/tasksOverlay.xul"> <RDF:li>chrome://editor/content/editorTasksOverlay.xul</RDF:li> <RDF:li>chrome://wallet/content/walletTasksOverlay.xul</RDF:li> <RDF:li>chrome://venkman/content/venkman-overlay.xul</RDF:li> <RDF:li>chrome://inspector/content/tasksOverlay.xul</RDF:li> <RDF:li>chrome://mnenhy-chroman/content/mnenhy-chroman-tasksOverlay.xul</RDF:li> <RDF:li>chrome://mnenhy-regrig/content/mnenhy-regrig-tasksOverlay.xul</RDF:li> </RDF:Seq>
- installed-chrome.txt:
- Im Verzeichnis $ProfilVerzeichnis/chrome:
- chrome.rdf:
Wie oben unter $MozillaProgrammVerzeichnis, nur für profilinstallierte Pakete. Zusätzlich wird hier noch die benutzerabhängige Zuordnung von Sprach- und Aussehenspaketen zu den Inhaltspaketen gespeichert.
Beispiel:<RDF:Description RDF:about="urn:mozilla:package:venkman"> <c:selectedLocale RDF:resource="urn:mozilla:locale:en-US:venkman"/> </RDF:Description> - overlayinfo:
Wie oben unter $MozillaProgrammVerzeichnis, nur für profilinstallierte Pakete.
- chrome.rdf:
- Im $ProfilVerzeichnis:
- XUL.mfasl bzw. XUL.mfl:
Letzter Stand der zusammengesetzten Oberfläche, so daß diese nicht bei jedem Programmstart neu berechnet werden muß.
- XUL.mfasl bzw. XUL.mfl:
Das Chrome-Manager-Fenster
Der Chrome-Manager liest die Informationen der Chrome-Registry ein und baut daraus eine hierarchische Baumstruktur aller installierten Chrome-Pakete auf:
Alle änderbaren Werte können entweder durch Mausklicks auf die entsprechenden Icons, über das Kontextmenüber oder über die Tastatur manipuliert werden; geänderte Zeilen werden gelb hinterlegt.
Bis auf den Aktivierungsstatus und den Archivstatus können Änderungen nur vorgenommen werden, wenn Schreibrechte für das Mozilla-Chrome-Verzeichnis bestehen; der Chrome-Manager zeigt dies durch (Admin-Modus) im Fenster-Titel an.
Paket
Diese Spalte enthält die Baumstruktur der Chrome-Registry:
+- Inhaltspakete
| +- <Paketname>
| | +- Eigenschaften
| | | +- <Eigenschaft_1>
| | | ...
| | +- Skins
| | | +- <Skin_1>
| | | ...
| | +- Sprachen
| | +- <Sprache_1>
| | ...
| ...
+- Skins
| +- <Skin_1>
| | +- Eigenschaften
| | | +- <Eigenschaft_1>
| | | ...
| | +- Pakete
| | +- <Paketname>
| | | +- Eigenschaften
| | | +- <Eigenschaft_1>
| | | ...
| | ...
| ...
+- Sprachen
+- <Sprache_1>
| +- Eigenschaften
| | +- <Eigenschaft_1>
| | ...
| +- Pakete
| +- <Paketname>
| | +- Eigenschaften
| | +- <Eigenschaft_1>
| | ...
| ...
...
Dabei korrespondiert jeder Eintrag Pakete → <Paketname_x> → Skins → <Skin_y> mit einem entsprechenden Eintrag Skins → <Skin_y> → Pakete → <Paketname_x>; gleiches gilt für die Sprachen.
Änderungen an einem Eintrag werden mit einem kleinen Fähnchen am Paketnamen markiert und können mit einem Klick auf das Fähnchen oder mit der Taste [Backspace ←] vollständig zurückgenommen werden.
Wert
In dieser Spalte werden die Werte der verschiedenen Eigenschaften angezeigt, zum Beispiel die Version eines Skin-Paketes oder die URN eines Sprachpaketes.
Ist der Wert eine URN (zum Beispiel urn:mozilla:locale:de-DE:mnenhy), kann durch einen Doppelklick oder die Taste [G] zu diesem anderen Paket gewechselt werden.
Status
Diese Spalte zeigt den Aktivierungsstatus eines Paketes an:
- aktiv (normaler Text; Häkchen):
Das Paket ist installiert und wird auch genutzt. - inaktiv (fetter, roter Text;
Punkt):
Das Paket ist installiert, wird aber nicht genutzt. - (gelöscht) (grauer Text):
Das Paket wird mit Beenden des Chrome-Managers gelöscht.
Der Aktivierungsstatus wird durch Anklicken des Häkchens oder vermittels der [Leertaste] umgestellt. Ist kein Icon sichtbar, sind keine Änderungen möglich.
Das Löschen eines Paketes ist nur über [Entf] möglich.
Ort
Diese Spalte zeigt den Speicherort eines Paketes an:
- Anwendung (normaler Text; Diamant):
Das Paket ist im Mozilla-Chrome-Verzeichnis installiert. - Profil (unterstrichener,
grüner Text; Punkt):
Das Paket ist im Chrome-Verzeichnis des Benutzerprofils installiert.
Der Speicherort wird durch Anklicken des Diamanten oder vermittels der Taste [L] umgestellt. Ist kein Icon sichtbar, sind keine Änderungen möglich.
Jar
Chrome-Pakete liegen in der Regel als .jar-Dateien, mithin also als Zip-Archive, im Chrome-Verzeichnis des Installationsortes vor, können aber auch als Verzeichnisstrukturen angelegt und somit einfacher manipuliert werden. Diese Spalte zeigt den Archivstatus eines Paketes an:
- Diamant (normaler Text):
Das Paket wird als .jar-Archiv genutzt. - Punkt (kursiver, blauer Text):
Das Paket wird als Verzeichnisstruktur genutzt.
Der Archivstatus wird durch Anklicken des Diamanten oder vermittels der Taste [J] umgestellt. Ist kein Icon sichtbar, sind keine Änderungen möglich.
Schaltflächen
Folgende Schaltflächen stehen zur Verfügung:
- Entpacken:
Das zum Paket gehörende .jar-Archiv wird in die entsprechende Verzeichnisstruktur entpackt, die Art der Nutzung bleibt aber unverändert. Eventuell bereits vorhandene Dateien werden dabei überschrieben.
Diese Funktion wird sofort ausgeführt und kann nicht rückgängig gemacht werden! - Putzen:
Die einem Paket entsprechende Verzeichnisstruktur wird gelöscht, die Art der Nutzung bleibt aber unverändert.
Diese Funktion wird sofort ausgeführt und kann nicht rückgängig gemacht werden! Zudem kann die Mozilla-Installation irreparabel beschädigt werden! - Bereinigen:
Die Chrome-Registry wird aus den noch aktuellen Daten neu erzeugt. Die im Chrome-Manager vorgenommenen Änderungen werden hierbei nicht berücksichtigt.
Diese Funktion wird sofort ausgeführt und kann nicht rückgängig gemacht werden! - OK:
Nach einer Sicherheitsabfrage werden die gewünschten Änderungen vorgenommen und der Chrome-Manager und Mozilla beendet.
Das Deaktivieren von Paketen, die beim Programmstart benötigt werden, kann Mozilla dauerhaft beschädigen! - Abbrechen:
Der Chrome-Manager wird beendet, ohne die vorgenommenen Änderungen auszuführen. - Hilfe:
Diese Seite wird angezeigt. Ebenso bei der Taste [F1].
Hilfe
Wie verschiebe ich ein Addon?
Das Verschieben eines Addons funktioniert natürlich nur, wenn man auch die notwendigen Schreibrechte für das Mozilla-Chrome-Verzeichnis besitzt.
Folgende Schritte sind dann notwendig:
- Alle Inhaltspakete des Addons bestimmen.
- Für jedes Inhaltspaket X:
- Den Speicherort wie gewünscht einstellen.
- Für alle Einträge Pakete → X → Skins →
<Skin_y> den entsprechenden Eintrag Skins → <Skin_y> →
Pakete → X ebenfalls auf den gewünschten
Speicherort einstellen.
Tip: URN in der Wertspalte doppelklicken. - Für alle Einträge Pakete → X → Sprachen →
<Sprache_y> den entsprechenden Eintrag Sprachen → <Sprache_y>
→ Pakete → X ebenfalls auf den gewünschten
Speicherort einstellen.
Tip: URN in der Wertspalte doppelklicken.
- Chrome-Manager mit OK verlassen.
Da sich mitunter mehrere Addons ein .jar-Archiv teilen, kann dies dazu führen, daß hinterher dasselbe .jar-Archiv in beiden Chrome-Verzeichnissen existiert!
Wie entferne ich ein Addon (vorübergehend)?
Addons können nicht nur vollständig entfernt, sondern auch vorübergehend deaktiviert werden. Dazu sind bei Addons im Mozilla-Chrome-Verzeichnis natürlich die entsprechenden Schreibrechte notwendig, profilinstallierte Addons können immer entfernt werden.
Folgende Schritte sind notwendig:
- Alle Inhaltspakete des Addons bestimmen.
- Für jedes Inhaltspaket:
- Den Aktivierungsstatus wie gewünscht einstellen.
- Chrome-Manager mit OK verlassen.
Da sich mitunter mehrere Addons ein .jar-Archiv teilen, kann dies dazu führen, daß das .jar-Archiv nicht nicht gelöscht wird!
Mein Chrome-Verzeichnis wird immer dicker!
Bei Änderungen an der Chrome-Registry sichert der Chrome-Manager alle relevanten Dateien im Unterverzeichnis .mnenhy.bak des entsprechenden Chrome-Verzeichnisses. Wird ein Addon deinstalliert und seine Dateien von keinem anderen Paket mehr benötigt, werden sie ebenfalls dorthin verschoben.
Prinzipiell existiert so zwar immer exakt eine Kopie einer Datei in diesem Verzeichnis, aber natürlich können sich viele verschiedene Dateien dort ansammeln.
Wenn man sicher ist, daß man die enthaltenen Sicherheitskopien nicht mehr benötigt, kann das Verzeichnis .mnenhy.bak gelöscht werden.
Waaah! Mozilla startet nicht mehr!
Wenn Mozilla nach einer Manipulation der Chrome-Registry nicht mehr startet, kann dies mehrere Ursachen haben:
- Ein Paket wurde an einen Speicherort verschoben, an dem es nicht funktioniert.
- Ein Paket wurde entfernt, welches beim Start benötigt wird.
In diesen Fällen ist die Lösung relativ einfach: der Chrome-Manager legt in beiden Chrome-Verzeichnissen ein Verzeichnis namens .mnenhy.bak an, in welchem die alten Dateien gesichert wurden. Ein Zurückspielen des Inhalts von .mnenhy.bak ins jeweilige Chrome-Verzeichnis bei vollständig geschlossenem Mozilla stellt den alten Stand wieder her. Zusätzlich muß im Profilverzeichnis die XUL.mfasl/XUL.mfl gelöscht werden.
- Die Verzeichnistrukturen eines aktiven Paketes wurden mit Putzen gelöscht.
Liegt das Paket noch als .jar-Archiv vor, hilft ein Neuentpacken des Paketes mit dem Zip-Entpacker. Andernfalls liegt der einfachste Weg in einer Neuinstallation Mozillas.
Fragen, Korrekturen, Vorschläge? Bitte schreibt mir!