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