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 12 namespace content { 13 class BrowserContext; 14 class WebContents; 15 } 16 17 namespace views { 18 class WebView; 19 } 20 21 namespace athena { 22 23 class 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