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