This file is indexed.

/usr/include/thunderbird/nsIHttpProtocolHandler.h is in thunderbird-dev 1:52.8.0-1~deb8u1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
/*
 * DO NOT EDIT.  THIS FILE IS GENERATED FROM ../../../dist/idl/nsIHttpProtocolHandler.idl
 */

#ifndef __gen_nsIHttpProtocolHandler_h__
#define __gen_nsIHttpProtocolHandler_h__


#ifndef __gen_nsIProxiedProtocolHandler_h__
#include "nsIProxiedProtocolHandler.h"
#endif

/* For IDL files that don't want to include root IDL files. */
#ifndef NS_NO_VTABLE
#define NS_NO_VTABLE
#endif

/* starting interface:    nsIHttpProtocolHandler */
#define NS_IHTTPPROTOCOLHANDLER_IID_STR "c48126d9-2ddd-485b-a51a-378e917e75f8"

#define NS_IHTTPPROTOCOLHANDLER_IID \
  {0xc48126d9, 0x2ddd, 0x485b, \
    { 0xa5, 0x1a, 0x37, 0x8e, 0x91, 0x7e, 0x75, 0xf8 }}

class NS_NO_VTABLE nsIHttpProtocolHandler : public nsIProxiedProtocolHandler {
 public:

  NS_DECLARE_STATIC_IID_ACCESSOR(NS_IHTTPPROTOCOLHANDLER_IID)

  /* readonly attribute ACString userAgent; */
  NS_IMETHOD GetUserAgent(nsACString & aUserAgent) = 0;

  /* readonly attribute ACString appName; */
  NS_IMETHOD GetAppName(nsACString & aAppName) = 0;

  /* readonly attribute ACString appVersion; */
  NS_IMETHOD GetAppVersion(nsACString & aAppVersion) = 0;

  /* readonly attribute ACString platform; */
  NS_IMETHOD GetPlatform(nsACString & aPlatform) = 0;

  /* readonly attribute ACString oscpu; */
  NS_IMETHOD GetOscpu(nsACString & aOscpu) = 0;

  /* readonly attribute ACString misc; */
  NS_IMETHOD GetMisc(nsACString & aMisc) = 0;

};

  NS_DEFINE_STATIC_IID_ACCESSOR(nsIHttpProtocolHandler, NS_IHTTPPROTOCOLHANDLER_IID)

/* Use this macro when declaring classes that implement this interface. */
#define NS_DECL_NSIHTTPPROTOCOLHANDLER \
  NS_IMETHOD GetUserAgent(nsACString & aUserAgent) override; \
  NS_IMETHOD GetAppName(nsACString & aAppName) override; \
  NS_IMETHOD GetAppVersion(nsACString & aAppVersion) override; \
  NS_IMETHOD GetPlatform(nsACString & aPlatform) override; \
  NS_IMETHOD GetOscpu(nsACString & aOscpu) override; \
  NS_IMETHOD GetMisc(nsACString & aMisc) override; 

/* Use this macro when declaring the members of this interface when the
   class doesn't implement the interface. This is useful for forwarding. */
#define NS_DECL_NON_VIRTUAL_NSIHTTPPROTOCOLHANDLER \
  NS_METHOD GetUserAgent(nsACString & aUserAgent); \
  NS_METHOD GetAppName(nsACString & aAppName); \
  NS_METHOD GetAppVersion(nsACString & aAppVersion); \
  NS_METHOD GetPlatform(nsACString & aPlatform); \
  NS_METHOD GetOscpu(nsACString & aOscpu); \
  NS_METHOD GetMisc(nsACString & aMisc); 

/* Use this macro to declare functions that forward the behavior of this interface to another object. */
#define NS_FORWARD_NSIHTTPPROTOCOLHANDLER(_to) \
  NS_IMETHOD GetUserAgent(nsACString & aUserAgent) override { return _to GetUserAgent(aUserAgent); } \
  NS_IMETHOD GetAppName(nsACString & aAppName) override { return _to GetAppName(aAppName); } \
  NS_IMETHOD GetAppVersion(nsACString & aAppVersion) override { return _to GetAppVersion(aAppVersion); } \
  NS_IMETHOD GetPlatform(nsACString & aPlatform) override { return _to GetPlatform(aPlatform); } \
  NS_IMETHOD GetOscpu(nsACString & aOscpu) override { return _to GetOscpu(aOscpu); } \
  NS_IMETHOD GetMisc(nsACString & aMisc) override { return _to GetMisc(aMisc); } 

/* Use this macro to declare functions that forward the behavior of this interface to another object in a safe way. */
#define NS_FORWARD_SAFE_NSIHTTPPROTOCOLHANDLER(_to) \
  NS_IMETHOD GetUserAgent(nsACString & aUserAgent) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetUserAgent(aUserAgent); } \
  NS_IMETHOD GetAppName(nsACString & aAppName) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAppName(aAppName); } \
  NS_IMETHOD GetAppVersion(nsACString & aAppVersion) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetAppVersion(aAppVersion); } \
  NS_IMETHOD GetPlatform(nsACString & aPlatform) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetPlatform(aPlatform); } \
  NS_IMETHOD GetOscpu(nsACString & aOscpu) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetOscpu(aOscpu); } \
  NS_IMETHOD GetMisc(nsACString & aMisc) override { return !_to ? NS_ERROR_NULL_POINTER : _to->GetMisc(aMisc); } 

#if 0
/* Use the code below as a template for the implementation class for this interface. */

/* Header file */
class nsHttpProtocolHandler : public nsIHttpProtocolHandler
{
public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIHTTPPROTOCOLHANDLER

  nsHttpProtocolHandler();

private:
  ~nsHttpProtocolHandler();

protected:
  /* additional members */
};

/* Implementation file */
NS_IMPL_ISUPPORTS(nsHttpProtocolHandler, nsIHttpProtocolHandler)

nsHttpProtocolHandler::nsHttpProtocolHandler()
{
  /* member initializers and constructor code */
}

nsHttpProtocolHandler::~nsHttpProtocolHandler()
{
  /* destructor code */
}

/* readonly attribute ACString userAgent; */
NS_IMETHODIMP nsHttpProtocolHandler::GetUserAgent(nsACString & aUserAgent)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString appName; */
NS_IMETHODIMP nsHttpProtocolHandler::GetAppName(nsACString & aAppName)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString appVersion; */
NS_IMETHODIMP nsHttpProtocolHandler::GetAppVersion(nsACString & aAppVersion)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString platform; */
NS_IMETHODIMP nsHttpProtocolHandler::GetPlatform(nsACString & aPlatform)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString oscpu; */
NS_IMETHODIMP nsHttpProtocolHandler::GetOscpu(nsACString & aOscpu)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* readonly attribute ACString misc; */
NS_IMETHODIMP nsHttpProtocolHandler::GetMisc(nsACString & aMisc)
{
    return NS_ERROR_NOT_IMPLEMENTED;
}

/* End of implementation class template. */
#endif

// ----------- Categories -----------
/**
 * At initialization time, the HTTP handler will initialize each service
 * registered under this category:
 */
#define NS_HTTP_STARTUP_CATEGORY "http-startup-category"
// ----------- Observer topics -----------
/**
 * nsIObserver notification corresponding to startup category.  Services
 * registered under the startup category will receive this observer topic at
 * startup if they implement nsIObserver.  The "subject" of the notification
 * is the nsIHttpProtocolHandler instance.
 */
#define NS_HTTP_STARTUP_TOPIC "http-startup"
/**
 * This observer topic is notified when an HTTP channel is opened.
 * It is similar to http-on-modify-request, except that
 * 1) The notification is guaranteed to occur before on-modify-request, during
 *    the AsyncOpen call itself.
 * 2) It only occurs for the initial open of a channel, not for internal
 *    asyncOpens that happen during redirects, etc.
 * 3) Some information (most notably nsIProxiedChannel.proxyInfo) may not be set
 *    on the channel object yet.
 *
 * The "subject" of the notification is the nsIHttpChannel instance.
 *
 * Generally the 'http-on-modify-request' notification is preferred unless the
 * synchronous, during-asyncOpen behavior that this notification provides is
 * required.
 */
#define NS_HTTP_ON_OPENING_REQUEST_TOPIC "http-on-opening-request"
/**
 * Before an HTTP request is sent to the server, this observer topic is
 * notified.  The observer of this topic can then choose to set any additional
 * headers for this request before the request is actually sent to the server.
 * The "subject" of the notification is the nsIHttpChannel instance.
 */
#define NS_HTTP_ON_MODIFY_REQUEST_TOPIC "http-on-modify-request"
/**
 * After an HTTP server response is received, this observer topic is notified.
 * The observer of this topic can interrogate the response.  The "subject" of
 * the notification is the nsIHttpChannel instance.
 */
#define NS_HTTP_ON_EXAMINE_RESPONSE_TOPIC "http-on-examine-response"
/**
 * The observer of this topic is notified after the received HTTP response
 * is merged with data from the browser cache.  This means that, among other
 * things, the Content-Type header will be set correctly.
 */
#define NS_HTTP_ON_EXAMINE_MERGED_RESPONSE_TOPIC "http-on-examine-merged-response"
/**
 * The observer of this topic is notified before data is read from the cache.
 * The notification is sent if and only if there is no network communication
 * at all.
 */
#define NS_HTTP_ON_EXAMINE_CACHED_RESPONSE_TOPIC "http-on-examine-cached-response"
/**
 * Before an HTTP request corresponding to a channel with the LOAD_DOCUMENT_URI
 * flag is sent to the server, this observer topic is notified. The observer of
 * this topic can then choose to modify the user agent for this request before
 * the request is actually sent to the server. Additionally, the modified user
 * agent will be propagated to sub-resource requests from the same load group.
 */
#define NS_HTTP_ON_USERAGENT_REQUEST_TOPIC "http-on-useragent-request"

#endif /* __gen_nsIHttpProtocolHandler_h__ */