#include "chrome/browser/ui/webui/feedback/feedback_dialog.h"
#include <memory>
#include <utility>
#include "base/json/json_writer.h"
#include "base/logging.h"
#include "base/metrics/histogram_macros.h"
#include "chrome/browser/media/webrtc/media_capture_devices_dispatcher.h"
#include "chrome/browser/profiles/keep_alive/profile_keep_alive_types.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/browser_dialogs.h"
#include "chrome/browser/ui/chrome_pages.h"
#include "chrome/browser/ui/webui/feedback/feedback_handler.h"
#include "chrome/common/webui_url_constants.h"
#include "chrome/grit/generated_resources.h"
#include "content/public/browser/browser_thread.h"
#include "extensions/browser/api/feedback_private/feedback_private_api.h"
#include "extensions/common/api/feedback_private.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/mojom/ui_base_types.mojom-shared.h"
#include "ui/views/view_class_properties.h"
#include "ui/views/widget/widget.h"
#include "url/gurl.h"
WebContents;
WebUIMessageHandler;
namespace {
constexpr gfx::Size kDefaultSize{ … };
}
FeedbackFlow;
FeedbackInfo;
FeedbackDialog* FeedbackDialog::current_instance_ = …;
FeedbackDialog* FeedbackDialog::GetInstanceForTest() { … }
DEFINE_CLASS_ELEMENT_IDENTIFIER_VALUE(FeedbackDialog,
kFeedbackDialogForTesting);
void FeedbackDialog::CreateOrShow(
Profile* profile,
const extensions::api::feedback_private::FeedbackInfo& info) { … }
FeedbackDialog::FeedbackDialog(
Profile* profile,
const extensions::api::feedback_private::FeedbackInfo& info)
: … { … }
FeedbackDialog::~FeedbackDialog() { … }
void FeedbackDialog::Show() const { … }
views::Widget* FeedbackDialog::GetWidget() const { … }
void FeedbackDialog::RequestMediaAccessPermission(
content::WebContents* web_contents,
const content::MediaStreamRequest& request,
content::MediaResponseCallback callback) { … }
bool FeedbackDialog::CheckMediaAccessPermission(
content::RenderFrameHost* render_frame_host,
const url::Origin& security_origin,
blink::mojom::MediaStreamType type) { … }