Closed
Bug 384693
Opened 17 years ago
Closed 17 years ago
"Error / Exception / NS_NOINTERFACE / nsBlocklistService.js :: anonymous :: line 348", when checking for "blocklist"
Categories
(SeaMonkey :: General, defect)
Tracking
(Not tracked)
RESOLVED
DUPLICATE
of bug 374499
seamonkey2.0a1
People
(Reporter: sgautherie, Unassigned)
Details
(Whiteboard: [Steps: comment 8])
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a6pre) Gecko/2007061602 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
{{
Error: [Exception... "'Component does not have requested interface' when calling method: [nsIInterfaceRequestor::getInterface]" nsresult: "0x80004002 (NS_NOINTERFACE)" location: "JS frame :: file:///.../seamonkey/components/nsExtensionManager.js :: anonymous :: line 2454" data: no]
Source File: file:///.../seamonkey/components/nsExtensionManager.js
Line: 2454
Error: [Exception... "'Component does not have requested interface' when calling method: [nsIInterfaceRequestor::getInterface]" nsresult: "0x80004002 (NS_NOINTERFACE)" location: "<unknown>" data: no]
Error: [Exception... "'Component does not have requested interface' when calling method: [nsIInterfaceRequestor::getInterface]" nsresult: "0x80004002 (NS_NOINTERFACE)" location: "<unknown>" data: no]
}}
That's
{{
notify: function() {
[...]
var self = this;
request.onerror = function(event) { self.onXMLError(event); };
request.onload = function(event) { self.onXMLLoad(event); }; // 2454
request.send(null);
},
}}
I guess this happens when the ExtensionManager triggers to check something ?
Reporter | ||
Comment 1•17 years ago
|
||
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a7pre) Gecko/200707280303 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
(Line number is 2432 now.)
Robert, could you help (me) triaging this one ? Thanks.
Summary: "Error / Exception / NS_NOINTERFACE / nsExtensionManager.js :: anonymous :: line 2454" → "Error / Exception / NS_NOINTERFACE / nsExtensionManager.js :: anonymous :: line 2432"
Comment 2•17 years ago
|
||
I'm pretty sure that this appreaing in SeaMonkey's error console is fallout from the work on getting View > Apply Theme working.
I think that on the first browser window, we somehow fail to load the list of themes into that list on the menu, triggering the code that spits out those errors. Interestingly, on opening further browser windows, the menu gets correctly filled and the errors don't get repeated in the error console.
Comment 3•17 years ago
|
||
Can you try this change to bin/components/nsExtensionManager.js to see if it helps? Look for the line this._ptr = gRDF.GetDataSource("rdf:extensions"); and change it to this._ptr = getContainer(this._ds, this._ds._itemRoot).DataSource;
Reporter | ||
Comment 4•17 years ago
|
||
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a8pre) Gecko/200708040202 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
(In reply to comment #2)
> from the work on getting View > Apply Theme working.
Each time opening this menu item:
{{
Error: uncaught exception: [Exception... "Component returned failure code: 0x80570018 (NS_ERROR_XPC_BAD_IID) [nsIJSCID.getService]" nsresult: "0x80570018 (NS_ERROR_XPC_BAD_IID)" location: "JS frame :: chrome://navigator/content/navigator.js :: checkTheme :: line 2476" data: no]
}}
> I think that on the first browser window, we somehow fail to load the list of
> themes into that list on the menu, triggering the code that spits out those
Indeed, I get "Get New Themes" and a separator only: no theme name(s).
> errors. Interestingly, on opening further browser windows, the menu gets
> correctly filled and the errors don't get repeated in the error console.
Not for me: every times, every windows.
*****
(In reply to comment #3)
> Can you try this change to bin/components/nsExtensionManager.js to see if it
I (wanted to) tried, but I miss "steps" to reproduce this error :-/
Comment 5•17 years ago
|
||
Maybe applying the patch in bug 382963 will get rid of some of your errors.
Comment 6•17 years ago
|
||
(In reply to comment #3)
> Can you try this change to bin/components/nsExtensionManager.js to see if it
> helps? Look for the line this._ptr = gRDF.GetDataSource("rdf:extensions"); and
> change it to this._ptr = getContainer(this._ds, this._ds._itemRoot).DataSource;
Actually, this makes the problem go away for me - and it makes the apply themes menu come up in the first Window (with the patch of bug 382963 applied, of course).
Reporter | ||
Comment 7•17 years ago
|
||
(In reply to comment #4)
> > from the work on getting View > Apply Theme working.
>
> Each time opening this menu item:
> {{
> Error: uncaught exception: [Exception... "Component returned failure code:
> 0x80570018 (NS_ERROR_XPC_BAD_IID) [nsIJSCID.getService]" nsresult: "0x80570018
> (NS_ERROR_XPC_BAD_IID)" location: "JS frame ::
> chrome://navigator/content/navigator.js :: checkTheme :: line 2476" data: no]
> }}
This submenu display and exception were fixed by bug 382963.
Reporter | ||
Comment 8•17 years ago
|
||
(In reply to comment #3)
> Can you try this change to bin/components/nsExtensionManager.js to see if it
> helps? Look for the line this._ptr = gRDF.GetDataSource("rdf:extensions"); and
> change it to this._ptr = getContainer(this._ds, this._ds._itemRoot).DataSource;
This was checked in for bug 383116.
(But don't help here.)
*****
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a8pre) Gecko/200708090202 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
Current bug is still there.
Eventually, I found how to trigger/reproduce it:
1. In account <prefs.js>, set |user_pref("app.update.lastUpdateTime.blocklist-background-update-timer", 118);|.
2. In global <seamonkey/defaults/pref/browser-prefs.js>, set |pref("app.update.timer", 1000);|.
3. Start SeaMonkey (and open the error console).
(Seems +/- obvious looking at that code, afterward(!).)
|uri.spec = "https://addons.mozilla.org/blocklist/1/%7B92650c4d-4b8e-4d2a-b7eb-24ecf4f6b63a%7D/2.0a1pre/"|
and loads
{{
<?xml version="1.0"?>
<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist">
</blocklist>
}}
if I try it manually in the browser.
Summary: "Error / Exception / NS_NOINTERFACE / nsExtensionManager.js :: anonymous :: line 2432" → "Error / Exception / NS_NOINTERFACE / nsExtensionManager.js :: anonymous :: line 2432", when checking for "blocklist"
Whiteboard: [Steps: comment 8]
Reporter | ||
Comment 9•17 years ago
|
||
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a8pre) Gecko/200708100202 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
That's another case of wrong line number report from the JS engine:
{{
var Blocklist = {
[...]
notify: function() {
[...]
var self = this;
request.onerror = function(event) { self.onXMLError(event); };
request.onload = function(event) { self.onXMLLoad(event); }; // (2432)
request.send(null); // <-- This IS the line which triggers the exception(s) !
},
}}
Comment 10•17 years ago
|
||
I think this happens because XMLHttpRequest expects its notification callbacks to provide nsIProgressEventSink.
Reporter | ||
Comment 11•17 years ago
|
||
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a8pre) Gecko/200708110202 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
Commenting out
{{
request.channel.notificationCallbacks = new BadCertHandler(); // 2426
}}
does get rid of the exceptions.
Reporter | ||
Comment 12•17 years ago
|
||
I manually patched |BadCertHandler.prototype| in <nsExtensionManager.js>:
I added a |dump(iid);| (...) in the |QueryInterface| failure case:
{{
before |request.send(null);|
{09b54ec1-d98a-49a9-bc95-3219e8b55089} = nsIDocShellTreeItem
after |request.send(null);|
{d974c99e-4148-4df9-8d98-de834a2f6462} = nsIProgressEventSink
{10ed386d-8598-408c-b571-e75ad18edeb0} = nsIDocShell
}}
Then, I added |Components.interfaces.nsIProgressEventSink / onProgress / onStatus|:
this solved its related |location: "<unknown>"| exception, but left the other one(s).
Reporter | ||
Comment 13•17 years ago
|
||
The only other place where <badCertHandler.js> is used is in </toolkit/mozapps/update/src/nsUpdateService.js.in>:
{{
1902 checkForUpdates: function(listener, force) {
...
1913 this._request.channel.notificationCallbacks = new BadCertHandler();
...
1918 this._request.onerror = function(event) { self.onError(event); };
1919 this._request.onload = function(event) { self.onLoad(event); };
1920 this._request.onprogress = function(event) { self.onProgress(event); };
...
1933 onProgress: function(event) {
1934 LOG("Checker", "onProgress: " + event.position + "/" + event.totalSize);
1935 this._callback.onProgress(event.target, event.position, event.totalSize);
1936 },
}}
Comment 14•17 years ago
|
||
(In reply to comment #12)
>before |request.send(null);|
>{09b54ec1-d98a-49a9-bc95-3219e8b55089} = nsIDocShellTreeItem
>after |request.send(null);|
>{d974c99e-4148-4df9-8d98-de834a2f6462} = nsIProgressEventSink
>{10ed386d-8598-408c-b571-e75ad18edeb0} = nsIDocShell
We may not want to try to provide all these interfaces, so it seems as if there is little we can do until the bug about Components.returnCode is fixed.
Reporter | ||
Comment 15•17 years ago
|
||
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a8pre) Gecko/2007082803 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
I notice that the code related to the first exception has changed location:
{{
Error: [Exception... "'Component does not have requested interface' when calling method: [nsIInterfaceRequestor::getInterface]" nsresult: "0x80004002 (NS_NOINTERFACE)" location: "JS frame :: file:///D:/Progs/__Mozilla-SR/seamonkey/components/nsBlocklistService.js :: anonymous :: line 363" data: no]
Source File: file:///D:/Progs/__Mozilla-SR/seamonkey/components/nsBlocklistService.js
Line: 363
}}
Summary: "Error / Exception / NS_NOINTERFACE / nsExtensionManager.js :: anonymous :: line 2432", when checking for "blocklist" → "Error / Exception / NS_NOINTERFACE / nsBlocklistService.js :: anonymous :: line 2432", when checking for "blocklist"
Reporter | ||
Updated•17 years ago
|
Summary: "Error / Exception / NS_NOINTERFACE / nsBlocklistService.js :: anonymous :: line 2432", when checking for "blocklist" → "Error / Exception / NS_NOINTERFACE / nsBlocklistService.js :: anonymous :: line 363", when checking for "blocklist"
Reporter | ||
Comment 16•17 years ago
|
||
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a9pre) Gecko/2007102402 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
Comment 8 steps: (= new line number)
{{
Error: [Exception... "'Component does not have requested interface' when calling method: [nsIInterfaceRequestor::getInterface]" nsresult: "0x80004002 (NS_NOINTERFACE)" location: "JS frame :: file:///.../seamonkey/components/nsBlocklistService.js :: anonymous :: line 348" data: no]
Source File: file:///.../seamonkey/components/nsBlocklistService.js
Line: 348
Error: [Exception... "'Component does not have requested interface' when calling method: [nsIInterfaceRequestor::getInterface]" nsresult: "0x80004002 (NS_NOINTERFACE)" location: "<unknown>" data: no]
Error: [Exception... "'Component does not have requested interface' when calling method: [nsIInterfaceRequestor::getInterface]" nsresult: "0x80004002 (NS_NOINTERFACE)" location: "<unknown>" data: no]
}}
[Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.9a9pre) Gecko/2007102503 SeaMonkey/2.0a1pre] (nightly) (W2Ksp4)
No error.
R.Duplicate of bug 374499 (actually caused by bug 393627).
Status: NEW → RESOLVED
Closed: 17 years ago
No longer depends on: 287107
Resolution: --- → DUPLICATE
Summary: "Error / Exception / NS_NOINTERFACE / nsBlocklistService.js :: anonymous :: line 363", when checking for "blocklist" → "Error / Exception / NS_NOINTERFACE / nsBlocklistService.js :: anonymous :: line 348", when checking for "blocklist"
You need to log in
before you can comment on or make changes to this bug.
Description
•