blob: 2c13a5b0a4a837ddefbdf37ff171152dbd8309af [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CacheStorage_h
#define CacheStorage_h
#include "bindings/core/v8/ScriptPromise.h"
#include "bindings/core/v8/ScriptState.h"
#include "bindings/core/v8/ScriptWrappable.h"
#include "wtf/Forward.h"
#include "wtf/Noncopyable.h"
#include "wtf/RefCounted.h"
namespace blink {
class WebServiceWorkerCacheStorage;
// See https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#cache-storage
class CacheStorage FINAL : public RefCountedWillBeGarbageCollected<CacheStorage>, public ScriptWrappable {
WTF_MAKE_NONCOPYABLE(CacheStorage);
public:
static PassRefPtrWillBeRawPtr<CacheStorage> create(WebServiceWorkerCacheStorage*);
ScriptPromise get(ScriptState*, const String& cacheName);
ScriptPromise has(ScriptState*, const String& cacheName);
ScriptPromise createFunction(ScriptState*, const String& cacheName);
ScriptPromise deleteFunction(ScriptState*, const String& cacheName);
ScriptPromise keys(ScriptState*);
void trace(Visitor*) { }
private:
explicit CacheStorage(WebServiceWorkerCacheStorage*);
WebServiceWorkerCacheStorage* m_webCacheStorage;
};
} // namespace blink
#endif // CacheStorage_h