Home | History | Annotate | Download | only in browser
      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