summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/Clients/FirefoxExtension/extension
diff options
context:
space:
mode:
Diffstat (limited to 'mDNSResponder/Clients/FirefoxExtension/extension')
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/chrome.manifest6
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/components/IDNSSDService.xptbin0 -> 376 bytes
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/content/_internal_bonjour4firefox.pngbin0 -> 1589 bytes
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/content/_internal_listImage.pngbin0 -> 3417 bytes
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/content/bonjour4firefox.css16
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/content/bonjour4firefox.xul222
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/content/browserOverlay.xul32
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/content/overlay.js21
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/defaults/preferences/bonjour4firefox.js2
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/install.rdf19
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/locale/en-US/bonjour4firefox.dtd6
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/locale/en-US/bonjour4firefox.properties4
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/readme.txt21
-rw-r--r--mDNSResponder/Clients/FirefoxExtension/extension/skin-darwin/_internal_toobar-button.pngbin0 -> 6798 bytes
-rw-r--r--mDNSResponder/Clients/FirefoxExtension/extension/skin-darwin/overlay.css17
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/skin/_internal_toobar-button.pngbin0 -> 5022 bytes
-rwxr-xr-xmDNSResponder/Clients/FirefoxExtension/extension/skin/overlay.css21
17 files changed, 387 insertions, 0 deletions
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/chrome.manifest b/mDNSResponder/Clients/FirefoxExtension/extension/chrome.manifest
new file mode 100755
index 00000000..f1daf86c
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/chrome.manifest
@@ -0,0 +1,6 @@
+content bonjour4firefox content/
+locale bonjour4firefox en-US locale/en-US/
+skin bonjour4firefox classic/1.0 skin/
+skin bonjour4firefox classic/1.0 skin-darwin/ os=darwin
+overlay chrome://browser/content/browser.xul chrome://bonjour4firefox/content/browserOverlay.xul
+style chrome://global/content/customizeToolbar.xul chrome://bonjour4firefox/skin/overlay.css
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/components/IDNSSDService.xpt b/mDNSResponder/Clients/FirefoxExtension/extension/components/IDNSSDService.xpt
new file mode 100755
index 00000000..bfda3e58
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/components/IDNSSDService.xpt
Binary files differ
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/content/_internal_bonjour4firefox.png b/mDNSResponder/Clients/FirefoxExtension/extension/content/_internal_bonjour4firefox.png
new file mode 100755
index 00000000..baf8b215
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/content/_internal_bonjour4firefox.png
Binary files differ
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/content/_internal_listImage.png b/mDNSResponder/Clients/FirefoxExtension/extension/content/_internal_listImage.png
new file mode 100755
index 00000000..278efe37
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/content/_internal_listImage.png
Binary files differ
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/content/bonjour4firefox.css b/mDNSResponder/Clients/FirefoxExtension/extension/content/bonjour4firefox.css
new file mode 100755
index 00000000..2e7eb2c4
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/content/bonjour4firefox.css
@@ -0,0 +1,16 @@
+tree.sidebar-placesTree treechildren::-moz-tree-row(selected)
+{
+ background-color: #6f81a9;
+ background-image: url("chrome://browser/skin/places/selected-gradient.png");
+ background-repeat: repeat-x;
+ background-position: bottom left;
+ border-top: 1px solid #979797;
+}
+
+
+tree.sidebar-placesTree treechildren::-moz-tree-separator
+{
+ border-top: 1px solid #505d6d;
+ margin: 0 10px;
+}
+
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/content/bonjour4firefox.xul b/mDNSResponder/Clients/FirefoxExtension/extension/content/bonjour4firefox.xul
new file mode 100755
index 00000000..2be0c691
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/content/bonjour4firefox.xul
@@ -0,0 +1,222 @@
+<?xml version="1.0"?>
+<?xml-stylesheet href="chrome://browser/content/places/places.css"?>
+<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
+<?xml-stylesheet href="chrome://browser/skin/places/places.css"?>
+<?xml-stylesheet href="browseList.css"?>
+<!DOCTYPE page SYSTEM "chrome://bonjour4firefox/locale/bonjour4firefox.dtd">
+ <page
+ orient="vertical"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
+ style="background-color: transparent !important; -moz-appearance: none !important;"
+ onload="BonjourBrowser.init()"
+ onunload="BonjourBrowser.cleanup()">
+
+
+ <menupopup id="targetmenu">
+ <menuitem label="&bonjour4firefoxSidebarOpenDefault.label;" value="current"/>
+ <menuitem label="&bonjour4firefoxSidebarOpenTab.label;" value="tab"/>
+ <menuitem label="&bonjour4firefoxSidebarOpenWindow.label;" value="window"/>
+ </menupopup>
+
+ <tree id="treeBrowseList" flex="1" class="sidebar-placesTree" hidecolumnpicker="true">
+ <treecols hide="true">
+ <treecol id="title" flex="1" primary="true" hideheader="true"/>
+ </treecols>
+
+ <treechildren class="sidebar-placesTreechildren" context="targetmenu" flex="1" id="treeChildrenBrowseList">
+ <treeitem>
+ <treerow>
+ <treecell src="chrome://bonjour4firefox/content/_internal_bonjour4firefox.png" label="About Bonjour"/>
+ </treerow>
+ </treeitem>
+ </treechildren>
+ </tree>
+
+ <script><![CDATA[
+
+ var BonjourBrowser =
+ {
+ Service: null,
+ Browse: null,
+ BrowseListener: null,
+ Resolve: null,
+ ResolveListener: null,
+
+ init: function()
+ {
+ document.getElementById("treeChildrenBrowseList").addEventListener( "click", this.listListener, false );
+
+ try
+ {
+ netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+ const cid = "@apple.com/DNSSDService;1";
+ Service = Components.classes[cid].createInstance();
+ Service = Service.QueryInterface(Components.interfaces.IDNSSDService);
+ }
+ catch (err)
+ {
+ alert(err);
+ return;
+ }
+
+ BrowseListener = this.browseListener;
+ ResolveListener = this.resolveListener;
+
+ try
+ {
+ Browse = Service.browse(0, "_http._tcp", "", BrowseListener );
+ }
+ catch ( err )
+ {
+ alert( err );
+ return;
+ }
+ },
+
+ cleanup: function()
+ {
+ if ( Browse != null )
+ {
+ Browse.stop();
+ Browse = null;
+ }
+ },
+
+
+ browseListener: function( service, add, interfaceIndex, error, serviceName, regtype, domain )
+ {
+ if ( error == 0 )
+ {
+ // First see if we can look this guy up
+
+ var treeView = document.getElementById( 'treeChildrenBrowseList' );
+ var treeItem = null;
+
+ for ( i = 1; i < treeView.childNodes.length; i++ )
+ {
+ var ti = treeView.childNodes[ i ];
+ var tr = ti.childNodes[ 0 ];
+ var tc = tr.childNodes[ 0 ];
+
+ if ( tc.getAttribute( 'label' ) == serviceName )
+ {
+ treeItem = ti;
+ break;
+ }
+ }
+
+ if ( add )
+ {
+ // If we've already seen this guy, then bump up his reference count
+
+ if ( treeItem )
+ {
+ var refcnt = treeItem.getUserData( 'refcnt' );
+ refcnt++;
+ }
+ else
+ {
+ var newTreeItem = document.createElement('treeitem');
+ var newTreeRow = document.createElement('treerow');
+ newTreeRow.setAttribute( 'properties', 'bonjourRow' );
+ var newTreeCell = document.createElement('treecell');
+ newTreeCell.setAttribute( 'label', serviceName );
+ newTreeCell.setAttribute( 'src', 'chrome://bonjour4firefox/content/_internal_bonjour4firefox.png' );
+
+ newTreeItem.appendChild( newTreeRow );
+ newTreeRow.appendChild( newTreeCell );
+ newTreeItem.setUserData( 'interfaceIndex', interfaceIndex, null );
+ newTreeItem.setUserData( 'serviceName', serviceName, null );
+ newTreeItem.setUserData( 'regtype', regtype, null );
+ newTreeItem.setUserData( 'domain', domain, null );
+ newTreeItem.setUserData( 'refcnt', 1, null );
+
+ // Insert in alphabetical order
+
+ var insertBefore = null;
+
+ for ( i = 1; i < treeView.childNodes.length; i++ )
+ {
+ var ti = treeView.childNodes[ i ];
+ var tr = ti.childNodes[ 0 ];
+ var tc = tr.childNodes[ 0 ];
+
+ if ( serviceName.toLowerCase() < tc.getAttribute( 'label' ).toLowerCase() )
+ {
+ insertBefore = ti;
+ break;
+ }
+ }
+
+ if ( insertBefore != null )
+ {
+ treeView.insertBefore( newTreeItem, insertBefore );
+ }
+ else
+ {
+ treeView.appendChild( newTreeItem );
+ }
+ }
+ }
+ else if ( treeItem )
+ {
+ var refcnt = treeItem.getUserData( 'refcnt' );
+
+ if ( --refcnt == 0 )
+ {
+ treeView.removeChild( treeItem );
+ }
+ }
+ }
+ else
+ {
+ alert( 'There was an error browsing for websites: ' + error );
+ }
+ },
+
+ listListener: function( event )
+ {
+ var treeBrowseList = document.getElementById( 'treeBrowseList' );
+
+ if ( treeBrowseList.currentIndex == 0 )
+ {
+ window._content.location="http://www.apple.com/macosx/features/bonjour";
+ }
+ else
+ {
+ var item = treeBrowseList.view.getItemAtIndex(treeBrowseList.currentIndex);
+
+ var interfaceIndex = item.getUserData("interfaceIndex");
+ var serviceName = item.getUserData("serviceName");
+ var regtype = item.getUserData("regtype");
+ var domain = item.getUserData("domain");
+
+ try
+ {
+ Resolve = Service.resolve( interfaceIndex, serviceName, regtype, domain, ResolveListener );
+ }
+ catch ( err )
+ {
+ alert( err );
+ return;
+ }
+ }
+ },
+
+ resolveListener: function( service, interfaceIndex, error, fullname, host, port, path )
+ {
+ if ( error == 0 )
+ {
+ window._content.location='http://' + host + ':' + port + path;
+ }
+ else
+ {
+ alert( 'There was an error resolving ' + fullname );
+ }
+
+ Resolve.stop();
+ },
+ };
+
+ ]]></script>
+</page>
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/content/browserOverlay.xul b/mDNSResponder/Clients/FirefoxExtension/extension/content/browserOverlay.xul
new file mode 100755
index 00000000..3b4d6683
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/content/browserOverlay.xul
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?xml-stylesheet href="chrome://bonjour4firefox/skin/overlay.css" type="text/css"?>
+<!DOCTYPE overlay SYSTEM "chrome://bonjour4firefox/locale/bonjour4firefox.dtd">
+<overlay id="bonjour4firefox-overlay"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ <script src="overlay.js"/>
+ <stringbundleset id="stringbundleset">
+ <stringbundle id="bonjour4firefox-strings" src="chrome://bonjour4firefox/locale/bonjour4firefox.properties"/>
+ </stringbundleset>
+
+ <menupopup id="viewSidebarMenu">
+ <menuitem observes="viewBonjour4FirefoxSidebar"/>
+ </menupopup>
+
+ <toolbarpalette id="BrowserToolbarPalette">
+ <toolbarbutton id="bonjour4firefox-toolbar-button"
+ label="&bonjour4firefoxToolbar.label;"
+ tooltiptext="&bonjour4firefoxToolbar.tooltip;"
+ oncommand="toggleSidebar('viewBonjour4FirefoxSidebar');"
+ class="toolbarbutton-1 chromeclass-toolbar-additional"/>
+ </toolbarpalette>
+
+ <broadcasterset id="mainBroadcasterSet">
+ <broadcaster id="viewBonjour4FirefoxSidebar"
+ autoCheck="false"
+ label="Bonjour"
+ type="checkbox" group="sidebar"
+ sidebarurl="chrome://bonjour4firefox/content/bonjour4firefox.xul"
+ sidebartitle="&bonjour4firefox.label;"
+ oncommand="toggleSidebar('viewBonjour4FirefoxSidebar');"/>
+ </broadcasterset>
+</overlay>
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/content/overlay.js b/mDNSResponder/Clients/FirefoxExtension/extension/content/overlay.js
new file mode 100755
index 00000000..f989caaf
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/content/overlay.js
@@ -0,0 +1,21 @@
+var bonjour4firefox =
+{
+ onLoad: function()
+ {
+ // initialization code
+ this.initialized = true;
+ this.strings = document.getElementById("bonjour4firefox-strings");
+ },
+ onMenuItemCommand: function(e)
+ {
+ var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
+ promptService.alert(window, this.strings.getString("helloMessageTitle"), this.strings.getString("helloMessage"));
+ },
+ onToolbarButtonCommand: function(e)
+ {
+ // just reuse the function above. you can change this, obviously!
+ bonjour4firefox.onMenuItemCommand(e);
+ }
+};
+
+window.addEventListener("load", function(e) { bonjour4firefox.onLoad(e); }, false);
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/defaults/preferences/bonjour4firefox.js b/mDNSResponder/Clients/FirefoxExtension/extension/defaults/preferences/bonjour4firefox.js
new file mode 100755
index 00000000..2965608a
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/defaults/preferences/bonjour4firefox.js
@@ -0,0 +1,2 @@
+// See http://kb.mozillazine.org/Localize_extension_descriptions
+pref("extensions.bonjour4firefox@apple.com.description", "chrome://bonjour4firefox/locale/bonjour4firefox.properties");
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/install.rdf b/mDNSResponder/Clients/FirefoxExtension/extension/install.rdf
new file mode 100755
index 00000000..37c0955e
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/install.rdf
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:em="http://www.mozilla.org/2004/em-rdf#">
+ <Description about="urn:mozilla:install-manifest">
+ <em:id>bonjour4firefox@apple.com</em:id>
+ <em:name>Bonjour Extension for Firefox</em:name>
+ <em:version>1.0</em:version>
+ <em:creator>Apple Inc.</em:creator>
+ <em:description>Bonjour Browsing Extension for Firefox</em:description>
+ <em:iconURL>chrome://bonjour4firefox/content/_internal_bonjour4firefox.png</em:iconURL>
+ <em:targetApplication>
+ <Description>
+ <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <!-- firefox -->
+ <em:minVersion>3.5</em:minVersion>
+ <em:maxVersion>3.6.*</em:maxVersion>
+ </Description>
+ </em:targetApplication>
+ </Description>
+</RDF>
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/locale/en-US/bonjour4firefox.dtd b/mDNSResponder/Clients/FirefoxExtension/extension/locale/en-US/bonjour4firefox.dtd
new file mode 100755
index 00000000..2e133f99
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/locale/en-US/bonjour4firefox.dtd
@@ -0,0 +1,6 @@
+<!ENTITY bonjour4firefox.label "Bonjour">
+<!ENTITY bonjour4firefoxToolbar.label "Bonjour">
+<!ENTITY bonjour4firefoxToolbar.tooltip "Display Bonjour enabled websites">
+<!ENTITY bonjour4firefoxSidebarOpenDefault.label "Open in current window">
+<!ENTITY bonjour4firefoxSidebarOpenTab.label "Open in new tab">
+<!ENTITY bonjour4firefoxSidebarOpenWindow.label "Open in new window">
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/locale/en-US/bonjour4firefox.properties b/mDNSResponder/Clients/FirefoxExtension/extension/locale/en-US/bonjour4firefox.properties
new file mode 100755
index 00000000..afed1abd
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/locale/en-US/bonjour4firefox.properties
@@ -0,0 +1,4 @@
+helloMessage=Hello World!
+helloMessageTitle=Hello
+prefMessage=Int Pref Value: %d
+extensions.bonjour4firefox.description=Bonjour Browsing Extension for Firefox
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/readme.txt b/mDNSResponder/Clients/FirefoxExtension/extension/readme.txt
new file mode 100755
index 00000000..71f1edc7
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/readme.txt
@@ -0,0 +1,21 @@
+This extension was generated by the Extension Wizard at
+http://ted.mielczarek.org/code/mozilla/extensionwiz/ .
+This extension is compatible only with Firefox 1.5 and
+above. Most of the files in this package are based on
+the 'helloworld' extension from the Mozillazine Knowledge Base.
+
+You can build an XPI for installation by running the
+build.sh script located in this folder. For development
+you should do the following:
+ 1. Unzip the entire contents of this package to somewhere,
+ e.g, c:\dev or /home/user/dev
+ 2. Put the full path to the folder (e.g. c:\dev\bonjour4firefox on
+ Windows, /home/user/dev/bonjour4firefox on Linux) in a file named
+ bonjour4firefox@apple.com and copy that file to
+ [your profile folder]\extensions\
+ 3. Restart Firefox.
+
+For more information, see the Mozillazine Knowledge Base:
+http://kb.mozillazine.org/Getting_started_with_extension_development
+
+-Ted Mielczarek <ted.mielczarek@gmail.com>
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/skin-darwin/_internal_toobar-button.png b/mDNSResponder/Clients/FirefoxExtension/extension/skin-darwin/_internal_toobar-button.png
new file mode 100644
index 00000000..2bd6c9dc
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/skin-darwin/_internal_toobar-button.png
Binary files differ
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/skin-darwin/overlay.css b/mDNSResponder/Clients/FirefoxExtension/extension/skin-darwin/overlay.css
new file mode 100644
index 00000000..f5f4a281
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/skin-darwin/overlay.css
@@ -0,0 +1,17 @@
+#bonjour4firefox-hello
+{
+ color: red ! important;
+}
+#bonjour4firefox-toolbar-button
+{
+ list-style-image: url("chrome://bonjour4firefox/skin/_internal_toolbar-button.png");
+ -moz-image-region: rect(0px 36px 23px 0px);
+}
+#bonjour4firefox-toolbar-button[disabled="true"]
+{
+ -moz-image-region: rect(23px 36px 46px 0px);
+}
+#bonjour4firefox-toolbar-button:hover:active
+{
+ -moz-image-region: rect(46px 36px 69px 0px);
+}
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/skin/_internal_toobar-button.png b/mDNSResponder/Clients/FirefoxExtension/extension/skin/_internal_toobar-button.png
new file mode 100755
index 00000000..d99a0c98
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/skin/_internal_toobar-button.png
Binary files differ
diff --git a/mDNSResponder/Clients/FirefoxExtension/extension/skin/overlay.css b/mDNSResponder/Clients/FirefoxExtension/extension/skin/overlay.css
new file mode 100755
index 00000000..b2865603
--- /dev/null
+++ b/mDNSResponder/Clients/FirefoxExtension/extension/skin/overlay.css
@@ -0,0 +1,21 @@
+#bonjour4firefox-hello
+{
+ color: black ! important;
+}
+#bonjour4firefox-toolbar-button
+{
+ list-style-image: url("chrome://bonjour4firefox/skin/_internal_toolbar-button.png");
+ -moz-image-region: rect(0px 24px 24px 0px);
+}
+#bonjour4firefox-toolbar-button:hover
+{
+ -moz-image-region: rect(24px 24px 48px 0px);
+}
+[iconsize="small"] #bonjour4firefox-toolbar-button
+{
+ -moz-image-region: rect( 0px 40px 16px 24px);
+}
+[iconsize="small"] #bonjour4firefox-toolbar-button:hover
+{
+ -moz-image-region: rect(24px 40px 40px 24px);
+}