blob: ce315bade3ca10396e37169295b76931a9473c6f [file] [log] [blame]
// Copyright 2016 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 NavigationPreloadCallbacks_h
#define NavigationPreloadCallbacks_h
#include "base/macros.h"
#include "platform/heap/Persistent.h"
#include "public/platform/modules/serviceworker/WebServiceWorkerRegistration.h"
namespace blink {
class ScriptPromiseResolver;
struct WebNavigationPreloadState;
struct WebServiceWorkerError;
class EnableNavigationPreloadCallbacks final
: public WebServiceWorkerRegistration::WebEnableNavigationPreloadCallbacks {
public:
explicit EnableNavigationPreloadCallbacks(ScriptPromiseResolver*);
~EnableNavigationPreloadCallbacks() override;
// WebEnableNavigationPreloadCallbacks interface.
void OnSuccess() override;
void OnError(const WebServiceWorkerError&) override;
private:
Persistent<ScriptPromiseResolver> resolver_;
DISALLOW_COPY_AND_ASSIGN(EnableNavigationPreloadCallbacks);
};
class GetNavigationPreloadStateCallbacks final
: public WebServiceWorkerRegistration::
WebGetNavigationPreloadStateCallbacks {
public:
explicit GetNavigationPreloadStateCallbacks(ScriptPromiseResolver*);
~GetNavigationPreloadStateCallbacks() override;
// WebGetNavigationPreloadStateCallbacks interface.
void OnSuccess(const WebNavigationPreloadState&) override;
void OnError(const WebServiceWorkerError&) override;
private:
Persistent<ScriptPromiseResolver> resolver_;
DISALLOW_COPY_AND_ASSIGN(GetNavigationPreloadStateCallbacks);
};
class SetNavigationPreloadHeaderCallbacks final
: public WebServiceWorkerRegistration::
WebSetNavigationPreloadHeaderCallbacks {
public:
explicit SetNavigationPreloadHeaderCallbacks(ScriptPromiseResolver*);
~SetNavigationPreloadHeaderCallbacks() override;
// WebSetNavigationPreloadHeaderCallbacks interface.
void OnSuccess(void) override;
void OnError(const WebServiceWorkerError&) override;
private:
Persistent<ScriptPromiseResolver> resolver_;
DISALLOW_COPY_AND_ASSIGN(SetNavigationPreloadHeaderCallbacks);
};
} // namespace blink
#endif // NavigationPreloadCallbacks_h