diff options
Diffstat (limited to 'athena/content/app_activity.cc')
-rw-r--r-- | athena/content/app_activity.cc | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/athena/content/app_activity.cc b/athena/content/app_activity.cc new file mode 100644 index 0000000000..e25d9f3215 --- /dev/null +++ b/athena/content/app_activity.cc @@ -0,0 +1,60 @@ +// Copyright 2014 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "athena/content/app_activity.h" + +#include "apps/shell/browser/shell_app_window.h" +#include "athena/activity/public/activity_manager.h" +#include "content/public/browser/web_contents.h" +#include "ui/views/controls/webview/webview.h" + +namespace athena { + +// TODO(mukai): specifies the same accelerators of WebActivity. +AppActivity::AppActivity(apps::ShellAppWindow* app_window) + : app_window_(app_window), web_view_(NULL) { + DCHECK(app_window_); +} + +AppActivity::~AppActivity() { +} + +ActivityViewModel* AppActivity::GetActivityViewModel() { + return this; +} + +void AppActivity::Init() { +} + +SkColor AppActivity::GetRepresentativeColor() { + // TODO(sad): Compute the color from the favicon. + return SK_ColorGRAY; +} + +base::string16 AppActivity::GetTitle() { + return web_view_->GetWebContents()->GetTitle(); +} + +views::View* AppActivity::GetContentsView() { + if (!web_view_) { + content::WebContents* web_contents = + app_window_->GetAssociatedWebContents(); + web_view_ = new views::WebView(web_contents->GetBrowserContext()); + web_view_->SetWebContents(web_contents); + Observe(web_contents); + } + return web_view_; +} + +void AppActivity::TitleWasSet(content::NavigationEntry* entry, + bool explicit_set) { + ActivityManager::Get()->UpdateActivity(this); +} + +void AppActivity::DidUpdateFaviconURL( + const std::vector<content::FaviconURL>& candidates) { + ActivityManager::Get()->UpdateActivity(this); +} + +} // namespace athena |