Index: trac/trac/web/chrome.py
===================================================================
--- trac/trac/web/chrome.py	(revision 9923)
+++ trac/trac/web/chrome.py	(working copy)
@@ -208,14 +208,14 @@
         """
 
     def get_navigation_items(req):
-        """Should return an iterable object over the list of navigation items to
-        add, each being a tuple in the form (category, name, text).
+        """Should return an iterable object over the list of navigation items
+        to add, each being a tuple in the form (category, name, text).
         """
 
 
 class ITemplateProvider(Interface):
     """Extension point interface for components that provide their own
-    ClearSilver templates and accompanying static resources.
+    Genshi templates and accompanying static resources.
     """
 
     def get_htdocs_dirs():
@@ -264,6 +264,14 @@
         
         (''since 0.11'')""")
 
+    shared_htdocs_dir = PathOption('inherit', 'htdocs_dir', '',
+        """Path to the //shared htdocs directory//.
+        
+        Static resources in that directory are mapped to /chrome/shared
+        under the environment URL, in addition to common and site locations.
+        
+        (''since 0.12.1'')""")
+
     auto_reload = BoolOption('trac', 'auto_reload', False,
         """Automatically reload template files after modification.""")
     
@@ -451,6 +459,7 @@
 
     def get_htdocs_dirs(self):
         return [('common', pkg_resources.resource_filename('trac', 'htdocs')),
+                ('shared', self.shared_htdocs_dir),
                 ('site', self.env.get_htdocs_dir())]
 
     def get_templates_dirs(self):

