Source code

Revision control

Other Tools

1
//* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
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
#ifndef nsAnnoProtocolHandler_h___
7
#define nsAnnoProtocolHandler_h___
8
9
#include "nsCOMPtr.h"
10
#include "nsIProtocolHandler.h"
11
#include "nsIURI.h"
12
#include "nsString.h"
13
#include "nsWeakReference.h"
14
#include "mozilla/Attributes.h"
15
16
// {e8b8bdb7-c96c-4d82-9c6f-2b3c585ec7ea}
17
#define NS_ANNOPROTOCOLHANDLER_CID \
18
{ \
19
0xe8b8bdb7, 0xc96c, 0x4d82, { \
20
0x9c, 0x6f, 0x2b, 0x3c, 0x58, 0x5e, 0xc7, 0xea \
21
} \
22
}
23
24
class nsAnnoProtocolHandler final : public nsIProtocolHandler,
25
public nsSupportsWeakReference {
26
public:
27
nsAnnoProtocolHandler() {}
28
29
NS_DECL_ISUPPORTS
30
NS_DECL_NSIPROTOCOLHANDLER
31
32
private:
33
~nsAnnoProtocolHandler() {}
34
35
protected:
36
nsresult ParseAnnoURI(nsIURI* aURI, nsIURI** aResultURI, nsCString& aName);
37
38
/**
39
* Obtains a new channel to be used to get a favicon from the database. This
40
* method is asynchronous.
41
*
42
* @param aURI
43
* The URI the channel will be created for. This is the URI that is
44
* set as the original URI on the channel.
45
* @param aAnnotationURI
46
* The URI that holds the data needed to get the favicon from the
47
* database.
48
* @param aLoadInfo
49
* The loadinfo that requested the resource load.
50
* @returns (via _channel) the channel that will obtain the favicon data.
51
*/
52
nsresult NewFaviconChannel(nsIURI* aURI, nsIURI* aAnnotationURI,
53
nsILoadInfo* aLoadInfo, nsIChannel** _channel);
54
};
55
56
#endif /* nsAnnoProtocolHandler_h___ */