1 // Copyright (c) 2012 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_UI_TAB_CONTENTS_CORE_TAB_HELPER_DELEGATE_H_ 6 #define CHROME_BROWSER_UI_TAB_CONTENTS_CORE_TAB_HELPER_DELEGATE_H_ 7 8 #include "base/basictypes.h" 9 10 namespace content { 11 class WebContents; 12 } 13 14 // Objects implement this interface to get notified about changes in a 15 // WebContents and to provide necessary functionality. 16 // 17 // This is the catch-all interface for holding additions to WebContents that are 18 // needed when a WebContents is promoted to being a tab contents, but that 19 // don't cleanly fit elsewhere. 20 class CoreTabHelperDelegate { 21 public: 22 // The caller is responsible for deleting |old_contents|. 23 // |did_finish_load| is true if WebContentsObserver::DidFinishLoad() has 24 // already been called for |new_contents|. 25 virtual void SwapTabContents(content::WebContents* old_contents, 26 content::WebContents* new_contents, 27 bool did_start_load, 28 bool did_finish_load); 29 30 // Whether the specified WebContents can be reloaded. 31 // Reloading can be disabled e.g. for the DevTools window. 32 virtual bool CanReloadContents(content::WebContents* web_contents) const; 33 34 // Whether the specified WebContents can be saved. 35 // Saving can be disabled e.g. for the DevTools window. 36 virtual bool CanSaveContents(content::WebContents* web_contents) const; 37 38 protected: 39 virtual ~CoreTabHelperDelegate(); 40 }; 41 42 #endif // CHROME_BROWSER_UI_TAB_CONTENTS_CORE_TAB_HELPER_DELEGATE_H_ 43