blob: 9daeb4193353dce290b94d1d9f05caf886d4c401 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_SMART_CARD_SMART_CARD_PERMISSION_REQUEST_H_
#define CHROME_BROWSER_SMART_CARD_SMART_CARD_PERMISSION_REQUEST_H_
#include <optional>
#include "base/gtest_prod_util.h"
#include "components/permissions/permission_request.h"
namespace url {
class Origin;
}
class SmartCardPermissionRequest : public permissions::PermissionRequest {
public:
using ResultCallback = base::OnceCallback<void(PermissionDecision)>;
SmartCardPermissionRequest(const url::Origin& requesting_origin,
const std::string& reader_name,
ResultCallback result_callback);
~SmartCardPermissionRequest() override;
private:
FRIEND_TEST_ALL_PREFIXES(SmartCardPermissionRequestTest, IsDuplicateOf);
FRIEND_TEST_ALL_PREFIXES(SmartCardPermissionRequestTest,
IsDuplicateOf_DifferentReader);
FRIEND_TEST_ALL_PREFIXES(SmartCardPermissionRequestTest,
IsDuplicateOf_DifferentOrigin);
// permissions::PermissionRequest:
bool IsDuplicateOf(
permissions::PermissionRequest* other_request) const override;
std::u16string GetMessageTextFragment() const override;
std::optional<std::u16string> GetAllowAlwaysText() const override;
std::optional<std::u16string> GetBlockText() const override;
void OnPermissionDecided(
PermissionDecision decision,
bool is_final_decision,
const permissions::PermissionRequestData& request_data);
std::string reader_name_;
ResultCallback result_callback_;
};
#endif // CHROME_BROWSER_SMART_CARD_SMART_CARD_PERMISSION_REQUEST_H_