Closed Bug 611430 Opened 14 years ago Closed 14 years ago

ChromeML and SkinML support removed from nsXREDirProvider.cpp breaking chromelist extension

Categories

(Firefox :: Extension Compatibility, defect)

defect
Not set
major

Tracking

()

RESOLVED WONTFIX

People

(Reporter: ignisvulpis, Unassigned)

References

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
Build Identifier: Mozilla/5.0 (Windows NT 6.1; rv:2.0b8pre) Gecko/20101111 Firefox/4.0b8pre

The addon chromelist that MDN recommends does not work in Firefox4.

The code that makes getting the properties ChromeML and SkinML to work in the directory service was removed.
Here
http://mxr.mozilla.org/mozilla1.9.2/source/toolkit/xre/nsXREDirProvider.cpp#702
in 1.9.2 the code is there but it is missing in mozilla-central.
http://mxr.mozilla.org/mozilla-central/source/toolkit/xre/nsXREDirProvider.cpp#623

Reproducible: Always

Steps to Reproduce:
1. Install chromelist in Firefox4
2. Open the chromelist window
3. The window remains empty, the console shows exeptions thrown
Actual Results:  
The chrome list window remains empty, the console shows exeptions thrown

Expected Results:  
chrome list window shows components and xul and all the other things chromelist normaly shows.

The lines that stopped working are in :
http://code.google.com/p/chromelist/source/browse/trunk/content/lib/parser.js#119
and in
http://code.google.com/p/chromelist/source/browse/trunk/content/lib/parser.js#122

var manifestEnum = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ChromeML", Components.interfaces.nsISimpleEnumerator);


The code repository for chromelist is here:
http://code.google.com/p/chromelist/

The Chrome List addon is here:
https://addons.mozilla.org/en-US/firefox/addon/4453/
ChromeML and SkinML support was removed here:
http://hg.mozilla.org/mozilla-central/rev/635937a6a8ef
by Benjamin Smedberg.

Why?
Cross-referencing http://code.google.com/p/chromelist/issues/detail?id=46

This doesn't seem to be a widely used API, and major releases are allowed to break extensions. Don't know why this particular change was made, probably code simplification.

Benjamin should decide if this is a valid problem.
Summary: ChromeML and SkinML support removed from nsXREDirProvider.cpp → ChromeML and SkinML support removed from nsXREDirProvider.cpp breaking chromelist extension
Version: unspecified → Trunk
Indeed, manifests are registered with XRE_AddManifestLocation now.
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → WONTFIX
Yes, manifests are registered with XRE_AddManifestLocation but there is no API to access the locations. How is an extension expected to enumerate the manifest locations?
There is no access api for sModuleLocations.

https://mxr.mozilla.org/mozilla-central/source/xpcom/components/nsComponentManager.cpp#325 

Could you add that?
No, but I'd take a patch.
Why was this marked as WONTFIX when the question about how to enumerate manifest locations is not clarified?
That's a different bug. There is currently no way to enumerate them.
Depends on: 890545
You need to log in before you can comment on or make changes to this bug.