gecko-dev/dom/workers/ServiceWorkerScriptCache.h
Ryan VanderMeulen 1704dc2a72 Backed out 14 changesets (bug 1290951) for causing topcrash bug 1364059. a=me
Backed out changeset d9cb7e835d4c (bug 1290951)
Backed out changeset 2684d41c75e4 (bug 1290951)
Backed out changeset 2fdb0ae64a1b (bug 1290951)
Backed out changeset 6194a6a0f510 (bug 1290951)
Backed out changeset 9a722c9de441 (bug 1290951)
Backed out changeset 4e36f20bea04 (bug 1290951)
Backed out changeset 7236a196cff0 (bug 1290951)
Backed out changeset b6b85669af94 (bug 1290951)
Backed out changeset bb76b58e45fc (bug 1290951)
Backed out changeset f2b2e0d54e51 (bug 1290951)
Backed out changeset 974b55cde2af (bug 1290951)
Backed out changeset cda24c8eccc4 (bug 1290951)
Backed out changeset fedca2ad4ce6 (bug 1290951)
Backed out changeset e40aeb64bdab (bug 1290951)
2017-05-11 09:26:18 -04:00

68 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_workers_ServiceWorkerScriptCache_h
#define mozilla_dom_workers_ServiceWorkerScriptCache_h
#include "nsString.h"
class nsILoadGroup;
class nsIPrincipal;
namespace mozilla {
namespace dom {
namespace workers {
class ServiceWorkerRegistrationInfo;
namespace serviceWorkerScriptCache {
nsresult
PurgeCache(nsIPrincipal* aPrincipal, const nsAString& aCacheName);
nsresult
GenerateCacheName(nsAString& aName);
class CompareCallback
{
public:
/*
* If there is an error, ignore aInCacheAndEqual and aNewCacheName.
* On success, if the cached result and network result matched,
* aInCacheAndEqual will be true and no new cache name is passed, otherwise
* use the new cache name to load the ServiceWorker.
*/
virtual void
ComparisonResult(nsresult aStatus,
bool aInCacheAndEqual,
const nsAString& aNewCacheName,
const nsACString& aMaxScope) = 0;
/*
* Right before fetching the main script from the network, we check whether
* the script expiration timer has expired. Via this method, we can save the
* result of the check, and propogate it to the new ServiceWorkerInfo if there
* is one, so the imported scripts can be affected by the result as well.
*/
virtual void
SaveLoadFlags(nsLoadFlags aLoadFlags) = 0;
NS_INLINE_DECL_PURE_VIRTUAL_REFCOUNTING
};
nsresult
Compare(ServiceWorkerRegistrationInfo* aRegistration,
nsIPrincipal* aPrincipal, const nsAString& aCacheName,
const nsAString& aURL, CompareCallback* aCallback, nsILoadGroup* aLoadGroup);
} // namespace serviceWorkerScriptCache
} // namespace workers
} // namespace dom
} // namespace mozilla
#endif // mozilla_dom_workers_ServiceWorkerScriptCache_h