chromium/chrome/browser/android/flags/bad_flags_snackbar_manager.cc

// Copyright 2022 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/android/flags/bad_flags_snackbar_manager.h"

#include "base/android/jni_android.h"
#include "base/android/jni_string.h"
#include "ui/android/view_android.h"
#include "ui/android/window_android.h"

// Must come after all headers that specialize FromJniType() / ToJniType().
#include "chrome/android/chrome_jni_headers/BadFlagsSnackbarManager_jni.h"

void ShowBadFlagsSnackbar(content::WebContents* web_contents,
                          const std::u16string& message) {
  JNIEnv* env = base::android::AttachCurrentThread();
  ui::ViewAndroid* view_android = web_contents->GetNativeView();
  DCHECK(view_android);
  ui::WindowAndroid* window_android = view_android->GetWindowAndroid();
  if (!window_android)
    return;
  chrome::Java_BadFlagsSnackbarManager_show(
      env, window_android->GetJavaObject(),
      base::android::ConvertUTF16ToJavaString(env, message));
}