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 = \
|
libsugarbrowser_la_CPPFLAGS = \
|
||||||
$(WARN_CFLAGS) \
|
$(WARN_CFLAGS) \
|
||||||
@ -22,6 +22,8 @@ libsugarbrowser_la_CPPFLAGS = \
|
|||||||
-I$(MOZILLA_INCLUDE_DIR)/webbrowserpersist \
|
-I$(MOZILLA_INCLUDE_DIR)/webbrowserpersist \
|
||||||
-I$(MOZILLA_INCLUDE_DIR)/widget \
|
-I$(MOZILLA_INCLUDE_DIR)/widget \
|
||||||
-I$(MOZILLA_INCLUDE_DIR)/xpcom \
|
-I$(MOZILLA_INCLUDE_DIR)/xpcom \
|
||||||
|
-I$(srcdir)/components/sessionstore \
|
||||||
|
-I$(srcdir)/components/browserhelper \
|
||||||
-DPLUGIN_DIR=\"$(libdir)/mozilla/plugins\" \
|
-DPLUGIN_DIR=\"$(libdir)/mozilla/plugins\" \
|
||||||
-DSHARE_DIR=\"$(pkgdatadir)\"
|
-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 <nsICommandManager.h>
|
||||||
#include <nsIClipboardDragDropHooks.h>
|
#include <nsIClipboardDragDropHooks.h>
|
||||||
|
|
||||||
#include "sessionstore/nsISessionStore.h"
|
#include "nsISessionStore.h"
|
||||||
|
|
||||||
#define SUGAR_PATH "SUGAR_PATH"
|
#define SUGAR_PATH "SUGAR_PATH"
|
||||||
|
|
||||||
|
@ -96,7 +96,9 @@ Makefile
|
|||||||
bin/Makefile
|
bin/Makefile
|
||||||
data/Makefile
|
data/Makefile
|
||||||
browser/Makefile
|
browser/Makefile
|
||||||
browser/sessionstore/Makefile
|
browser/components/Makefile
|
||||||
|
browser/components/sessionstore/Makefile
|
||||||
|
browser/components/browserhelper/Makefile
|
||||||
services/Makefile
|
services/Makefile
|
||||||
services/presence/Makefile
|
services/presence/Makefile
|
||||||
services/clipboard/Makefile
|
services/clipboard/Makefile
|
||||||
|
Loading…
Reference in New Issue
Block a user