tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

nsIFileURL.idl (1473B)


      1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 #include "nsIURL.idl"
      7 
      8 interface nsIFile;
      9 interface nsIURIMutator;
     10 
     11 /**
     12 * nsIFileURL provides access to the underlying nsIFile object corresponding to
     13 * an URL.  The URL scheme need not be file:, since other local protocols may
     14 * map URLs to files (e.g., resource:).
     15 */
     16 [scriptable, builtinclass, uuid(e91ac988-27c2-448b-b1a1-3822e1ef1987)]
     17 interface nsIFileURL : nsIURL
     18 {
     19    /**
     20     * Get the nsIFile corresponding to this URL.
     21     *
     22     *  - Returns a reference to an immutable object.  Callers must clone
     23     *    before attempting to modify the returned nsIFile object.  NOTE: this
     24     *    constraint might not be enforced at runtime, so beware!!
     25     */
     26    readonly attribute nsIFile file;
     27 };
     28 
     29 [scriptable, builtinclass, uuid(a588b6f2-d2b9-4024-84c7-be3368546b57)]
     30 interface nsIFileURLMutator : nsISupports
     31 {
     32    /*
     33     *  - Marks the inner URI implementation as one that supports nsIFileURL.
     34     */
     35    [must_use, noscript] void markFileURL();
     36 
     37    /*
     38     *  - Setter clones the nsIFile object (allowing the caller to safely modify
     39     *    the nsIFile object after setting it on this interface).
     40     */
     41    [must_use, noscript] void setFile(in nsIFile aFile);
     42 };