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 12namespace athena { 13 14class 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