Coder Social home page Coder Social logo

fwenzel / ciaociao Goto Github PK

View Code? Open in Web Editor NEW
5.0 3.0 2.0 91 KB

A Bonjour/Zeroconf service discovery add-on for Firefox

Home Page: https://addons.mozilla.org/addon/ciaociao/

License: BSD 3-Clause "New" or "Revised" License

CSS 6.60% JavaScript 92.02% HTML 1.38%

ciaociao's Introduction

Ciaociao Add-on

by Fred Wenzel <[email protected]>

Ciaociao (formerly Zerofox) is a Bonjour/Zeroconf service discovery add-on for Firefox. It adds a button to the toolbar that'll show you known web servers around your local network -- for instance, your printer or router might publish their config pages that way.

Known Caveats

Ciaociao currently only works on Mac OS X and Linux, because it uses the dns-sd or avahi-browse utilities to discover the services in question. In the future, if I can find out how, I'll be happy to add Windows support.

Installing

Ciaociao is available on the Mozilla Add-ons website. You can install it with Firefox by simply pressing the Install button there.

Contributing

Ciaociao is open source. If you'd like to contribute, feel free to open or comment on an Issue on Github. Pull requests welcome!

Acknowledgments

Thanks to:

License

This is free software, © 2014-today Fred Wenzel and licensed under an MIT license. For more information, read the file LICENSE.

ciaociao's People

Contributors

fwenzel avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ciaociao's Issues

avahi support

given the approach in #7 does not look promising right now due to platform considerations, i'd like to suggest another path: the avahi-browse utility seems to do on free unix systems roughly what dns-sd is doing on osx. an invocation of avahi-browse _http._tcp --resolve --parsable --no-db-lookup --terminate gives me:

+;wlan0;IPv4;my-server;_http._tcp;local
+;wlan0;IPv4;MPC\032client\032on\032my-server;_http._tcp;local
=;wlan0;IPv4;my-server;_http._tcp;local;my-server.local;10.13.13.227;80;"path=/storage/"
=;wlan0;IPv4;MPC\032client\032on\032my-server;_http._tcp;local;my-server.local;10.13.13.227;6680;

(without --resolve, it would only show the + lines and not dig down deep enough to give the details in the = records).

would you consider adding support for those platforms?

Indicate update in progress

The add-on detects services when the panel is opened, but there's no indication that it's still going, nor that it's "done". We can do better.

Switch from timeout to permanent listening

While the panel is open, we can listen permanently, no reason to stop the background service. Only when closing the panel do we need to switch off the background listener.

Right now, we kill the service after 5 seconds, which sometimes is not enough for initial service detection. On the flip side, the timeout helps us to display a message that no service was found.

Maybe a spinner with "detecting services..." that stays there indefinitely until/unless we find anything?

text is not un-escaped

any bonjour service with a space in it shows the space as "/032" instead of just " ". note that it only happens after the FIRST space (which is shown correctly).

screen shot 2015-02-16 at 10 12 52 am

panel.html does not have character encoding

AMO editor writes:

  1. After installing I got in the Browser Console:

The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol. panel.html

Some services can appear listed twice (?)

From Issue #5, CC @davecotter

Some services appear to be listed twice. I wonder if that can happen when the button is pressed repeatedly? Though every press on the button should empty the list first before adding more results.

Rewrite Extension to Work With Firefox Quantum

It would be great if the add-on can work with Firefox Quantum.
From the update of macOS High Sierra, we have no more the Bonjour function in Safari.
Due to this I use back to Firefox after I discovered the ciaociao add-on.
Now, with the Firefox Quantum version, the extension is deactivated.

Windows support

No clue how do to that best yet. If we had a TCP socket in Firefox, I could do it all in JavaScript and be done. Alas, I am shelling out to external tools.

I don't think Windows ships with a Zeroconf client by default (?) so our options are limited.

It seems Apple made dns-sd for Windows so if I can hook into that that's an option but it would require the user to install the SDK I think.

Send services to frontend as they come in

Right now we collect them all, then kill the dns-sd process, then send everything to the frontend. No need for that, we can process and send messages as we go.

That lets us allow the process to run a little longer too.

Not working on RHEL 6 with firefox 38

When clicking its button, it immediately says "No services found!". I'm a using avahi-publish to send out _http._tcp dns-sd service announcements, and avahi-browse sees them. I am assuming ciaociao won't work with such an old version of firefox, but wanted to check with you on this.

Match HTTPS servers, too

First! ;-)

Might also want to match HTTPS servers. Should be _https._tcp for the service type I think.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.