Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Pesenti Gritti <marco@localhost.localdomain>2007-05-13 14:26:55 (GMT)
committer Marco Pesenti Gritti <marco@localhost.localdomain>2007-05-13 14:26:55 (GMT)
commit04b81ee901568c05e8900a61ff9f5c25691e5726 (patch)
tree208ae23ac5944733c3328ec7f4f0c72883989374
parentf13a49b08edeb14e942cb4c8fc04ed04cbf4799d (diff)
Add a browsehelper component which I'll use for pyxpcom integration.
-rw-r--r--browser/Makefile.am4
-rw-r--r--browser/components/Makefile.am1
-rw-r--r--browser/components/browserhelper/.gitignore4
-rw-r--r--browser/components/browserhelper/Makefile.am32
-rw-r--r--browser/components/browserhelper/nsBrowserHelper.js98
-rw-r--r--browser/components/browserhelper/nsIBrowserHelper.idl13
-rw-r--r--browser/components/sessionstore/.gitignore (renamed from browser/sessionstore/.gitignore)0
-rw-r--r--browser/components/sessionstore/Makefile.am (renamed from browser/sessionstore/Makefile.am)0
-rw-r--r--browser/components/sessionstore/nsISessionStore.idl (renamed from browser/sessionstore/nsISessionStore.idl)0
-rw-r--r--browser/components/sessionstore/nsSessionStore.js (renamed from browser/sessionstore/nsSessionStore.js)0
-rw-r--r--browser/sugar-browser.cpp2
-rw-r--r--configure.ac4
12 files changed, 155 insertions, 3 deletions
diff --git a/browser/Makefile.am b/browser/Makefile.am
index 9a7e4b0..3805566 100644
--- a/browser/Makefile.am
+++ b/browser/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = sessionstore
+SUBDIRS = components
libsugarbrowser_la_CPPFLAGS = \
$(WARN_CFLAGS) \
@@ -22,6 +22,8 @@ libsugarbrowser_la_CPPFLAGS = \
-I$(MOZILLA_INCLUDE_DIR)/webbrowserpersist \
-I$(MOZILLA_INCLUDE_DIR)/widget \
-I$(MOZILLA_INCLUDE_DIR)/xpcom \
+ -I$(srcdir)/components/sessionstore \
+ -I$(srcdir)/components/browserhelper \
-DPLUGIN_DIR=\"$(libdir)/mozilla/plugins\" \
-DSHARE_DIR=\"$(pkgdatadir)\"
diff --git a/browser/components/Makefile.am b/browser/components/Makefile.am
new file mode 100644
index 0000000..765dbec
--- /dev/null
+++ b/browser/components/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = browserhelper sessionstore
diff --git a/browser/components/browserhelper/.gitignore b/browser/components/browserhelper/.gitignore
new file mode 100644
index 0000000..f722dc5
--- /dev/null
+++ b/browser/components/browserhelper/.gitignore
@@ -0,0 +1,4 @@
+nsIBrowserHelper.h
+nsIBrowserHelper.xpt
+stamp-nsIBrowserHelper.h
+stamp-nsIBrowserHelper.xpt
diff --git a/browser/components/browserhelper/Makefile.am b/browser/components/browserhelper/Makefile.am
new file mode 100644
index 0000000..0fda2f8
--- /dev/null
+++ b/browser/components/browserhelper/Makefile.am
@@ -0,0 +1,32 @@
+sessionstoredir = $(pkgdatadir)/mozilla/components
+
+sessionstore_DATA = \
+ nsIBrowserHelper.xpt \
+ nsBrowserHelper.js
+
+BUILT_SOURCES = \
+ nsIBrowserHelper.xpt \
+ nsIBrowserHelper.h
+
+stamp_files = \
+ stamp-nsIBrowserHelper.xpt \
+ stamp-nsIBrowserHelper.h
+
+nsIBrowserHelper.xpt: stamp-nsIBrowserHelper.xpt
+ @true
+stamp-nsIBrowserHelper.xpt: nsIBrowserHelper.idl
+ $(XPIDL) -m typelib -w -v -I $(MOZILLA_IDL_DIR) -e nsIBrowserHelper.xpt \
+ $(srcdir)/nsIBrowserHelper.idl \
+ && echo timestamp > $(@F)
+
+nsIBrowserHelper.h: stamp-nsIBrowserHelper.h
+ @true
+stamp-nsIBrowserHelper.h: nsIBrowserHelper.idl
+ $(XPIDL) -m header -w -v -I $(MOZILLA_IDL_DIR) -e nsIBrowserHelper.h \
+ $(srcdir)/nsIBrowserHelper.idl \
+ && echo timestamp > $(@F)
+
+CLEANFILES = $(stamp_files) $(BUILT_SOURCES)
+DISTCLEANFILES = $(stamp_files) $(BUILT_SOURCES)
+MAINTAINERCLEANFILES = $(stamp_files) $(BUILT_SOURCES)
+EXTRA_DIST = nsIBrowserHelper.idl nsBrowserHelper.js
diff --git a/browser/components/browserhelper/nsBrowserHelper.js b/browser/components/browserhelper/nsBrowserHelper.js
new file mode 100644
index 0000000..c57e993
--- /dev/null
+++ b/browser/components/browserhelper/nsBrowserHelper.js
@@ -0,0 +1,98 @@
+const Cc = Components.classes;
+const Ci = Components.interfaces;
+const Cr = Components.results;
+
+const CID = Components.ID("{475e1194-92bc-4e03-92f3-5ad6ccddaca3}");
+const CONTRACT_ID = "@laptop.org/browser/browserhelper;1";
+const CLASS_NAME = "Browser Helper";
+
+var browser;
+
+function BrowserHelperService() {
+}
+
+BrowserHelperService.prototype = {
+
+/* ........ nsIBrowserHelper API .............. */
+
+ getBrowser: function bh_getBrowser(aId) {
+ return browser;
+ },
+
+ registerBrowser: function bh_registerBrowser(aBrowser, aId) {
+ browser = aBrowser;
+ },
+
+ unregisterBrowser: function bh_unregisterBrowser(aId) {
+ },
+
+ QueryInterface: function(aIID) {
+ if (!aIID.equals(Ci.nsISupports) &&
+ !aIID.equals(Ci.nsIBrowserHelper)) {
+ Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
+ return null;
+ }
+
+ return this;
+ }
+;
+
+/* :::::::: Service Registration & Initialization ::::::::::::::: */
+
+/* ........ nsIModule .............. */
+
+const BrowserHelperModule = {
+
+ getClassObject: function(aCompMgr, aCID, aIID) {
+ if (aCID.equals(CID)) {
+ return BrowserHelperFactory;
+ }
+
+ Components.returnCode = Cr.NS_ERROR_NOT_REGISTERED;
+ return null;
+ },
+
+ registerSelf: function(aCompMgr, aFileSpec, aLocation, aType) {
+ aCompMgr.QueryInterface(Ci.nsIComponentRegistrar);
+ aCompMgr.registerFactoryLocation(CID, CLASS_NAME, CONTRACT_ID, aFileSpec, aLocation, aType);
+ },
+
+ unregisterSelf: function(aCompMgr, aLocation, aType) {
+ aCompMgr.QueryInterface(Ci.nsIComponentRegistrar);
+ aCompMgr.unregisterFactoryLocation(CID, aLocation);
+ },
+
+ canUnload: function(aCompMgr) {
+ return true;
+ }
+}
+
+/* ........ nsIFactory .............. */
+
+const BrowserHelperFactory = {
+
+ createInstance: function(aOuter, aIID) {
+ if (aOuter != null) {
+ Components.returnCode = Cr.NS_ERROR_NO_AGGREGATION;
+ return null;
+ }
+
+ return (new BrowserHelperService()).QueryInterface(aIID);
+ },
+
+ lockFactory: function(aLock) { },
+
+ QueryInterface: function(aIID) {
+ if (!aIID.equals(Ci.nsISupports) && !aIID.equals(Ci.nsIModule) &&
+ !aIID.equals(Ci.nsIFactory) && !aIID.equals(Ci.nsIBrowserHelper)) {
+ Components.returnCode = Cr.NS_ERROR_NO_INTERFACE;
+ return null;
+ }
+
+ return this;
+ }
+};
+
+function NSGetModule(aComMgr, aFileSpec) {
+ return BrowserHelperModule;
+}
diff --git a/browser/components/browserhelper/nsIBrowserHelper.idl b/browser/components/browserhelper/nsIBrowserHelper.idl
new file mode 100644
index 0000000..08821fd
--- /dev/null
+++ b/browser/components/browserhelper/nsIBrowserHelper.idl
@@ -0,0 +1,13 @@
+#include "nsISupports.idl"
+
+interface nsIWebBrowser;
+
+[scriptable, uuid(475e1194-92bc-4e03-92f3-5ad6ccddaca3)]
+interface nsIBrowserHelper : nsISupports
+{
+ nsIWebBrowser getBrowser(in ACString id);
+
+ void registerBrowser(in ACString id, in nsIWebBrowser browser);
+
+ void unregisterBrowser(in ACString id);
+};
diff --git a/browser/sessionstore/.gitignore b/browser/components/sessionstore/.gitignore
index 3e245c1..3e245c1 100644
--- a/browser/sessionstore/.gitignore
+++ b/browser/components/sessionstore/.gitignore
diff --git a/browser/sessionstore/Makefile.am b/browser/components/sessionstore/Makefile.am
index 75f46ff..75f46ff 100644
--- a/browser/sessionstore/Makefile.am
+++ b/browser/components/sessionstore/Makefile.am
diff --git a/browser/sessionstore/nsISessionStore.idl b/browser/components/sessionstore/nsISessionStore.idl
index 97f9668..97f9668 100644
--- a/browser/sessionstore/nsISessionStore.idl
+++ b/browser/components/sessionstore/nsISessionStore.idl
diff --git a/browser/sessionstore/nsSessionStore.js b/browser/components/sessionstore/nsSessionStore.js
index 0ce3401..0ce3401 100644
--- a/browser/sessionstore/nsSessionStore.js
+++ b/browser/components/sessionstore/nsSessionStore.js
diff --git a/browser/sugar-browser.cpp b/browser/sugar-browser.cpp
index 4afbeaa..856dc9a 100644
--- a/browser/sugar-browser.cpp
+++ b/browser/sugar-browser.cpp
@@ -63,7 +63,7 @@
#include <nsICommandManager.h>
#include <nsIClipboardDragDropHooks.h>
-#include "sessionstore/nsISessionStore.h"
+#include "nsISessionStore.h"
#define SUGAR_PATH "SUGAR_PATH"
diff --git a/configure.ac b/configure.ac
index eb3bad3..6f4f2a3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,7 +96,9 @@ Makefile
bin/Makefile
data/Makefile
browser/Makefile
-browser/sessionstore/Makefile
+browser/components/Makefile
+browser/components/sessionstore/Makefile
+browser/components/browserhelper/Makefile
services/Makefile
services/presence/Makefile
services/clipboard/Makefile