root/chrome/browser/ui/tab_contents/core_tab_helper_delegate.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CHROME_BROWSER_UI_TAB_CONTENTS_CORE_TAB_HELPER_DELEGATE_H_
#define CHROME_BROWSER_UI_TAB_CONTENTS_CORE_TAB_HELPER_DELEGATE_H_

#include "base/basictypes.h"

namespace content {
class WebContents;
}

// Objects implement this interface to get notified about changes in a
// WebContents and to provide necessary functionality.
//
// This is the catch-all interface for holding additions to WebContents that are
// needed when a WebContents is promoted to being a tab contents, but that
// don't cleanly fit elsewhere.
class CoreTabHelperDelegate {
 public:
  // The caller is responsible for deleting |old_contents|.
  // |did_finish_load| is true if WebContentsObserver::DidFinishLoad() has
  // already been called for |new_contents|.
  virtual void SwapTabContents(content::WebContents* old_contents,
                               content::WebContents* new_contents,
                               bool did_start_load,
                               bool did_finish_load);

  // Whether the specified WebContents can be reloaded.
  // Reloading can be disabled e.g. for the DevTools window.
  virtual bool CanReloadContents(content::WebContents* web_contents) const;

  // Whether the specified WebContents can be saved.
  // Saving can be disabled e.g. for the DevTools window.
  virtual bool CanSaveContents(content::WebContents* web_contents) const;

 protected:
  virtual ~CoreTabHelperDelegate();
};

#endif  // CHROME_BROWSER_UI_TAB_CONTENTS_CORE_TAB_HELPER_DELEGATE_H_

/* [<][>][^][v][top][bottom][index][help] */