// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ANDROID_WEBVIEW_BROWSER_AW_JAVASCRIPT_DIALOG_MANAGER_H_
#define ANDROID_WEBVIEW_BROWSER_AW_JAVASCRIPT_DIALOG_MANAGER_H_
#include "content/public/browser/javascript_dialog_manager.h"
namespace android_webview {
/**
* Implements JavaScriptDialogManager for WebView.
*
* This class is a singleton, but it doesn't store any state, each method just
* calls through to the AwContentsClientBridge tied to the Web Contents. If
* you add state, please consider how this will work with Multi-profile.
*
* Lifetime: Singleton
*/
class AwJavaScriptDialogManager : public content::JavaScriptDialogManager {
public:
AwJavaScriptDialogManager();
AwJavaScriptDialogManager(const AwJavaScriptDialogManager&) = delete;
AwJavaScriptDialogManager& operator=(const AwJavaScriptDialogManager&) =
delete;
~AwJavaScriptDialogManager() override;
// Overridden from content::JavaScriptDialogManager:
void RunJavaScriptDialog(content::WebContents* web_contents,
content::RenderFrameHost* render_frame_host,
content::JavaScriptDialogType dialog_type,
const std::u16string& message_text,
const std::u16string& default_prompt_text,
DialogClosedCallback callback,
bool* did_suppress_message) override;
void RunBeforeUnloadDialog(content::WebContents* web_contents,
content::RenderFrameHost* render_frame_host,
bool is_reload,
DialogClosedCallback callback) override;
void CancelDialogs(content::WebContents* web_contents,
bool reset_state) override;
};
} // namespace android_webview
#endif // ANDROID_WEBVIEW_BROWSER_AW_JAVASCRIPT_DIALOG_MANAGER_H_