linux: Cache families from FontRenderParams queries.
[chromium-blink-merge.git] / athena / content / app_activity_proxy.cc
blobf3a058190a1f794b1c4dc75e52fe2348abb271d5
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.
5 #include "athena/content/app_activity_proxy.h"
7 #include "athena/content/app_activity.h"
8 #include "athena/content/app_activity_registry.h"
9 #include "athena/wm/public/window_list_provider.h"
10 #include "athena/wm/public/window_manager.h"
11 #include "ui/aura/window.h"
12 #include "ui/views/view.h"
13 #include "ui/views/widget/widget.h"
15 namespace athena {
17 AppActivityProxy::AppActivityProxy(AppActivity* replaced_activity,
18 AppActivityRegistry* creator) :
19 app_activity_registry_(creator),
20 title_(replaced_activity->GetActivityViewModel()->GetTitle()),
21 color_(replaced_activity->GetActivityViewModel()->GetRepresentativeColor()),
22 replaced_activity_(replaced_activity),
23 view_(new views::View()),
24 restart_called_(false) {
27 AppActivityProxy::~AppActivityProxy() {
28 app_activity_registry_->ProxyDestroyed(this);
31 ActivityViewModel* AppActivityProxy::GetActivityViewModel() {
32 return this;
35 void AppActivityProxy::SetCurrentState(ActivityState state) {
36 // We only restart the application when we are switching to visible, and only
37 // once.
38 if (state != ACTIVITY_VISIBLE || restart_called_)
39 return;
40 restart_called_ = true;
41 app_activity_registry_->RestartApplication(this);
42 // Note: This object is now destroyed.
45 Activity::ActivityState AppActivityProxy::GetCurrentState() {
46 return ACTIVITY_UNLOADED;
49 bool AppActivityProxy::IsVisible() {
50 return false;
53 Activity::ActivityMediaState AppActivityProxy::GetMediaState() {
54 // This proxy has never any media playing.
55 return ACTIVITY_MEDIA_STATE_NONE;
58 aura::Window* AppActivityProxy::GetWindow() {
59 return view_->GetWidget()->GetNativeWindow();
62 content::WebContents* AppActivityProxy::GetWebContents() {
63 return NULL;
66 void AppActivityProxy::Init() {
67 DCHECK(replaced_activity_);
68 // Get the content proxy to present the content.
69 content_proxy_ = replaced_activity_->GetContentProxy();
70 WindowListProvider* window_list_provider =
71 WindowManager::Get()->GetWindowListProvider();
72 window_list_provider->StackWindowBehindTo(GetWindow(),
73 replaced_activity_->GetWindow());
74 // After the Init() function returns, the passed |replaced_activity_| might
75 // get destroyed. Since we do not need it anymore we reset it.
76 replaced_activity_ = NULL;
79 SkColor AppActivityProxy::GetRepresentativeColor() const {
80 return color_;
83 base::string16 AppActivityProxy::GetTitle() const {
84 return title_;
87 gfx::ImageSkia AppActivityProxy::GetIcon() const {
88 return gfx::ImageSkia();
91 bool AppActivityProxy::UsesFrame() const {
92 return true;
95 views::View* AppActivityProxy::GetContentsView() {
96 return view_;
99 views::Widget* AppActivityProxy::CreateWidget() {
100 return NULL;
103 gfx::ImageSkia AppActivityProxy::GetOverviewModeImage() {
104 return content_proxy_->GetContentImage();
107 void AppActivityProxy::PrepareContentsForOverview() {
110 void AppActivityProxy::ResetContentsView() {
113 } // namespace athena