nsIChromeRegistry.idl (2724B)
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- 2 * 3 * This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this 5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #include "nsISupports.idl" 8 9 interface nsIURI; 10 11 [scriptable, uuid(249fb5ad-ae29-4e2c-a728-ba5cf464d188)] 12 interface nsIChromeRegistry : nsISupports 13 { 14 const int32_t NONE = 0; 15 const int32_t PARTIAL = 1; 16 const int32_t FULL = 2; 17 18 /** 19 * Resolve a chrome URL to an loadable URI using the information in the 20 * registry. Does not modify aChromeURL. 21 * 22 * Chrome URLs are allowed to be specified in "shorthand", leaving the 23 * "file" portion off. In that case, the URL is expanded to: 24 * 25 * chrome://package/provider/package.ext 26 * 27 * where "ext" is: 28 * 29 * "xul" for a "content" package, 30 * "css" for a "skin" package, and 31 * "dtd" for a "locale" package. 32 * 33 * @param aChromeURL the URL that is to be converted. 34 */ 35 nsIURI convertChromeURL(in nsIURI aChromeURL); 36 37 /** 38 * refresh the chrome list at runtime, looking for new packages/etc 39 */ 40 void checkForNewChrome(); 41 }; 42 43 [scriptable, uuid(93251ddf-5e85-4172-ac2a-31780562974f)] 44 interface nsIXULChromeRegistry : nsIChromeRegistry 45 { 46 // Get whether the default writing direction of the locale is RTL 47 boolean isLocaleRTL(in ACString package); 48 49 /** 50 * Installable skin XBL is not always granted the same privileges as other 51 * chrome. This asks the chrome registry whether scripts are allowed to be 52 * run for a particular chrome URI. Do not pass non-chrome URIs to this 53 * method. 54 */ 55 boolean allowScriptsForPackage(in nsIURI url); 56 57 /** 58 * Content should only be allowed to load chrome JS from certain packages. 59 * This method reflects the contentaccessible flag on packages. 60 * Do not pass non-chrome URIs to this method. 61 */ 62 boolean allowContentToAccess(in nsIURI url); 63 64 /** 65 * Returns true if the passed chrome URL is allowed to be loaded in a remote 66 * process. This reflects the remoteenabled flag on packages. 67 * Do not pass non-chrome URIs to this method. 68 */ 69 boolean canLoadURLRemotely(in nsIURI url); 70 71 /** 72 * Returns true if the passed chrome URL must be loaded in a remote process. 73 * This reflects the remoterequired flag on packages. 74 * Do not pass non-chrome URIs to this method. 75 */ 76 boolean mustLoadURLRemotely(in nsIURI url); 77 }; 78 79 %{ C++ 80 81 #define NS_CHROMEREGISTRY_CONTRACTID \ 82 "@mozilla.org/chrome/chrome-registry;1" 83 84 /** 85 * Chrome registry will notify various caches that all chrome files need 86 * flushing. 87 */ 88 #define NS_CHROME_FLUSH_TOPIC \ 89 "chrome-flush-caches" 90 91 %}