• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CHROME_BROWSER_REPOST_FORM_WARNING_CONTROLLER_H_
6 #define CHROME_BROWSER_REPOST_FORM_WARNING_CONTROLLER_H_
7 #pragma once
8 
9 #include "content/browser/tab_contents/constrained_window.h"
10 #include "content/common/notification_observer.h"
11 #include "content/common/notification_registrar.h"
12 
13 class TabContents;
14 
15 // This class is used to continue or cancel a pending reload when the
16 // repost form warning is shown. It is owned by the platform-dependent
17 // |RepostFormWarning{Gtk,Mac,View}| classes.
18 class RepostFormWarningController : public NotificationObserver {
19  public:
20   explicit RepostFormWarningController(TabContents* tab_contents);
21   virtual ~RepostFormWarningController();
22 
23   // Show the warning dialog.
24   void Show(ConstrainedWindowDelegate* window_delegate);
25 
26   // Cancel the reload.
27   void Cancel();
28 
29   // Continue the reload.
30   void Continue();
31 
32  private:
33   // NotificationObserver implementation.
34   // Watch for a new load or a closed tab and dismiss the dialog if they occur.
35   virtual void Observe(NotificationType type,
36                        const NotificationSource& source,
37                        const NotificationDetails& details);
38 
39   // Close the warning dialog.
40   void CloseDialog();
41 
42   NotificationRegistrar registrar_;
43 
44   // Tab contents, used to continue the reload.
45   TabContents* tab_contents_;
46 
47   ConstrainedWindow* window_;
48 
49   DISALLOW_COPY_AND_ASSIGN(RepostFormWarningController);
50 };
51 
52 #endif  // CHROME_BROWSER_REPOST_FORM_WARNING_CONTROLLER_H_
53