DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (c68fe15a81fc)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#include "nsISupports.idl"

interface nsIURI;
interface nsIChannel;
interface nsIChannel;
interface nsILoadInfo;

[scriptable, uuid(c0c19db9-1b5a-4ac5-b656-ed6f8149fa48)]
[scriptable, uuid(c0c19db9-1b5a-4ac5-b656-ed6f8149fa48)]
interface nsIAboutModule : nsISupports
interface nsIAboutModule : nsISupports
{

    /**
    /**
     * Constructs a new channel for the about protocol module.
     *
     * @param aURI the uri of the new channel
     * @param aLoadInfo the loadinfo of the new channel
     */
     */
    nsIChannel newChannel(in nsIURI aURI,
                          in nsILoadInfo aLoadInfo);

    /**
     * A flag that indicates whether a URI should be run with content
     * A flag that indicates whether a URI should be run with content
     * privileges. If it is, the about: protocol handler will enforce that
     * the principal of channels created for it be based on their
     * originalURI or URI (depending on the channel flags), by setting
     * their "owner" to null.
     * If content needs to be able to link to this URI, specify
     * URI_CONTENT_LINKABLE as well.
     */
     */
    const unsigned long URI_SAFE_FOR_UNTRUSTED_CONTENT = (1 << 0);

    /**
     * A flag that indicates whether script should be enabled for the
     * given about: URI even if it's disabled in general.
     * given about: URI even if it's disabled in general.
     */
    const unsigned long ALLOW_SCRIPT = (1 << 1);

    /**
     * A flag that indicates whether this about: URI doesn't want to be listed
     * A flag that indicates whether this about: URI doesn't want to be listed
     * in about:about, especially if it's not useful without a query string.
     */
    const unsigned long HIDE_FROM_ABOUTABOUT = (1 << 2);

    /**
    /**
     * A flag that indicates whether this about: URI wants Indexed DB enabled.
     */
    const unsigned long ENABLE_INDEXED_DB = (1 << 3);

    /**
    /**
     * A flag that indicates that this URI can be loaded in a child process
     */
    const unsigned long URI_CAN_LOAD_IN_CHILD = (1 << 4);

    /**
    /**
     * A flag that indicates that this URI must be loaded in a child process
     */
    const unsigned long URI_MUST_LOAD_IN_CHILD = (1 << 5);


    /**
     * Obsolete. This flag no longer has any effect and will be removed in future.
     */
    const unsigned long MAKE_UNLINKABLE = (1 << 6);


    /**
     * A flag that indicates that this URI should be linkable from content.
     * Ignored unless URI_SAFE_FOR_UNTRUSTED_CONTENT is also specified.
     *
     * When adding a new about module with this flag make sure to also update
     * When adding a new about module with this flag make sure to also update
     * IsSafeToLinkForUntrustedContent() in nsAboutProtocolHandler.cpp
     */
    const unsigned long MAKE_LINKABLE = (1 << 7);

    /**
    /**
     * A flag that indicates that this URI can be loaded in the privileged
     * activity stream content process if said process is enabled. Ignored unless
     * URI_MUST_LOAD_IN_CHILD is also specified.
     */
    const unsigned long URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS = (1 << 8);
    const unsigned long URI_CAN_LOAD_IN_PRIVILEGEDABOUT_PROCESS = (1 << 8);

    /**
     * A flag that indicates that this URI must be loaded in an extension process (if available).
     */
    const unsigned long URI_MUST_LOAD_IN_EXTENSION_PROCESS = (1 << 9);

    /**
     * A flag that indicates that this about: URI needs to allow unsanitized content.
     * Only to be used by about:home and about:newtab.
     */
    const unsigned long ALLOW_UNSANITIZED_CONTENT = (1 << 10);
    const unsigned long ALLOW_UNSANITIZED_CONTENT = (1 << 10);

    /**
     * A method to get the flags that apply to a given about: URI.  The URI
     * passed in is guaranteed to be one of the URIs that this module
     * registered to deal with.
     */
    unsigned long getURIFlags(in nsIURI aURI);
    unsigned long getURIFlags(in nsIURI aURI);
};

%{C++

#define NS_ABOUT_MODULE_CONTRACTID        "@mozilla.org/network/protocol/about;1"
#define NS_ABOUT_MODULE_CONTRACTID        "@mozilla.org/network/protocol/about;1"
#define NS_ABOUT_MODULE_CONTRACTID_PREFIX NS_ABOUT_MODULE_CONTRACTID "?what="
#define NS_ABOUT_MODULE_CONTRACTID_LENGTH 49      // strlen(NS_ABOUT_MODULE_CONTRACTID_PREFIX)

%}