blob: 8e8cd4b6a7cccb27bb8300a536b1e92c989fd0fe [file] [log] [blame]
// Copyright 2020 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_OPENSCREEN_PLATFORM_NETWORK_CONTEXT_H_
#define COMPONENTS_OPENSCREEN_PLATFORM_NETWORK_CONTEXT_H_
#include "base/functional/bind.h"
#include "services/network/public/cpp/network_context_getter.h"
#include "services/network/public/mojom/network_context.mojom.h"
namespace openscreen_platform {
void SetNetworkContextGetter(
network::NetworkContextGetter network_context_getter);
void ClearNetworkContextGetter();
bool HasNetworkContextGetter();
// This and all subsequent NetworkContext calls made must obey the thread safety
// requirements of |network_context_getter|. This must be called each time a
// mojom::NetworkContext is needed; any returned pointer should not be stored
// beyond the scope in which it is received.
//
// In Chrome, the |network_context_getter| will always return the NetworkContext
// from the SystemNetworkContextManager; therefore, GetNetworkContext must be
// called on the UI thread.
network::mojom::NetworkContext* GetNetworkContext();
} // namespace openscreen_platform
#endif // COMPONENTS_OPENSCREEN_PLATFORM_NETWORK_CONTEXT_H_