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 13class 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. 18class 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