1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- // Copyright (c) 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 NET_SPDY_SERVER_PUSH_DELEGATE_H_
- #define NET_SPDY_SERVER_PUSH_DELEGATE_H_
- #include <memory>
- #include "net/base/net_export.h"
- #include "net/log/net_log_with_source.h"
- #include "url/gurl.h"
- namespace net {
- // An interface to a class that should be notified when session receives server
- // push.
- class NET_EXPORT_PRIVATE ServerPushDelegate {
- public:
- // An interface to a class that reflects information on the pushed request.
- class NET_EXPORT ServerPushHelper {
- public:
- virtual ~ServerPushHelper() = default;
- // Cancels the push if it is not claimed yet.
- virtual void Cancel() = 0;
- // Gets the URL of the pushed request.
- virtual const GURL& GetURL() const = 0;
- // Gets the network isolation key for the pushed request.
- virtual NetworkIsolationKey GetNetworkIsolationKey() const = 0;
- };
- virtual ~ServerPushDelegate() = default;
- // Invoked by session when a push promise has been received.
- virtual void OnPush(std::unique_ptr<ServerPushHelper> push_helper,
- const NetLogWithSource& session_net_log) = 0;
- };
- } // namespace net
- #endif // NET_SPDY_SERVER_PUSH_DELEGATE_H_
|