Avatar billede mora Nybegynder
20. november 2005 - 00:47 Der er 6 kommentarer

Custom protocol handler

Hvordan laver man en protocol handler til firefox ?

Har prøvet at tilføje de 2 linjer i about:config
en med true, og en med program navnet, men den siger stadig at den ikke kender protokollen.
Avatar billede skovenborg Nybegynder
20. november 2005 - 01:42 #1
Det er ikke helt så let - Firefox vil jo heller ikke ud fra blot en simpel indstilling vide hvad den skulle gøre med den nye protokol.

Når det er sagt, så må jeg da tilføje, at det er muligt at tilføje sine egne protokoler... det er jo open-source ;-)

Et søg på google gav en hel del resultater, hvor jeg lige kan poste dem, som umiddelbart så mest interessante ud:
http://www.codeproject.com/internet/FirefoxProtocol.asp
http://nexgenmedia.net/docs/protocol/
http://www.mozilla.org/projects/netlib/new-handler.html

Det kræver som du måske kan se, at man enten roder med lidt C++ (og sætter sig lidt ind i Mozilla's netværks bibliotek, Necko) eller som den midterste med javascript og XPCOM (den teknologi som bruges bla. i sammenhæng med udvidelser til Firefox).

Så god fornøjelse hvis du stadig har blod på tanden - ellers må du foreslå det for udviklerne hos Mozilla, at de implementerer understøttelse for netop den protokol du tænker på.
Avatar billede mora Nybegynder
20. november 2005 - 04:01 #2
Har søgt lidt baseret på nummer 2, den virker fint.
Men syntes ikke rigtig der er nogen steder at finde en forklaring på hvordan man kalder et program på klientens maskine, kun en masse om hvordan man laver netværks forbindelser, mm.

Har brug for at kalde et program på selve maskinen med urlen som parametre.
Avatar billede skovenborg Nybegynder
20. november 2005 - 18:02 #3
puha, jeg har ikke sat mig så meget ind i XPCOM - så et rigtig svar kan jeg ikke give dig. Dog kan du altid se referencen til de forskellige komponenter:
http://xulplanet.com/references/xpcomref/

Jeg kunne ikke selv få registreret protocolen, så jeg har ikke lige kunne rode med det :-( Var det virkelig nok bare at kopiere TestProtocol.js ind i Components-biblioteket (og sørge for der var en .autoreg-fil)? Jeg synes det kunne være lidt sjovt at prøve at løse det, selvom jeg ikke kan garantere jeg kan finde ud af det ;-)
Avatar billede mora Nybegynder
20. november 2005 - 18:59 #4
Jeps, lagde bare filen der, lukkede firefox og lavede den autoreg fil.
Derefter virker x-search:tekst
så ikke helt som en protokol med ftp://

tjekker lige linket
Avatar billede skovenborg Nybegynder
20. november 2005 - 21:07 #5
så fik jeg det også til at virke ;-) Da Firefox allerede havde en .autoreg fil troede jeg ikke man behøvede lave en ny, men det hjalp da jeg slettede den gamle og erstattede den med en frisk :-)

Men desværre må jeg tilstå det er en ret uoverkommelig opgave, at finde hoved og hale i XPCOM. Har checket nogle ellers lovende klasser og interfaces, men har ikke den fundementale viden indenfor brug af XPCOM (og Mozilla-teknologierne generelt), så jeg kunne ikke lige få stablet noget på benene :-S

Du kan måske se lidt på Protozilla: http://protozilla.mozdev.org/ - den stødte jeg på mens jeg søgte under emnet, og måske kan du bruge den. Prøv at rode lidt med den først ;-)
Avatar billede mora Nybegynder
20. november 2005 - 21:14 #6
Tja, skal kunne pakke det som en install der skal ind på flere maskiner hvor alm. brugere skal installere det, så det går ikke helt.

Kigger lidt videre, har fundet en launch() der kan starte et program, men uden parametre, og ellers må jeg bare lave programmet som en service der bliver kontaktet via sockets, bare ikke helt så pænt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester