Add a browsehelper component which I'll use for pyxpcom integration.

master
Marco Pesenti Gritti 17 years ago
parent f13a49b08e
commit 04b81ee901

@ -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)\"

@ -0,0 +1 @@
SUBDIRS = browserhelper sessionstore

@ -0,0 +1,4 @@
nsIBrowserHelper.h
nsIBrowserHelper.xpt
stamp-nsIBrowserHelper.h
stamp-nsIBrowserHelper.xpt

@ -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

@ -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;
}

@ -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);
};

@ -63,7 +63,7 @@
#include <nsICommandManager.h>
#include <nsIClipboardDragDropHooks.h>
#include "sessionstore/nsISessionStore.h"
#include "nsISessionStore.h"
#define SUGAR_PATH "SUGAR_PATH"

@ -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

Loading…
Cancel
Save