Home | History | Annotate | Download | only in extensions
      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