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