1 // Copyright 2014 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 ATHENA_EXTENSIONS_ATHENA_APP_DELEGATE_BASE_H_ 6 #define ATHENA_EXTENSIONS_ATHENA_APP_DELEGATE_BASE_H_ 7 8 #include "base/callback.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "extensions/browser/app_window/app_delegate.h" 11 12 namespace athena { 13 14 class AthenaAppDelegateBase : public extensions::AppDelegate { 15 public: 16 AthenaAppDelegateBase(); 17 virtual ~AthenaAppDelegateBase(); 18 19 private: 20 class NewActivityContentsDelegate; 21 22 // extensions::AppDelegate: 23 virtual void ResizeWebContents(content::WebContents* web_contents, 24 const gfx::Size& size) OVERRIDE; 25 virtual content::WebContents* OpenURLFromTab( 26 content::BrowserContext* context, 27 content::WebContents* source, 28 const content::OpenURLParams& params) OVERRIDE; 29 virtual void AddNewContents(content::BrowserContext* context, 30 content::WebContents* new_contents, 31 WindowOpenDisposition disposition, 32 const gfx::Rect& initial_pos, 33 bool user_gesture, 34 bool* was_blocked) OVERRIDE; 35 virtual int PreferredIconSize() OVERRIDE; 36 virtual bool IsWebContentsVisible( 37 content::WebContents* web_contents) OVERRIDE; 38 virtual void SetTerminatingCallback(const base::Closure& callback) OVERRIDE; 39 40 scoped_ptr<NewActivityContentsDelegate> new_window_contents_delegate_; 41 base::Closure terminating_callback_; 42 43 DISALLOW_COPY_AND_ASSIGN(AthenaAppDelegateBase); 44 }; 45 46 } // namespace athena 47 48 #endif // ATHENA_EXTENSIONS_ATHENA_APP_DELEGATE_BASE_H_ 49