#ifndef COMPONENTS_DATA_SHARING_PUBLIC_DATA_SHARING_UTILS_H_
#define COMPONENTS_DATA_SHARING_PUBLIC_DATA_SHARING_UTILS_H_
#include <optional>
#include "base/types/expected.h"
#include "components/data_sharing/public/group_data.h"
#include "url/gurl.h"
namespace data_sharing {
enum class ParseUrlStatus {
kUnknown = 0,
kSuccess = 1,
kHostOrPathMismatchFailure = 2,
kQueryMissingFailure = 3
};
using ParseUrlResult = base::expected<GroupToken, ParseUrlStatus>;
class DataSharingUtils {
public:
static bool ShouldInterceptNavigationForShareURL(const GURL& url);
static ParseUrlResult ParseDataSharingUrl(const GURL& url);
static void SetShouldInterceptForTesting(
std::optional<bool> should_intercept_for_testing);
private:
static std::optional<bool> should_intercept_for_testing_;
};
}
#endif