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

#include "components/autofill/content/renderer/a11y_utils.h"

#include "third_party/blink/public/web/web_ax_object.h"
#include "third_party/blink/public/web/web_form_control_element.h"

namespace autofill {

void SetAutofillSuggestionAvailability(
    const blink::WebFormControlElement& element,
    mojom::AutofillSuggestionAvailability suggestion_availability) {
  auto to_blink_enum = [](mojom::AutofillSuggestionAvailability
                              suggestion_availability) {
    switch (suggestion_availability) {
      case mojom::AutofillSuggestionAvailability::kAutofillAvailable:
        return blink::WebAXAutofillSuggestionAvailability::kAutofillAvailable;
      case mojom::AutofillSuggestionAvailability::kAutocompleteAvailable:
        return blink::WebAXAutofillSuggestionAvailability::
            kAutocompleteAvailable;
      case mojom::AutofillSuggestionAvailability::kNoSuggestions:
        return blink::WebAXAutofillSuggestionAvailability::kNoSuggestions;
    }
    NOTREACHED();
  };
  blink::WebAXObject::FromWebNode(element)
      .HandleAutofillSuggestionAvailabilityChanged(
          to_blink_enum(suggestion_availability));
}
}  // namespace autofill
