1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
// Copyright 2024 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_PLUS_ADDRESSES_PLUS_ADDRESS_HTTP_CLIENT_H_
#define COMPONENTS_PLUS_ADDRESSES_PLUS_ADDRESS_HTTP_CLIENT_H_
#include <string>
#include <vector>
#include "base/functional/callback_forward.h"
#include "base/time/time.h"
#include "base/types/expected.h"
#include "components/plus_addresses/plus_address_types.h"
namespace url {
class Origin;
} // namespace url
namespace plus_addresses {
// An interface for communicating with the remote plus address server.
class PlusAddressHttpClient {
public:
virtual ~PlusAddressHttpClient() = default;
// Initiates a request to get a plus address for use on `origin` and runs
// `on_completed` when the request is completed. If `refresh` is true, then
// the server receives a flag that indicates that the address should be a new
// one and not one that the user has previously seen.
// On success, the facet of the returned `PlusProfile` is set to the `origin`
// by the server.
virtual void ReservePlusAddress(const url::Origin& origin,
bool refresh,
PlusAddressRequestCallback on_completed) = 0;
// Initiates a request to confirm `plus_address` for use on `origin` and runs
// `on_completed` when the request is completed.
// On success, the facet of the returned `PlusProfile` is set to the `origin`
// by the server.
virtual void ConfirmPlusAddress(const url::Origin& origin,
const PlusAddress& plus_address,
PlusAddressRequestCallback on_completed) = 0;
using PreallocatePlusAddressesResult =
base::expected<std::vector<PreallocatedPlusAddress>,
PlusAddressRequestError>;
using PreallocatePlusAddressesCallback =
base::OnceCallback<void(PreallocatePlusAddressesResult)>;
// Initiates a request for preallocated plus addresses and runs `callback`
// with the response.
virtual void PreallocatePlusAddresses(
PreallocatePlusAddressesCallback callback) = 0;
// Resets state in the client, e.g., by cancelling ongoing network requests.
virtual void Reset() = 0;
};
} // namespace plus_addresses
#endif // COMPONENTS_PLUS_ADDRESSES_PLUS_ADDRESS_HTTP_CLIENT_H_
|