Add a browsehelper component which I'll use for pyxpcom integration.
This commit is contained in:
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)\"
|
||||
|
||||
|
1
browser/components/Makefile.am
Normal file
1
browser/components/Makefile.am
Normal file
@ -0,0 +1 @@
|
||||
SUBDIRS = browserhelper sessionstore
|
4
browser/components/browserhelper/.gitignore
vendored
Normal file
4
browser/components/browserhelper/.gitignore
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
nsIBrowserHelper.h
|
||||
nsIBrowserHelper.xpt
|
||||
stamp-nsIBrowserHelper.h
|
||||
stamp-nsIBrowserHelper.xpt
|
32
browser/components/browserhelper/Makefile.am
Normal file
32
browser/components/browserhelper/Makefile.am
Normal file
@ -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
|
98
browser/components/browserhelper/nsBrowserHelper.js
Normal file
98
browser/components/browserhelper/nsBrowserHelper.js
Normal file
@ -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;
|
||||
}
|
13
browser/components/browserhelper/nsIBrowserHelper.idl
Normal file
13
browser/components/browserhelper/nsIBrowserHelper.idl
Normal file
@ -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…
Reference in New Issue
Block a user