summaryrefslogtreecommitdiffstats
path: root/dom/workers/WorkerLocation.h
diff options
context:
space:
mode:
Diffstat (limited to 'dom/workers/WorkerLocation.h')
-rw-r--r--dom/workers/WorkerLocation.h116
1 files changed, 116 insertions, 0 deletions
diff --git a/dom/workers/WorkerLocation.h b/dom/workers/WorkerLocation.h
new file mode 100644
index 000000000..73137efff
--- /dev/null
+++ b/dom/workers/WorkerLocation.h
@@ -0,0 +1,116 @@
+/* -*- 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 "Workers.h"
+#include "WorkerPrivate.h"
+#include "nsWrapperCache.h"
+
+namespace mozilla {
+namespace 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);
+ }
+
+ ~WorkerLocation()
+ {
+ MOZ_COUNT_DTOR(WorkerLocation);
+ }
+
+public:
+
+ NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(WorkerLocation)
+ NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(WorkerLocation)
+
+ static already_AddRefed<WorkerLocation>
+ Create(workers::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 dom
+} // namespace mozilla
+
+#endif // mozilla_dom_location_h__