mozilla

Revision 194386 of La URL chrome

  • Enlace amigable (slug) de la revisión: Tutorial_de_XUL/La_URL_chrome
  • Título de la revisión: La URL chrome
  • Id de la revisión: 194386
  • Creada:
  • Creador: Nukeador
  • ¿Es la revisión actual? No
  • Comentario Plantilla traducción e introducción

Contenido de la revisión

{{template.AnteriorSiguiente("Tutorial_de_XUL:Introducción", "Tutorial_de_XUL:Archivos Manifest")}}


{{wiki.template('Traducción', [ "inglés", "XUL_Tutorial:The_Chrome_URL", "en" ])}}

La siguiente sección describe como referirse a los documentos XUL y otros archivos chrome.

La URL Chrome

Los archivos XUL pueden ser accesados con una URL HTTP común, igual que los archivos HTML. Sin embargo, los paquetes que se instalan dentro del sistma chrome de Mozilla pueden ser referidos con un URL chrome especial. Los paquetes incluidos con Mozilla ya se encuentran instalados, pero tu puedes registrar los tuyos.

Los paquetes instalados tienen la ventaja de que no tienen restricciones de seguridad establecidos, que es necesario para muchas aplicaciones. Otra ventaja sobre otro tipo de URL es de que maneja automáticamente multiples temas e idiomas. Por ejemplo, una URL chrome te permite referirte a un archivo en el tema como una imagen, sin necesidad de saber cual tema es el que el usuario esta usando. Siempre y cuando los nombre de los archivos sean iguales en cada tema, tu puedes referirte a ellos usando una URL chrome. Mozilla tomará cuidado en determinar donde se encuentran los archivos para regresar datos correctos. Esto significa que realmente no importa donde se encuentre instalado el paquete para poder acceder a el. Las URL chorome son independientes de donde se encuentre instalados fisicamente los archivos. Esto hace más facil escribir aplicaciones que tienen muchos archivos donde no te tienes que preocupar por el detalle de donde se encuentre localizados los archivos.

La sintaxis básica de una URL chrome es la siguiente

chrome://<nombre del paquete>/<parte>/<archivo.xul>

El texto <nombre del paquete> es el nombre del paquete, como lo puede ser un mensajero (IM) o un editor. La <parte> es normalmente 'content' o 'skin' o 'locale', depende la parte que quieras. <archivo.xul> es simplemente el nombre del archivo.

Ejemplo: chrome://messenger/content/messenger.xul

El ejemplo de aquí se refiere a la ventana messenger. Tu puedes apuntar a un archivo que es parte del skin reemplazando 'content' con 'skin' y cambiando el nombre del archivo. Similarmente tu puedes apuntar a un archivo que es parte de locale usando 'locale' en lugar de 'content'.

Cuando tu abres una URL chrome, Mozilla echa un vistazo a través de su lista de paquetes instalados e intenta localizar el archivo JAR o el directorio que concuerde con el nombre del paquete y la parte. El mapeado entre las URL chrome y los archivos JAR se especifica en el archivo de manifiesto almacenado en el directorio chrome. If you were to move the file messenger.jar somewhere else and update the manifest file accordingly, Thunderbird will still work since it doesn't rely on its specific installed location. By using chrome URLs we can leave details like this to Mozilla. Similarly, if the user changes their theme, the 'skin' part of the chrome URL translates to a different set of files, yet the XUL and scripts don't need to change.

Here are some more examples. Note how none of the URLs specify which theme or locale is used and none specify a specific directory.

chrome://messenger/content/messenger.xul
chrome://messenger/content/attach.js
chrome://messenger/skin/icons/folder-inbox.gif
chrome://messenger/locale/messenger.dtd

To refer to subdirectories, you can just add them to the end of the chrome URL. The following URLs will refer to the bookmarks window, listed both for the Mozilla Suite and Firefox, since the package name is different in both:

chrome://communicator/content/bookmarks/bookmarksManager.xul (Mozilla)
chrome://browser/content/bookmarks/bookmarksManager.xul (Firefox)

You can enter chrome URLs anywhere normal URLs can be used. You can even enter them directly into the URL bar in a Mozilla browser window. If you enter one of the URLs mentioned above into the browser's address bar, you should see that window appear like a web page might do and for the most part will function as if it was a separate window. Some dialog boxes may not work right, however, as they may be expecting arguments to be supplied from the window that opened them.

You will also see chrome URLs without specified filenames, such as:

chrome://browser/content/

In this case, only the package name and part is specified. This type of reference will automatically select an appropriate file from that right directory. For content, a file with the same name of the package and a xul extension is selected. In the above example, the file browser.xul is selected. For messenger, messenger.xul would be selected. When creating your own applications, you will want to create a file for your main window with the same name as the package, so it can be referred to using this shorter form. This is convenient since all a user needs to know is the package name to be able to open the application. Of course, for extensions that modify the browser interface, the user will not need to know the URL, as the extension will present itself in the UI.

For a skin, the file <package name>.css is selected; for a locale, the file <package name>.dtd is selected.

Remember, the chrome URL is not related to where it is located on disk. The first two pieces of the chrome URL are the package name and the part (either content, skin, or locale). While it is common to put the content files in a directory called 'content', this is purely out of convention, and these files may be placed in an entirely different structure.

In the next section, we will look at how to create .manifest files and packages.

Fuente de la revisión

<p> 
{{template.AnteriorSiguiente("Tutorial_de_XUL:Introducción", "Tutorial_de_XUL:Archivos Manifest")}}
</p><p><br>
</p><p>{{wiki.template('Traducción', [ "inglés", "XUL_Tutorial:The_Chrome_URL", "en" ])}}
</p><p>La siguiente sección describe como referirse a los documentos XUL y otros archivos chrome.
</p>
<h3 name="La_URL_Chrome"> La URL Chrome </h3>
<p>Los archivos XUL pueden ser accesados con una URL HTTP común, igual que los archivos HTML. Sin embargo, los paquetes que se instalan dentro del sistma chrome de Mozilla pueden ser referidos con un URL chrome especial. Los paquetes incluidos con Mozilla ya se encuentran instalados, pero tu puedes registrar los tuyos.
</p><p>Los paquetes instalados tienen la ventaja de que no tienen restricciones de seguridad establecidos, que es necesario para muchas aplicaciones. Otra ventaja sobre otro tipo de URL es de que maneja automáticamente multiples temas e idiomas. Por ejemplo, una URL chrome te permite referirte a un archivo en el tema como una imagen, sin necesidad de saber cual tema es el que el usuario esta usando. Siempre y cuando los nombre de los archivos sean iguales en cada tema, tu puedes referirte a ellos usando una URL chrome. Mozilla tomará cuidado en determinar donde se encuentran los archivos para regresar datos correctos. Esto significa que realmente no importa donde se encuentre instalado el paquete para poder acceder a el. Las URL chorome son independientes de donde se encuentre instalados fisicamente los archivos. Esto hace más facil escribir aplicaciones que tienen muchos archivos donde no te tienes que preocupar por el detalle de donde se encuentre localizados los archivos.
</p><p>La sintaxis básica de una URL chrome es la siguiente
</p>
<pre>chrome://&lt;nombre del paquete&gt;/&lt;parte&gt;/&lt;archivo.xul&gt;
</pre>
<p>El texto &lt;nombre del paquete&gt; es el nombre del paquete, como lo puede ser un mensajero (IM) o un editor. La &lt;parte&gt; es normalmente 'content' o 'skin' o 'locale', depende la parte que quieras. &lt;archivo.xul&gt; es simplemente el nombre del archivo.
</p><p><b>Ejemplo</b>: chrome://messenger/content/messenger.xul
</p><p>El ejemplo de aquí se refiere a la ventana messenger. Tu puedes apuntar a un archivo que es parte del skin reemplazando 'content' con 'skin' y cambiando el nombre del archivo. Similarmente tu puedes apuntar a un archivo que es parte de locale usando 'locale' en lugar de 'content'.
</p><p>Cuando tu abres una URL chrome, Mozilla echa un vistazo a través de su lista de paquetes instalados e intenta localizar el archivo JAR o el directorio que concuerde con el nombre del paquete y la parte. El mapeado entre las URL chrome y los archivos JAR se especifica en el archivo de manifiesto almacenado en el directorio chrome. If you were to move the file messenger.jar somewhere else and update the manifest file accordingly, Thunderbird will still work since it doesn't rely on its specific installed location. By using chrome URLs we can leave details like this to Mozilla. Similarly, if the user changes their theme, the 'skin' part of the chrome URL translates to a different set of files, yet the XUL and scripts don't need to change.
</p><p>Here are some more examples. Note how none of the URLs specify which theme or locale is used and none specify a specific directory.
</p>
<pre>chrome://messenger/content/messenger.xul
chrome://messenger/content/attach.js
chrome://messenger/skin/icons/folder-inbox.gif
chrome://messenger/locale/messenger.dtd
</pre>
<p>To refer to subdirectories, you can just add them to the end of the chrome URL. The following URLs will refer to the bookmarks window, listed both for the Mozilla Suite and Firefox, since the package name is different in both:
</p>
<pre>chrome://communicator/content/bookmarks/bookmarksManager.xul (Mozilla)
chrome://browser/content/bookmarks/bookmarksManager.xul (Firefox)
</pre>
<p>You can enter chrome URLs anywhere normal URLs can be used. You can even enter them directly into the URL bar in a Mozilla browser window. If you enter one of the URLs mentioned above into the browser's address bar, you should see that window appear like a web page might do and for the most part will function as if it was a separate window. Some dialog boxes may not work right, however, as they may be expecting arguments to be supplied from the window that opened them.
</p><p>You will also see chrome URLs without specified filenames, such as:
</p>
<pre>chrome://browser/content/
</pre>
<p>In this case, only the package name and part is specified. This type of reference will automatically select an appropriate file from that right directory. For content, a file with the same name of the package and a xul extension is selected. In the above example, the file browser.xul is selected. For messenger, messenger.xul would be selected. When creating your own applications, you will want to create a file for your main window with the same name as the package, so it can be referred to using this shorter form. This is convenient since all a user needs to know is the package name to be able to open the application. Of course, for extensions that modify the browser interface, the user will not need to know the URL, as the extension will present itself in the UI.
</p><p>For a skin, the file &lt;package name&gt;.css is selected; for a locale, the file &lt;package name&gt;.dtd is selected.
</p><p>Remember, the chrome URL is not related to where it is located on disk. The first two pieces of the chrome URL are the package name and the part (either content, skin, or locale). While it is common to put the content files in a directory called 'content', this is purely out of convention, and these files may be placed in an entirely different structure.
</p><p>In the next section, we will look at how to create .manifest files and packages.
</p>
Revertir a esta revisión