// 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_