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
|
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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/. */
#ifndef mozilla_dom_location_h__
#define mozilla_dom_location_h__
#include "WorkerCommon.h"
#include "WorkerPrivate.h"
#include "nsWrapperCache.h"
namespace mozilla::dom {
class WorkerLocation final : public nsWrapperCache {
nsString mHref;
nsString mProtocol;
nsString mHost;
nsString mHostname;
nsString mPort;
nsString mPathname;
nsString mSearch;
nsString mHash;
nsString mOrigin;
WorkerLocation(const nsAString& aHref, const nsAString& aProtocol,
const nsAString& aHost, const nsAString& aHostname,
const nsAString& aPort, const nsAString& aPathname,
const nsAString& aSearch, const nsAString& aHash,
const nsAString& aOrigin)
: mHref(aHref),
mProtocol(aProtocol),
mHost(aHost),
mHostname(aHostname),
mPort(aPort),
mPathname(aPathname),
mSearch(aSearch),
mHash(aHash),
mOrigin(aOrigin) {
MOZ_COUNT_CTOR(WorkerLocation);
}
MOZ_COUNTED_DTOR(WorkerLocation)
public:
NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(WorkerLocation)
NS_DECL_CYCLE_COLLECTION_NATIVE_WRAPPERCACHE_CLASS(WorkerLocation)
static already_AddRefed<WorkerLocation> Create(
WorkerPrivate::LocationInfo& aInfo);
virtual JSObject* WrapObject(JSContext* aCx,
JS::Handle<JSObject*> aGivenProto) override;
nsISupports* GetParentObject() const { return nullptr; }
void Stringify(nsString& aHref) const { aHref = mHref; }
void GetHref(nsString& aHref) const { aHref = mHref; }
void GetProtocol(nsString& aProtocol) const { aProtocol = mProtocol; }
void GetHost(nsString& aHost) const { aHost = mHost; }
void GetHostname(nsString& aHostname) const { aHostname = mHostname; }
void GetPort(nsString& aPort) const { aPort = mPort; }
void GetPathname(nsString& aPathname) const { aPathname = mPathname; }
void GetSearch(nsString& aSearch) const { aSearch = mSearch; }
void GetHash(nsString& aHash) const { aHash = mHash; }
void GetOrigin(nsString& aOrigin) const { aOrigin = mOrigin; }
};
} // namespace mozilla::dom
#endif // mozilla_dom_location_h__
|