Jest to pierwszy z całej serii artykułów mających na celu zademonstrować tworzenie coraz bardziej skomplikowanych rozszerzeń do przeglądarki Firefox. Niektóre z przykładów mogą być podobne do innych spotkanych w różnych miejscach, ale celem tejże serii jest pomoc nowym programistom rozszerzeń i zebranie wszystkich potrzebnych informacji w jednym miejscu, z którego łatwo jest rozpocząć.
Wiele z wprowadzonych tutaj pojęć odnosi się do wszystkich aplikacji opartych na XUL; jednak aby nie zostać całkowicie przytłoczonym, skupimy się w szczególności na Firefox.
Ten przykład doda statyczny ciąg tektu do paska statusu u dołu okna przeglądarki Firefox. Jeśli brzmi to jak istniejący artykuł Tworzymy rozszerzenie, masz rację. Jednak, ten przykład będzie rozbudowywany w kolejnych artykułach tej serii.
Pobieranie przykładu
Możesz pobrać przykład z poniższej strony:
Manifest instalacji
Manifest instalacji <tt>install.rdf</tt> jest plikiem tekstowym zawierającym ważne informacje o rozszerzeniu.
<?xml version="1.0"?> <RDF xmlns="https://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="https://www.mozilla.org/2004/em-rdf#"> <Description about="urn:mozilla:install-manifest"> <em:id>[email protected]</em:id> <em:version>1.0</em:version> <em:type>2</em:type> <!-- Front End Metadata --> <em:name>Status Bar Sample 1</em:name> <em:description>Sample static status bar panel</em:name> <em:creator>My Name</em:creator>" <em:homepageURL>https://developer.mozilla.org/en/docs/Creating_a_status_bar_extension</em:homepageURL> <!-- Opis jaka wersja Firefoksa jest obsługiwana --> <em:targetApplication> <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>1.5</em:minVersion> <em:maxVersion>2.0.0.*</em:maxVersion> </Description> </em:targetApplication> </Description> </RDF>
Przyjrzyjmy się najważniejszym częściom manifestu.
Informacje identyfikujące rozszerzenie
Pewne informacje są wymagane, by Firefox mógł jednoznacznie zidentyfikować rozszerzenie. W poniższym przykładzie są to pola:
Nazwa własności | Opis |
id | Unikalny strumień identyfikujący. W wersjach Firefoksa wcześniejszych niż 1.5 było to GUID. Począwszy jednakże od Firefoksa 1.5 powinieneś używać strumienia w postaci nazwa-rozszerzenia@kreator-domeny. |
version | Numer wersji rozszerzenia. |
type | Typ dodatku. Dla rozszerzenia równa się 2. |
Informacje dla użytkownika
W tym przykładzie mamy 4 informacje dla użytkownika tj. dane wyświetlane w interfejsie użytkownika Firefoksa. Są to:
Nazwa własności | Opis |
em:name | Nazwa rozszerzenia. Nazwa wyświetlana w oknie Rozszerzenia. |
em:description | Krótki jedno liniowy opis rozszerzenia. Tekst jest wyświetlany w oknie Rozszerzenia. |
em:creator | Nazwisko autora. |
homepageURL | Adres URL strony, na której użytkownik może uzyskać więcej informacji o rozszerzeniu, lub poszukać uaktualnień. Pole nie jest wymagane. |
Informacje o aplikacji docelowej
Ważnym jest, by zawrzeć informacje identyfikujące aplikacje w jakich rozszerzenie może zostać użyte. Opisywane rozszerzenie przeznaczone jest wyłącznie dla Firefoksa. Jednakże możliwym jest stworzenie rozszerzeń przeznaczonych na wiele aplikacji bazujących na XUL-u.
Ważnym jest również zaznaczenie, które wersje aplikacji docelowych są wspierane przez rozszerzenie. Jeśli nie będzie ono działało w starszych wersjach, lub też nie zostało przetestowane na wersjach nowszych możesz ograniczyć rozszerzenie tak, aby tylko wspierane wersje próbowały go użyć.
Informacje o aplikacji docelowej zawarte są wewnątrz bloku em:targetApplication
Description
.
Nazwa własności | Opis |
id | ID określające aplikację docelową. "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}" jest ciągiem GUID identyfikującym jednoznacznie Firefoksa jako aplikację docelową. |
minVersion | Najstarsza wersja aplikacji docelowej wspieranej przez rozszerzenie. |
maxVersion | Najnowsza wersja aplikacji docelowej, na której rozszerzenie będzie działało. |
W celu dowiedzenia się więcej odnośnie formatu manifestu instalacji przeczytaj artykuł Manifesty Instalacji.
Rejestracja chrome
The chrome manifest is a file that tells the target application where to look for the chrome package for your extension. The Chrome is the set of user interface elements outside the content area of the application's window, such as toolbars, status bars, menu bars, and the like.
Dla przykładu plik manifestu chrome <tt>chrome.manifest</tt>.
content status-bar-sample-1 chrome/content/ # Firefox overlay chrome://browser/content/browser.xul chrome://status-bar-sample-1/content/status-bar-sample-1.xul
The first line registers the location on disk of the contents of the extension whose ID is "status-bar-sample-1". This path is relative to the extension's root folder in this case, but can be absolute if you want it to be.
The second line registers an overlay. An overlay lets you add new content to an existing document. In this case, we want to augment the UI of the Firefox browser, so we specify the URI of the Firefox main window's XUL file, "chrome://browser/content/browser.xul", as the interface to overlay onto, and the URI of our own XUL file, "chrome://status-bar-sample-1/content...r-sample-1.xul", as the interface to overlay onto the browser.
See Nakładki XUL for details on how overlays work. You can also find more details about format of chrome manifests in the Rejestracja Chrome section.
Nakładki XUL
The XUL overlay file contains the XUL description of the user interface we want to add to Firefox. Our overlay file, <tt>status-bar-sample-1.xul</tt>, looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE overlay >
<overlay id="status-bar-sample-1-overlay"
xmlns="https://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<!-- Firefox -->
<statusbar id="status-bar">
<statusbarpanel id="status-bar-sample-1"
label="Hello World"
tooltiptext="Sample status bar item"
/>
</statusbar>
</overlay>
The first order of business in the <tt>status-bar-sample-1.xul</tt> file is to establish that this is in fact a XUL file, and to set up a unique ID for the overlay. This is accomplished by the following line of XML:
<overlay id="status-bar-sample-1-overlay"
xmlns="https://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
Once that's accomplished, we can describe our user interface. In this case, we're simply inserting a new panel into the status bar at the bottom of Firefox browser windows. We do this by embedding inside the statusbar
named "status-bar" -- which is the Firefox browser window's status bar -- a new statusbarpanel
object we call "status-bar-sample-1".
We include properties to configure our new status bar panel the way we want, setting its text label to "Hello World" and establishing a tool tip with the message "Sample status bar item" in it.
Zobacz jak to działa
Aby przetestować swoje rozszerzenie, przeciągnij folder do folderu rozszerzenia w swoim folderze profilu. Następnie uruchom ponownie Firefoksa i powinieneś zobaczyć rozszerzenie na pasku stanu.
<center></center>