Mac OS X - alguns arquivos .weblocs são abertos no Firefox, outros não - por quê?

0

Eu alterei o aplicativo padrão para abrir arquivos .webloc no Firefox (usando RCDefaultApp , bom pedaço de kit, isso) e está tudo bem, exceto por um pouco de estranheza. Se eu criar um .webloc usando um script (estou usando um script Perl adaptado de este um para criar marcadores em busca de destaque), em seguida, ele é aberto no Firefox como um pouco de XML não-estilizado (com "Este arquivo XML não parece ter nenhuma informação de estilo associada a ele. A árvore de documentos é mostrada abaixo" no cabeçalho).

Aqui está a estranheza: se eu arrastar uma URL da barra de URL do Firefox para a área de trabalho, eu recebo um arquivo .webloc que é aberto pelo Firefox sem problemas - mas quando olho para o conteúdo ele é completamente idêntico ao que eu criei com o meu script. Tem que ter algo a ver com o criador do arquivo - se eu abrir o arquivo .webloc criado pelo Firefox e depois salvá-lo de um editor de texto, ele não funciona mais.

Então, o que está acontecendo? Como dois bits idênticos de XML abrem de forma diferente dependendo de como eles foram criados? Existe algum pedaço mágico em algum lugar que eu possa mudar?

Para referência, aqui está o conteúdo de um arquivo .webloc como criado pelo meu script (eu coloquei o criado pelo Firefox também, mas como é completamente idêntico (verifiquei com diff) não faz sentido):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>URL</key>
        <string>http://www.spacetelescope.org/</string>
    </dict>
</plist>
    
por stib 29.06.2011 / 06:29

1 resposta

5

Embora os dois arquivos webloc tenham a mesma aparência, eles não são. Quando você arrasta uma URL para o Desktop, o sistema cria um arquivo webloc com uma bifurcação de recursos oculta. Você pode revelar o fork de um arquivo usando o comando derez no terminal:

derez /Users/<User Directory>/Desktop/ESA-Hubble.webloc

Para o seu URL de exemplo, a bifurcação de recursos é:

data 'drag' (128) {
$"0000 0001 0000 0000 0000 0000 0000 0003"            /* ................ */
$"5445 5854 0000 0100 0000 0000 0000 0000"            /* TEXT............ */
$"7572 6C20 0000 0100 0000 0000 0000 0000"            /* url ............ */
$"7572 6C6E 0000 0100 0000 0000 0000 0000"            /* urln............ */
};

data 'url ' (256) {
$"6874 7470 3A2F 2F77 7777 2E73 7061 6365"            /* http://www.space */
$"7465 6C65 7363 6F70 652E 6F72 672F"                 /* telescope.org/ */
};

data 'TEXT' (256) {
$"6874 7470 3A2F 2F77 7777 2E73 7061 6365"            /* http://www.space */
$"7465 6C65 7363 6F70 652E 6F72 672F"                 /* telescope.org/ */
};

data 'urln' (256) {
$"4553 412F 4875 6262 6C65"                           /* ESA/Hubble */
};

Anteriormente, no OS X, os arquivos webloc eram apenas arquivos vazios com informações de bifurcação de recursos. Em algum momento, os arquivos webloc foram "modernizados" para os dados da lista de propriedades contidos, mas as informações da bifurcação de recursos não foram eliminadas.

Isso significa que alguns programas podem ter problemas no suporte a weblocs, por exemplo, às vezes trabalhando com a lista de propriedades e, às vezes, trabalhando com a bifurcação de recursos.

Talvez um bug possa ser arquivado com o Firefox, solicitando suporte para weblocs baseados em lista de propriedades?

    
por 29.06.2011 / 11:04