2011-08-28 4 views
5

He intentado hacer algunas modificaciones en un usuario para habilitarlo para trabajar con Chrome, pero cuando lo arrastro a la ventana de Chrome para instalarlo, aparece un cuadro de diálogo que dice 'Inválido' Encabezado de scripts '.Método para depurar los archivos de usuario en Chrome

He intentado utilizar Developer Tools y Javascript Console incorporado para depurar cualquier error que se produzca, pero parece que nada aparece en la lista.

Console.app no muestra nada significativo, excepto por el mismo mensaje de error que ya conozco.

[0x0-0x2d02d].com.google.Chrome: [346:1547:16686819618022:ERROR:extension_error_reporter.cc(55)] Extension error: Invalid script header.

¿Cómo puedo depurar razonablemente este mensaje de error y averiguar qué pasa con el encabezado?

Estoy usando Chrome 15.0.861.0 en el canal dev, bajo OS 10.7 Lion.

+1

yo no creo * * hay ninguna herramienta para esto. Si publica el código real aquí, alguien puede detectar el error. De lo contrario, lo harías a la vieja usanza: toma un buen guión y el guión incorrecto y compara y divide a medias las diferencias hasta que se determine el problema. –

+0

publique el código en http://gist.github.com/ por favor – erikvold

Respuesta

5

Finalmente me encontré con la respuesta a esta pregunta, de manera divertida a través de Chromium Bug Report.

Como resultado, la respuesta a mi pregunta fue en la (significativamente breve) Userscript Documentation for Chrome página.

With Greasemonkey-style @include rules, it is not possible for Chrome to know for certain the domains a script will run on (because google.* can also run on google.evil.com). Because of this, Chrome just tells users that these scripts will run on all domains, which is sometimes scarier than necessary. With @match, Chrome will tell users the correct set of domains a user script will run on.

Como resultado, que había estado utilizando @match http://*musicbrainz.org en un intento para que coincida con www.musicbrainz.org, así como musicbrainz.org, pero por el texto citado, que no te salva accidentalmente a juego evilmusicbrainz.org. Entonces, mi solución fue usar dos líneas:

@match http://*.musicbrainz.org y;
@match http://musicbrainz.org.

+0

Esto explicaría el script que se ejecuta en páginas adicionales, no explica el mensaje de error. –

+0

Chrome tiene un uso muy fuerte y la reutilización de solicitudes de "mismo origen" por razones de seguridad. Podría usar 'http: // */*' (y sí, tendría que especificar '// */*'), pero si especifico un dominio de segundo nivel, DEBE estar limpio. No se puede englobar en un dominio de segundo nivel. Esto significa que el TLD también debe estar limpio. Básicamente, puede bloguear un subdominio, pero si lo hace, debe delimitarse con un punto antes de especificar el segundo nivel y el TLD. – VxJasonxV

3

Tipo:

debugger; 

En algún lugar en el código, y el Inspector Web aparecerá en esa ubicación. He respondido a la pregunta similar aquí Chrome debugger inject javascript

1

me di cuenta mientras me dieron el mismo mensaje de error (VÁLIDA SCRIPT CABECERA) que accoured causa de un error entre el // == == userscript información de la cabecera.

línea wronge

// @run-at document.end

línea corregida

// @run-at document-end
Cuestiones relacionadas