Source code

Revision control

Other Tools

1
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
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
#ifndef nsPingListener_h__
8
#define nsPingListener_h__
9
10
#include "nsIStreamListener.h"
11
#include "nsIReferrerInfo.h"
12
#include "nsCOMPtr.h"
13
14
namespace mozilla {
15
namespace dom {
16
class DocGroup;
17
}
18
} // namespace mozilla
19
20
class nsIContent;
21
class nsIDocShell;
22
class nsILoadGroup;
23
class nsITimer;
24
class nsIURI;
25
26
class nsPingListener final : public nsIStreamListener {
27
public:
28
NS_DECL_ISUPPORTS
29
NS_DECL_NSIREQUESTOBSERVER
30
NS_DECL_NSISTREAMLISTENER
31
32
nsPingListener() {}
33
34
void SetLoadGroup(nsILoadGroup* aLoadGroup) { mLoadGroup = aLoadGroup; }
35
36
nsresult StartTimeout(mozilla::dom::DocGroup* aDocGroup);
37
38
static void DispatchPings(nsIDocShell* aDocShell, nsIContent* aContent,
39
nsIURI* aTarget, nsIReferrerInfo* aReferrerInfo);
40
41
private:
42
~nsPingListener();
43
44
nsCOMPtr<nsILoadGroup> mLoadGroup;
45
nsCOMPtr<nsITimer> mTimer;
46
};
47
48
#endif /* nsPingListener_h__ */