atom_javascript_dialog_manager.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright (c) 2013 GitHub, Inc.
  2. // Use of this source code is governed by the MIT license that can be
  3. // found in the LICENSE file.
  4. #ifndef ATOM_BROWSER_ATOM_JAVASCRIPT_DIALOG_MANAGER_H_
  5. #define ATOM_BROWSER_ATOM_JAVASCRIPT_DIALOG_MANAGER_H_
  6. #include <map>
  7. #include <string>
  8. #include "content/public/browser/javascript_dialog_manager.h"
  9. namespace atom {
  10. namespace api {
  11. class WebContents;
  12. }
  13. class AtomJavaScriptDialogManager : public content::JavaScriptDialogManager {
  14. public:
  15. explicit AtomJavaScriptDialogManager(api::WebContents* api_web_contents);
  16. ~AtomJavaScriptDialogManager() override;
  17. // content::JavaScriptDialogManager implementations.
  18. void RunJavaScriptDialog(content::WebContents* web_contents,
  19. const GURL& origin_url,
  20. content::JavaScriptDialogType dialog_type,
  21. const base::string16& message_text,
  22. const base::string16& default_prompt_text,
  23. DialogClosedCallback callback,
  24. bool* did_suppress_message) override;
  25. void RunBeforeUnloadDialog(content::WebContents* web_contents,
  26. bool is_reload,
  27. DialogClosedCallback callback) override;
  28. void CancelDialogs(content::WebContents* web_contents,
  29. bool reset_state) override;
  30. private:
  31. void OnMessageBoxCallback(DialogClosedCallback callback,
  32. const std::string& origin,
  33. int code,
  34. bool checkbox_checked);
  35. api::WebContents* api_web_contents_;
  36. std::map<std::string, int> origin_counts_;
  37. };
  38. } // namespace atom
  39. #endif // ATOM_BROWSER_ATOM_JAVASCRIPT_DIALOG_MANAGER_H_