Open
Bug 577744
Opened 14 years ago
Updated 2 years ago
Exceptions thrown in NSGetFactory are swallowed
Categories
(Core :: XPCOM, defect)
Core
XPCOM
Tracking
()
NEW
People
(Reporter: Fallen, Unassigned)
References
Details
(Keywords: testcase)
Attachments
(1 file)
(deleted),
application/x-xpinstall
|
Details |
STR:
1. Install Testcase Extension
2. Start Toolkit Application
3. Visit Error console
4. Execute Components.classes['@mozilla.org/test-exception;1'].createInstance();
Expected:
* Exception is shown both on startup and when creating an instance
Actual:
* This is the only error message you get:
Error: uncaught exception: [Exception... "Component returned failure code: 0x80570015 (NS_ERROR_XPC_CI_RETURNED_FAILURE) [nsIJSCID.createInstance]" nsresult: "0x80570015 (NS_ERROR_XPC_CI_RETURNED_FAILURE)" location: "JS frame :: javascript:%20Components.classes['@mozilla.org/test-exception;1'].createInstance(); :: <TOP_LEVEL> :: line 1" data: no]
Reporter | ||
Updated•14 years ago
|
OS: Linux → All
Hardware: x86 → All
Version: 1.9.2 Branch → Trunk
Comment 1•14 years ago
|
||
Hrm. I get the following in my error console:
Error: Component {2ece11c6-720b-496c-a047-3fe0372bed4f} is being loaded...
Source File: file:///c:/builds/test-profile/extensions/testexception@mozilla.kewis.ch/components/testException.js
Line: 39
Error: [Exception... "'Loading via category manager works, but now try with:
Components.classes['@mozilla.org/test-exception;1'].createInstance();' when calling method: [xpcIJSGetFactory::get]" nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)" location: "<unknown>" data: no]
These happen during profile-after-change. Then, when I run the .createInstance bit, I get:
Error: Component {2ece11c6-720b-496c-a047-3fe0372bed4f} is being loaded...
Source File: file:///c:/builds/test-profile/extensions/testexception@mozilla.kewis.ch/components/testException.js
Line: 39
Error: uncaught exception: [Exception... "Component returned failure code: 0x80570015 (NS_ERROR_XPC_CI_RETURNED_FAILURE) [nsIJSCID.createInstance]" nsresult: "0x80570015 (NS_ERROR_XPC_CI_RETURNED_FAILURE)" location: "JS frame :: javascript:%20Components.classes['@mozilla.org/test-exception;1'].createInstance(); :: <TOP_LEVEL> :: line 1" data: no]
I wonder if this is because there is JS higher up on the stack.
Comment 2•14 years ago
|
||
In NS_ScriptErrorReporter we're hitting this early-return which bz added in bug 461917.
If I understand everything here correctly, this code is intended to make sure that exceptions which are thrown across XPConnect boundaries are only reported if the caller isn't prepared to handle them. I don't understand why we don't have a stack of "I'm prepared to handle exceptions", rather than assuming that is the case, but oh well for now. I think the best thing to do here is probably something like JS_SaveFrameChain/JS_RestoreFrameChain around the component-eval/NSGetFactory calls. cc'ing bz/mrbkap for thoughts/confirmation.
Comment 3•14 years ago
|
||
I can confirm the first half of comment 2.... I have no idea about the second part, offhand. :(
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•