Files
tubestation/dom/serviceworkers/NavigationPreloadManager.h
Molnar Sandor d4e3e12c2a Backed out 4 changesets (bug 1715547) for causing leakcheck failures in ServiceWorkerPrivate. CLOSED TREE
Backed out changeset c2114b608577 (bug 1715547)
Backed out changeset c8985e7c6a71 (bug 1715547)
Backed out changeset 8af1f4a4be08 (bug 1715547)
Backed out changeset 85b20f601145 (bug 1715547)
2022-05-17 02:27:10 +03:00

63 lines
2.0 KiB
C++

/* -*- 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_NavigationPreloadManager_h
#define mozilla_dom_NavigationPreloadManager_h
#include "nsCOMPtr.h"
#include "nsCycleCollectionParticipant.h"
#include "nsISupports.h"
#include "nsWrapperCache.h"
#include "mozilla/dom/ServiceWorkerRegistration.h"
#include "mozilla/RefPtr.h"
class nsIGlobalObject;
namespace mozilla::dom {
class Promise;
class NavigationPreloadManager final : public nsISupports,
public nsWrapperCache {
public:
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS(NavigationPreloadManager)
static bool IsValidHeader(const nsACString& aHeader);
NavigationPreloadManager(nsCOMPtr<nsIGlobalObject>&& aGlobal,
RefPtr<ServiceWorkerRegistration::Inner>& aInner);
// Webidl binding
nsIGlobalObject* GetParentObject() const { return mGlobal; }
JSObject* WrapObject(JSContext* aCx,
JS::Handle<JSObject*> aGivenProto) override;
// WebIdl implementation
already_AddRefed<Promise> Enable(ErrorResult& aError);
already_AddRefed<Promise> Disable(ErrorResult& aError);
already_AddRefed<Promise> SetHeaderValue(const nsACString& aHeader,
ErrorResult& aError);
already_AddRefed<Promise> GetState(ErrorResult& aError);
private:
~NavigationPreloadManager() = default;
// General method for Enable()/Disable()
already_AddRefed<Promise> SetEnabled(bool aEnabled, ErrorResult& aError);
nsCOMPtr<nsIGlobalObject> mGlobal;
RefPtr<ServiceWorkerRegistration::Inner> mInner;
};
} // namespace mozilla::dom
#endif // mozilla_dom_NavigationPreloadManager_h