--- a/chrome/browser/ui/views/webauthn/authenticator_hybrid_and_security_key_sheet_view.cc
+++ b/chrome/browser/ui/views/webauthn/authenticator_hybrid_and_security_key_sheet_view.cc
@@ -113,21 +113,7 @@ AuthenticatorHybridAndSecurityKeySheetVi
   const std::u16string& rp_id = webauthn_ui_helpers::RpIdToElidedHost(
       sheet_model->dialog_model()->relying_party_id, label_width, font_list);
 
-  const std::vector<std::u16string> qr_labels = {l10n_util::GetStringFUTF16(
-      is_create ? IDS_WEBAUTHN_USE_YOUR_PHONE_OR_TABLET_CREATE_DESCRIPTION
-                : IDS_WEBAUTHN_USE_YOUR_PHONE_OR_TABLET_SIGN_IN_DESCRIPTION,
-      rp_id)};
-  container->AddChildView(CreateMechanismDescriptionWithIcon(
-      kCameraIcon,
-      l10n_util::GetStringUTF16(IDS_WEBAUTHN_USE_YOUR_PHONE_OR_TABLET),
-      qr_labels));
-
-  container->AddChildView(
-      std::make_unique<AuthenticatorQrCenteredView>(qr_string_));
-
   if (sheet_model->dialog_model()->show_security_key_on_qr_sheet) {
-    container->AddChildView(std::make_unique<views::Separator>());
-
     auto attestation_warning = sheet_model->GetAttestationWarning();
     std::vector<std::u16string> security_key_labels = {
         l10n_util::GetStringFUTF16(
--- a/components/qr_code_generator/BUILD.gn
+++ b/components/qr_code_generator/BUILD.gn
@@ -38,7 +38,6 @@ source_set("qr_code_generator") {
     "qr_code_generator.h",
   ]
   deps = [
-    ":qr_code_generator_ffi_glue",
     "//base",
   ]
   public_deps = [
--- a/components/qr_code_generator/qr_code_generator.cc
+++ b/components/qr_code_generator/qr_code_generator.cc
@@ -8,9 +8,7 @@
 #include <vector>
 
 #include "base/check_op.h"
-#include "base/containers/span_rust.h"
 #include "base/numerics/safe_conversions.h"
-#include "components/qr_code_generator/qr_code_generator_ffi_glue.rs.h"
 
 namespace qr_code_generator {
 
@@ -22,27 +20,7 @@ GeneratedCode& GeneratedCode::operator=(
 base::expected<GeneratedCode, Error> GenerateCode(
     base::span<const uint8_t> in,
     std::optional<int> min_version) {
-  rust::Slice<const uint8_t> rs_in = base::SpanToRustSlice(in);
-
-  // `min_version` might come from a fuzzer and therefore we use a lenient
-  // `saturated_cast` instead of a `checked_cast`.
-  int16_t rs_min_version =
-      base::saturated_cast<int16_t>(min_version.value_or(0));
-
-  std::vector<uint8_t> result_pixels;
-  size_t result_width = 0;
-  Error result_error = Error::kUnknownError;
-  bool result_is_success = generate_qr_code_using_rust(
-      rs_in, rs_min_version, result_pixels, result_width, result_error);
-
-  if (!result_is_success) {
-    return base::unexpected(result_error);
-  }
-  GeneratedCode code;
-  code.data = std::move(result_pixels);
-  code.qr_size = base::checked_cast<int>(result_width);
-  CHECK_EQ(code.data.size(), static_cast<size_t>(code.qr_size * code.qr_size));
-  return code;
+  return base::unexpected(Error::kUnknownError);
 }
 
 }  // namespace qr_code_generator
