Closed Bug 219233 Opened 21 years ago Closed 21 years ago

Move nsIChromeRegistry.idl into content (fix bad GRE dependencies)

Categories

(Core Graveyard :: Embedding: GRE Core, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: benjamin, Assigned: benjamin)

References

Details

Attachments

(2 files)

We currently have four implementations of nsIChromeRegistry... rdf/chrome/* (seamonkey) chrome/* (fbird/tbird) embedding/lite/* (not finished?) embedding/minimo/chromelite/* Due to the fact that the chrome registry has been forked between seamonkey and the XUL apps, I would like to 1) move all chrome registry impls out of the GRE and 2) move nsIChromeRegistry.idl into content (because the interface is used within the GRE by content and xpinstall), The actual packaging change will be part of bug 20640, so this bug is just for the .idl move.
I don't see a chrome in lxr. is that something that doesn't get indexed? The last two "implementations" you listed will eventually merge and potentially become the thing the the GRE should include.... consider this.... The GRE should have some basic implementation of something.... call it chrome if you want... basically the GRE shouldn't require an embedder to build something that allows gecko to fetch its own required files. I do not think that these core files require anything above the res protocol. That is exactly what the chromelite implementation does.
mozilla/chrome is not part of seamonkeyall (see http://lxr.mozilla.org/mozilla/source/chrome/ it was forked by hyatt (with brendan's permission) for firebird, because we are planning on incompatible changes to the RDF schemas in firebird that we can't really make in seamonkey. But I don't think is necessary to fork the interface (and it creates dependency nightmares). Which "core required files" are you thinking about? The GRE currently *doesn't* contain chrome files, because there is no way to register them properly... perhaps we should ship chromelite with the GRE and allow seamonkey/firebird to override this impl separately?
we should have something in the GRE that loads the set of files, currently reference via chrome URLS, that a any 'chromeless' embedding application will require. I believe that alec as attempting to do this with this embedding/lite work.
I agree WRT having some sort of chromeservice in embedding/GRE, but I want to limit this bug very precisely to the duplicated nsIChromeRegistry.idl header and the bad dependencies it creates... we can fix the packaging issues in bug 20640 or followup bugs.
Attachment #131509 - Flags: superreview?(dougt)
Attachment #131509 - Flags: review?(hyatt)
Benjamin, I assume you will get the file moved in CVS to preserve cvs history, right?
It appears that normalize() is already called. The comments for nsILocalFile specifically disallow initializing it with a relative path. http://lxr.mozilla.org/seamonkey/source/xpcom/io/nsDirectoryService.cpp#256
oops, that last comment was for another bug
Attachment #132826 - Flags: review?(peterv)
moa=jst,peterv for moving the interface into content.
Attachment #132826 - Flags: review?(peterv)
Blocks: gre
Attachment #131509 - Flags: superreview?(dougt)
Attachment #131509 - Flags: review?(hyatt)
This looks like it's related to the recent checkins, let me know if I should file a new bug on it: c++ -o regchrome.o -c -DOSTYPE=\"Darwin6.8\" -DOSARCH=\"Darwin\" -I../../../dist/include/xpcom -I../../../dist/include/chrome -I../../../dist/include/necko -I../../../dist/include/string -I../../../dist/include/rdf -I../../../dist/include -I../../../dist/include -I/Volumes/Vol2/jerry/src/firebird/Firebird-2003-12-22-06/dist/include/nspr -I/usr/X11R6/include -mdynamic-no-pic -I/sw/include -no-cpp-precomp -I/usr/X11R6/include -fno-rtti -fno-exceptions -Wall -Wconversion -Wpointer-arith -Wcast-align -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-long-long -I/sw/include -no-cpp-precomp -fpascal-strings -no-cpp-precomp -fno-common -fshort-wchar -I/Developer/Headers/FlatCarbon -F/System/Library/Frameworks -pipe -DNDEBUG -DTRIMMED -O -I/sw/include -no-cpp-precomp -I/usr/X11R6/include -DMOZILLA_CLIENT -include ../../../mozilla-config.h -Wp,-MD,.deps/regchrome.pp regchrome.cpp regchrome.cpp:25:31: nsIChromeRegistry.h: No such file or directory regchrome.cpp: In function `int main(int, char**)': regchrome.cpp:97: error: `nsIChromeRegistry' undeclared (first use this function)
Fixed on trunk. This broke camino, but I don't know how to fix it. Also just fixed he firebird build bustage in comment #9 which didn't appear on the tinderboxen.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
This looks like it *might* have broken the Firebird build. See http://forums.mozillazine.org/viewtopic.php?t=42069 for reports from several people who have reported the build process broken. Can someone look into this? The people in the MozillaZine post may also be checking this out from the other end.
I had no time to figure this out but hacked it to work by doing a "find mozilla -name 'nsIChromeRegistry.h' -print" and cp that file to `~./mozilla/chrome/tools/chromereg' and it compiled fine. I think it's a make export problem due to the nsIChrome*.idl creating it's respective *.h file, slapping it in the subdir "_*" and in dist/* but somehow not exporting it correctly. (although it *reports* it as exporting it correctly during the build). I know this is pure babbling, but have only got a few minutes at home right now to mess with it. I'd also done patch to Makefile.in ~./mozilla/chrome/tools/chromereg', but everytime I do a fix this way, I realize that I've not yet got enough of the big picture to be sure I'm not harming some other part of the tree. -------- Lastly for now, the other technique that worked was to cd to ~./mozilla/chrome/tools/chromereg, and do a make from there after configure but before the main toplvlsrc make. This implies that a simple reordering of the make's might be of use.
#10 the fix for camino is present in 229207
so where did chrome.xpt move to? the "fix" that ludo suggested for camino was to no longer include it, but i can't believe that's correct.
Blocks: 141090
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: