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