web_activity.h revision f8ee788a64d60abd8f2d742a5fdedde054ecd910
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_CONTENT_PUBLIC_WEB_ACTIVITY_H_
6#define ATHENA_CONTENT_PUBLIC_WEB_ACTIVITY_H_
7
8#include "athena/activity/public/activity.h"
9#include "athena/activity/public/activity_view_model.h"
10#include "content/public/browser/web_contents_observer.h"
11
12namespace content {
13class BrowserContext;
14class WebContents;
15}
16
17namespace views {
18class WebView;
19}
20
21namespace athena {
22
23class WebActivity : public Activity,
24                    public ActivityViewModel,
25                    public content::WebContentsObserver {
26 public:
27  WebActivity(content::BrowserContext* context, const GURL& gurl);
28  virtual ~WebActivity();
29
30 protected:
31  // Activity:
32  virtual athena::ActivityViewModel* GetActivityViewModel() OVERRIDE;
33
34  // ActivityViewModel:
35  virtual void Init() OVERRIDE;
36  virtual SkColor GetRepresentativeColor() OVERRIDE;
37  virtual base::string16 GetTitle() OVERRIDE;
38  virtual views::View* GetContentsView() OVERRIDE;
39
40  // content::WebContentsObserver:
41  virtual void TitleWasSet(content::NavigationEntry* entry,
42                           bool explicit_set) OVERRIDE;
43  virtual void DidUpdateFaviconURL(
44      const std::vector<content::FaviconURL>& candidates) OVERRIDE;
45
46 private:
47  content::BrowserContext* browser_context_;
48  content::WebContents* web_contents_;
49  const GURL url_;
50  views::WebView* web_view_;
51
52  DISALLOW_COPY_AND_ASSIGN(WebActivity);
53};
54
55}  // namespace athena
56
57#endif  // ATHENA_CONTENT_WEB_ACTIVITY_H_
58