blob: 669511d852a7a120680095070e2246f8a4f33e4f [file] [log] [blame]
// 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.
#include "chrome/browser/ui/views/webid/webid_utils.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/views/accessibility/view_accessibility.h"
#include "ui/views/view.h"
namespace webid {
int SelectSingleIdpTitleResourceId(blink::mojom::RpContext rp_context) {
switch (rp_context) {
case blink::mojom::RpContext::kSignIn:
return IDS_ACCOUNT_SELECTION_SHEET_TITLE_EXPLICIT_SIGN_IN;
case blink::mojom::RpContext::kSignUp:
return IDS_ACCOUNT_SELECTION_SHEET_TITLE_EXPLICIT_SIGN_UP;
case blink::mojom::RpContext::kUse:
return IDS_ACCOUNT_SELECTION_SHEET_TITLE_EXPLICIT_USE;
case blink::mojom::RpContext::kContinue:
return IDS_ACCOUNT_SELECTION_SHEET_TITLE_EXPLICIT_CONTINUE;
}
}
// Returns the title to be shown in the dialog. This does not include the
// subtitle. For screen reader purposes, GetAccessibleTitle() is used instead.
std::u16string GetTitle(const std::u16string& rp_for_display,
const std::optional<std::u16string>& idp_title,
blink::mojom::RpContext rp_context) {
std::u16string frame_in_title = rp_for_display;
return idp_title.has_value()
? l10n_util::GetStringFUTF16(
SelectSingleIdpTitleResourceId(rp_context), frame_in_title,
idp_title.value())
: l10n_util::GetStringFUTF16(
IDS_MULTI_IDP_ACCOUNT_SELECTION_SHEET_TITLE_EXPLICIT,
frame_in_title);
}
void SendAccessibilityEvent(views::Widget* widget,
std::u16string announcement) {
if (!widget) {
return;
}
views::View* const root_view = widget->GetRootView();
root_view->GetViewAccessibility().AnnounceText(announcement);
}
} // namespace webid