web_activity.h revision 5f1c94371a64b3196d4be9466099bb892df9b88e
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#include "ui/gfx/image/image_skia.h" 12 13namespace content { 14class BrowserContext; 15class WebContents; 16} 17 18namespace views { 19class WebView; 20class WidgetDelegate; 21} 22 23namespace athena { 24 25class AthenaWebView; 26 27class WebActivity : public Activity, 28 public ActivityViewModel, 29 public content::WebContentsObserver { 30 public: 31 WebActivity(content::BrowserContext* context, const GURL& gurl); 32 WebActivity(AthenaWebView* web_view); 33 virtual ~WebActivity(); 34 35 protected: 36 // Activity: 37 virtual athena::ActivityViewModel* GetActivityViewModel() OVERRIDE; 38 virtual void SetCurrentState(ActivityState state) OVERRIDE; 39 virtual ActivityState GetCurrentState() OVERRIDE; 40 virtual bool IsVisible() OVERRIDE; 41 virtual ActivityMediaState GetMediaState() OVERRIDE; 42 43 // ActivityViewModel: 44 virtual void Init() OVERRIDE; 45 virtual SkColor GetRepresentativeColor() const OVERRIDE; 46 virtual base::string16 GetTitle() const OVERRIDE; 47 virtual bool UsesFrame() const OVERRIDE; 48 virtual views::View* GetContentsView() OVERRIDE; 49 virtual void CreateOverviewModeImage() OVERRIDE; 50 virtual gfx::ImageSkia GetOverviewModeImage() OVERRIDE; 51 52 // content::WebContentsObserver: 53 virtual void TitleWasSet(content::NavigationEntry* entry, 54 bool explicit_set) OVERRIDE; 55 virtual void DidUpdateFaviconURL( 56 const std::vector<content::FaviconURL>& candidates) OVERRIDE; 57 58 private: 59 content::BrowserContext* browser_context_; 60 const GURL url_; 61 AthenaWebView* web_view_; 62 63 // The current state for this activity. 64 ActivityState current_state_; 65 66 // The image which will be used in overview mode. 67 gfx::ImageSkia overview_mode_image_; 68 69 DISALLOW_COPY_AND_ASSIGN(WebActivity); 70}; 71 72} // namespace athena 73 74#endif // ATHENA_CONTENT_WEB_ACTIVITY_H_ 75