Closed Bug 320266 Opened 14 years ago Closed 14 years ago

Many "Failed to load XPCOM Component:" info bubbles in the js-console when starting a new profile

Categories

(Calendar :: General, defect)

defect
Not set

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: jminta, Assigned: mattwillis)

Details

(Keywords: regression, Whiteboard: [patch in hand])

Attachments

(3 files)

regression window: 20051213: no bug, 20051214: bug

When starting a new profile, I get a ton of info messages about failures to load particular components.  I first get

Failed to load XPCOM component: /home/joey/Sandbox/sb-12-14/sunbird/components/libimgicon.so
Failed to load XPCOM component: /home/joey/Sandbox/sb-12-14/sunbird/components/libmozgnome.so

Then I get similar messages for all of the javascript calendar-components.

The cpp components appear to be unaffected.

Perhaps bug 316416?
More info:  I get similar messages starting up a thunderbird build from this morning.
Failed to load XPCOM component: /home/joey/.Trash/thunderbird/components/libmozgnome.so
Failed to load XPCOM component: /home/joey/.Trash/thunderbird/components/myspell/en-US.dic
Failed to load XPCOM component: /home/joey/.Trash/thunderbird/components/myspell/en-US.aff

etc...

Note that there appears to be no loss of functionality.

Triage suggestions?  This clearly doesn't belong in Calendar.
The messages about imgicon, mozgnome, and the dictionaries are "normal" (we expect not to load some of these components when running on machines with downrev gnome/gtk installs).

What's this about all the calendar components not loading?
After the failures in libimgicon and libmozgnome, I get the same messages about the calendar js-components in the following order:

Failed to load XPCOM component: /home/joey/Sandbox/sb-12-14/sunbird/components/calAlarmService.js

calAttachment.js
calAttendee.js
calCalendarManager.js
calRecurrenceInfo.js
calEvent.js
calItemBase.js
calTodo.js

Then the same messages about the components that use the import/export categories
calOutlookCSVImportExport.js
calHtmlExport.js
calIcsImportExport.js

The odd thing here is that the ordering doesn't really seem to match how they're listed in http://lxr.mozilla.org/mozilla/source/calendar/base/src/calItemModule.js#79

calItemBase should definitely be either first or last.

As I said, the components actually are being loaded and Sunbird functions without a problem.  So, the only problem is that these messages are appearing.
This is in fact a calendar bug, because calendar is putting files into components/ which don't directly implement NSGetModule (these are subcomponents, calItemModule.js is the actual component-that-implements-NSGetModule).

The possible solutions include
1) renaming these submodules with another extension such as .js-submodule
2) moving these submodule files into a different directory such as res/modules
3) making each subcomponent a real component (blech)
Actually option 1) wouldn't fix this bug, because we still won't have a componentloader for .js-submodule files.
(In reply to comment #5)
> Actually option 1) wouldn't fix this bug, because we still won't have a
> componentloader for .js-submodule files.
> 

Why wouldn't that fix it?  Not having a component loader for those files means that noone would try and automagically load them, and they'd be loaded manually from calItemModule.js.

The componentloader code issues a console warning about any file in components/ that isn't loaded, even if there isn't a componentloader for that file extension.
Assignee: mostafah → nobody
I get the same messages as in comment #3, but alarms don't work at all, along with a few other functions (import/export...).

This has happened with sunbird 0.3a1, the nightly build 20051228 and a home made build based on 20051229 source code. All of them under Windows XP, built with MSVC6 as detailed in the doc. I've never had any alarm working in any of these versions.

The order of the last few messages is slightly different in my case. The components are always the same .js scripts.
(In reply to comment #8)
> I get the same messages as in comment #3, but alarms don't work at all, along
> with a few other functions (import/export...).

These warnings themselves are because the components in question have already been loaded.  Any functionality issues are separate problems.  These warnings are merely confusing and a waste of cycles.
No longer blocks: lightning-0.1
Flags: blocking0.3+
This uses the libs and install targets to put .js files that don't implement nsIModule that previously lived in /bin/components in /bin/js.

It updates other files so they can find the files in their new location.
Assignee: nobody → mattwillis
Status: NEW → ASSIGNED
Attachment #230210 - Flags: first-review?(dmose)
There's some goofy stuff in the patch that doesn't show up even after checking out fresh copies of the files.

Rest assured I won't commit the parts where it's adding newlines all over the place or where it's rearranging const iosvcIID 
Whiteboard: [patch in hand]
Attached patch diff -wSplinter Review
Comment on attachment 230210 [details] [diff] [review]
rev0 - uses makefile targets to put non-module files elsewhere

calendar/base/src/Makefile.in

Fix tabs vs. space in EXTRA_SCRIPTS.

+libs:: $(EXTRA_SCRIPTS)
+	$(NSINSTALL) -D $(DIST)/bin/js
+	$(INSTALL) $^ $(DIST)/bin/js
+
+install:: $(EXTRA_SCRIPTS)
+	$(SYSINSTALL) $(IFLAGS1) $^ $(DESTDIR)$(mozappdir)/js
See if we can use NSINSTALL for all three. If not, add comments explaining why not.

Index: calendar/base/src/calItemModule.js

http://lxr.mozilla.org/mozilla/source/js/src/xpconnect/loader/mozJSComponentLoader.cpp#971

+        // We expect to find the subscripts in ./../js
+        var appdir = __LOCATION__.parent.parent;
+        appdir.append("js");
If __LOCATION__.parent ==  . make sure to make that clear in the comment.


Index: calendar/import-export/Makefile.in

Same NSINSTALL-fu from above.

+ install:: $(JS_SUBSCRIPTS)
Fix to be EXTRA_SCRIPTS


-	calImportExportModule.js \
+    calOutlookCSVImportExport.js \
Fix tab vs. space


r=dmose with those changes
Patch with nits addressed checked in on MOZILLA_1_8_BRANCH and trunk

-> FIXED
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Attachment #230210 - Flags: first-review?(dmose) → first-review+
Bustage fix for lightning.

The patch changes from dist/bin/js to using FINAL_TARGET.

From http://lxr.mozilla.org/mozilla/source/config/config.mk#71

# FINAL_TARGET specifies the location into which we copy end-user-shipped
# build products (typelibs, components, chrome).
#
# It will usually be the well-loved $(DIST)/bin, today, but can also be an
# XPI-contents staging directory for ambitious and right-thinking extensions.
Attachment #231045 - Flags: first-review?(jminta)
Comment on attachment 231045 [details] [diff] [review]
lightning bustage fix

bah.. makefiles. r=jminta
Attachment #231045 - Flags: first-review?(jminta) → first-review+
You need to log in before you can comment on or make changes to this bug.