diff options
Diffstat (limited to 'content/shell/shell_javascript_dialog_manager.h')
-rw-r--r-- | content/shell/shell_javascript_dialog_manager.h | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/content/shell/shell_javascript_dialog_manager.h b/content/shell/shell_javascript_dialog_manager.h new file mode 100644 index 0000000..8ec82be --- /dev/null +++ b/content/shell/shell_javascript_dialog_manager.h @@ -0,0 +1,64 @@ +// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef CONTENT_SHELL_SHELL_JAVASCRIPT_DIALOG_MANAGER_H_ +#define CONTENT_SHELL_SHELL_JAVASCRIPT_DIALOG_MANAGER_H_ + +#include "base/callback_forward.h" +#include "base/compiler_specific.h" +#include "base/memory/scoped_ptr.h" +#include "content/public/browser/javascript_dialog_manager.h" + +namespace content { + +class ShellJavaScriptDialog; + +class ShellJavaScriptDialogManager : public JavaScriptDialogManager { + public: + ShellJavaScriptDialogManager(); + virtual ~ShellJavaScriptDialogManager(); + + // JavaScriptDialogManager: + virtual void RunJavaScriptDialog( + WebContents* web_contents, + const GURL& origin_url, + const std::string& accept_lang, + JavaScriptMessageType javascript_message_type, + const string16& message_text, + const string16& default_prompt_text, + const DialogClosedCallback& callback, + bool* did_suppress_message) OVERRIDE; + + virtual void RunBeforeUnloadDialog( + WebContents* web_contents, + const string16& message_text, + bool is_reload, + const DialogClosedCallback& callback) OVERRIDE; + + virtual void ResetJavaScriptState(WebContents* web_contents) OVERRIDE; + + // Called by the ShellJavaScriptDialog when it closes. + void DialogClosed(ShellJavaScriptDialog* dialog); + + // Used for content_browsertests. + void set_dialog_request_callback(const base::Closure& callback) { + dialog_request_callback_ = callback; + } + + private: +#if defined(OS_MACOSX) || defined(OS_WIN) || defined(TOOLKIT_GTK) + // The dialog being shown. No queueing. + scoped_ptr<ShellJavaScriptDialog> dialog_; +#else + // TODO: implement ShellJavaScriptDialog for other platforms, drop this #if +#endif + + base::Closure dialog_request_callback_; + + DISALLOW_COPY_AND_ASSIGN(ShellJavaScriptDialogManager); +}; + +} // namespace content + +#endif // CONTENT_SHELL_SHELL_JAVASCRIPT_DIALOG_MANAGER_H_ |