User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.10) Gecko/20060804 Firefox/1.0.4 (Debian package 1.0.4-2sarge10) Build Identifier: 220.127.116.11 The contract id for the style-sheet service (NS_STYLESHEETSERVICE_CID) is defined in layout/base/nsStyleSheeetService.h, which is not exported into the SDK. This makes nsStyleSheetService hard to use when embedding Mozilla - I had to hunt around in LXR and then copy it into my own code. Reproducible: Always
We should have some header for gklayout to export contracts and CIDs... nsLayoutCID doesn't seem to be it. :(
fwiw, CID and contract ID are different. also, nsIStyleSheetService is not frozen, so that's not part of the SDK either.
Yeah, I think we should be exporting the contractid... and we should probably work on fixing nsIStylesheetService.
Having now found an explanation of CID vs contract id, I suppose I mean CID, although perhaps it would be more appropriate to expose a contract id (or even both). nsIStyleSheetService.h is included in the Debian package libxul-dev, which I believe is a package of the "SDK" that XULRunner builds. If the interface isn't frozen that's another problem, as it seems like something that's primarily useful for embedders who want an easy way to customise the browser. I seem to remember Boris pointed me towards it some time back when I asked about setting style-sheets in mozilla.dev.embedding, though I couldn't make use of it then.
> nsIStyleSheetService.h is included in the Debian package libxul-dev, which I > believe is a package of the "SDK" Er... nsIStyleSheetService.idl is in XPIDLSRCS, not in SDK_XPIDLSRCS. If Debian is claiming it's part of some SDK, we need to talk to them about it. :( And yes, this is yet another case where something useful simply cannot be done with just the SDK... Hence me pointing to this service on .embedding even though it's not frozen yet.
You're right, it's not part of the "SDK". However, config/rules.mk includes the rule: install:: $(patsubst %.idl,$(XPIDL_GEN_DIR)/%.h, $(XPIDLSRCS)) ifndef NO_INSTALL $(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(includedir)/$(MODULE) endif This seems to cause "make install" to install headers for *all* interfaces. The Debian package libxul-dev contains everything that "make install" puts in /usr/include/xulrunner, among other directories.
The problems with "make install" and the "SDK" being totally different are well known and being worked on for FF3/Gecko1.9. bz, do you want to morph this bug to move this contract/cid into a nsLayoutContractIDs.h file?
That wouldn't be morphing. That's what this bug is about.
Marking a bunch of bugs in the "Embedding: APIs" component INCOMPLETE in preparation to archive that component. If I have done this incorrectly, please reopen the bugs and move them to a more correct component as we don't have "embedding" APIs any more.